* lib/inttypes_.h [defined __cplusplus&&!defined __STDC_LIMIT_MACROS]:
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 2 Jul 2007 08:19:55 +0000 (08:19 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 2 Jul 2007 08:19:55 +0000 (08:19 +0000)
#define __STDC_LIMIT_MACROS temporarily while including
<stdint.h>, so that __STDC_LIMIT_MACROS is defined.
Problem reported by Joel E. Denny in
<http://lists.gnu.org/archive/html/bug-gnulib/2007-07/msg00008.html>.

ChangeLog
lib/inttypes_.h

index 0152979eb065692eae5005b64b689eef1ab606ca..24f9a853773d89940db383a7573b75843c7c07de 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-07-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/inttypes_.h [defined __cplusplus&&!defined __STDC_LIMIT_MACROS]:
+       #define __STDC_LIMIT_MACROS temporarily while including
+       <stdint.h>, so that __STDC_LIMIT_MACROS is defined.
+       Problem reported by Joel E. Denny in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2007-07/msg00008.html>.
+
 2007-07-01  Bruno Haible  <bruno@clisp.org>
 
        * lib/unistdio.h: New file.
index 5257275fd1412991dffc483a049238c6bbc889d2..38fdcc608bad940698e162b15230f1e4453c4d8e 100644 (file)
 #define INTTYPES_H
 
 /* Include <stdint.h> or the gnulib replacement.  */
-#include <stdint.h>
+#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
+# include <stdint.h>
+#else
+/* Macros like INT32_MIN are used below, so define __STDC_LIMIT_MACROS
+   while including <stdint.h>; this isn't namespace clean for C++,
+   unfortunately.  */
+# define __STDC_LIMIT_MACROS
+# include <stdint.h>
+# undef __STDC_LIMIT_MACROS
+#endif
+
 /* Get CHAR_BIT.  */
 #include <limits.h>