From b15c46d79518feb7a7027069bb99d6054a185e0f Mon Sep 17 00:00:00 2001 From: rburchell Date: Tue, 10 Feb 2009 13:54:09 +0000 Subject: [PATCH] Move getstring() and getstring2() from macros to functions. This fixes a bunch of warnings, and means they are actually *readable*, as well as type-safe and const. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1975 5417fbe8-f217-4b02-8779-1006273d7864 --- include/extern.h | 12 ++++-------- src/language.c | 25 +++++++++++++++++++++++++ src/misc.c | 2 +- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/include/extern.h b/include/extern.h index 423524a48..124afccff 100644 --- a/include/extern.h +++ b/include/extern.h @@ -533,14 +533,10 @@ E char *langnames[NUM_LANGS]; E int langlist[NUM_LANGS]; E void lang_init(); -#define getstring(na,index) \ - (langtexts[((na) && (static_cast(na))->nc && !((static_cast(na))->status & NS_FORBIDDEN) ? (static_cast(na))->nc->language : NSDefLanguage)][(index)]) -#define getstring2(nc,index) \ - (langtexts[((nc) ? (static_cast(nc))->language : NSDefLanguage)][(index)]) -E int strftime_lang(char *buf, int size, User * u, int format, - struct tm *tm); -E void syntax_error(char *service, User * u, const char *command, - int msgnum); +E int strftime_lang(char *buf, int size, User * u, int format, struct tm *tm); +E void syntax_error(char *service, User * u, const char *command, int msgnum); +E const char *getstring(NickAlias *na, int index); +E const char *getstring2(NickCore *nc, int index); /**** log.c ****/ diff --git a/src/language.c b/src/language.c index 0f5fe8124..a1cf34874 100644 --- a/src/language.c +++ b/src/language.c @@ -306,4 +306,29 @@ void syntax_error(char *service, User * u, const char *command, int msgnum) notice_lang(service, u, MORE_INFO, service, command); } +const char *getstring(NickAlias *na, int index) +{ + // Default to config + int langidx = NSDefLanguage; + + // If they are registered (na->nc), and NOT forbidden + if (na->nc && !na->status & NS_FORBIDDEN) + langidx = na->nc->language; // set language to their nickcore's language + + return langtexts[langidx][index]; +} + +const char *getstring2(NickCore *nc, int index) +{ + // Default to config + int langidx = NSDefLanguage; + + if (nc) + { + langidx = nc->language; + } + + return langtexts[langidx][index]; +} + /*************************************************************************/ diff --git a/src/misc.c b/src/misc.c index 0c8d8d650..4d4a31a3a 100644 --- a/src/misc.c +++ b/src/misc.c @@ -423,7 +423,7 @@ char *duration(NickAlias * na, char *buf, int bufsize, time_t seconds) int need_comma = 0; char buf2[64], *end; - char *comma = getstring(na, COMMA_SPACE); + const char *comma = getstring(na, COMMA_SPACE); /* We first calculate everything */ days = seconds / 86400;