changeset 7634:5996191c5ffa

Avoid unused variable warnings with gcc.
author Bruno Haible <bruno@clisp.org>
date Fri, 10 Nov 2006 14:49:09 +0000
parents 75a7956bce8c
children 7f65b3a0e7a4
files ChangeLog lib/gettext.h
diffstat 2 files changed, 22 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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
--- a/lib/gettext.h
+++ b/lib/gettext.h
@@ -64,17 +64,22 @@
    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