Avoid unused variable warnings with gcc.
authorBruno Haible <bruno@clisp.org>
Fri, 10 Nov 2006 14:49:09 +0000 (14:49 +0000)
committerBruno Haible <bruno@clisp.org>
Fri, 10 Nov 2006 14:49:09 +0000 (14:49 +0000)
ChangeLog
lib/gettext.h

index 74371ff1355ac22dee3dc10566913f1db4e96ad8..3c21fc75d1e69670c377f02bff29b4c5b10e65aa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2006-11-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/gettext.h (dgettext, dcgettext, ngettext) [! ENABLE_NLS]:
+       (dngettext, dcngettext, bindtextdomain) [! ENABLE_NLS]:
+       (bind_textdomain_codeset) [! ENABLE_NLS]:
+       Evaluate all the arguments.  That way, callers get compatible behavior
+       if the arguments have side effects.  Also, it avoids some GCC
+       diagnostics in some cases; Joel E. Denny reported problems when Bison
+       was configured with --enable-gcc-warnigs.
+
 2006-11-10  Jim Meyering  <jim@meyering.net>
 
        * m4/inline.m4 (gl_INLINE): Check with the compiler, not cpp, so that
index f15eb6a25c9725f0425969ca30ada58994bfd4de..18c62a4067f5caa8153847a5cbf547f58f12efe1 100644 (file)
    On pre-ANSI systems without 'const', the config.h file is supposed to
    contain "#define const".  */
 # define gettext(Msgid) ((const char *) (Msgid))
-# define dgettext(Domainname, Msgid) ((const char *) (Msgid))
-# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid))
+# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
+# define dcgettext(Domainname, Msgid, Category) \
+    ((void) (Category), dgettext (Domainname, Msgid))
 # define ngettext(Msgid1, Msgid2, N) \
-    ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
+    ((N) == 1 \
+     ? ((void) (Msgid2), (const char *) (Msgid1)) \
+     : ((void) (Msgid1), (const char *) (Msgid2)))
 # define dngettext(Domainname, Msgid1, Msgid2, N) \
-    ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
+    ((void) (Domainname), ngettext (Msgid1, Msgid2, N))
 # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
-    ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
+    ((void) (Category), dngettext(Domainname, Msgid1, Msgid2, N))
 # define textdomain(Domainname) ((const char *) (Domainname))
-# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
-# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset))
+# define bindtextdomain(Domainname, Dirname) \
+    ((void) (Domainname), (const char *) (Dirname))
+# define bind_textdomain_codeset(Domainname, Codeset) \
+    ((void) (Domainname), (const char *) (Codeset))
 
 #endif