summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-02-10 13:54:09 +0000
committerrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-02-10 13:54:09 +0000
commitb15c46d79518feb7a7027069bb99d6054a185e0f (patch)
treeeb52f57972296df2ef9396df47c50e2042f7ddce
parente7a15723172f46d1f0b192fc959c7a649830173d (diff)
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
-rw-r--r--include/extern.h12
-rw-r--r--src/language.c25
-rw-r--r--src/misc.c2
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<NickAlias *>(na))->nc && !((static_cast<NickAlias *>(na))->status & NS_FORBIDDEN) ? (static_cast<NickAlias *>(na))->nc->language : NSDefLanguage)][(index)])
-#define getstring2(nc,index) \
- (langtexts[((nc) ? (static_cast<NickCore *>(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;