gettext: do not assume '#define ... defined ...' behavior
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 12 Jul 2012 04:16:27 +0000 (21:16 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 12 Jul 2012 15:25:23 +0000 (08:25 -0700)
* lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS):
Do not use '#define FOO ... defined BAR ...', as the C standard says
it's not portable to expect that this works after macro expansion.
Problem reported for gzip by Steven M. Schweda in
<http://lists.gnu.org/archive/html/bug-gzip/2012-07/msg00000.html>.

ChangeLog
lib/gettext.h

index b27ef8d..7dacfb7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2012-07-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gettext: do not assume '#define ... defined ...' behavior
+       * lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS):
+       Do not use '#define FOO ... defined BAR ...', as the C standard says
+       it's not portable to expect that this works after macro expansion.
+       Problem reported for gzip by Steven M. Schweda in
+       <http://lists.gnu.org/archive/html/bug-gzip/2012-07/msg00000.html>.
+
 2012-07-10  Paul Eggert  <eggert@cs.ucla.edu>
 
        getloadavg: clean out old Emacs and Autoconf cruft
index 1c5cab9..c63d907 100644 (file)
@@ -183,9 +183,12 @@ npgettext_aux (const char *domain,
 
 #include <string.h>
 
-#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
-  (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
-   /* || __STDC_VERSION__ >= 199901L */ )
+#if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
+     /* || __STDC_VERSION__ >= 199901L */ )
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
+#else
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
+#endif
 
 #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
 #include <stdlib.h>