]> granicus.if.org Git - python/commitdiff
Fix C++ header usage. This __STDC_LIMIT_MACROS scheme can still be subverted
authorStefan Krah <skrah@bytereef.org>
Sat, 14 Dec 2013 11:58:09 +0000 (12:58 +0100)
committerStefan Krah <skrah@bytereef.org>
Sat, 14 Dec 2013 11:58:09 +0000 (12:58 +0100)
by including stdint.h before mpdecimal.h.  In that case the only option left
is to compile with -D_STDC_LIMIT_MACROS.

Modules/_decimal/libmpdec/mpdecimal.h

index 203275bcd11aade53544cd2542555d0d0507a59e..58bee022538dad2a28c07077a7ef634da83ca72c 100644 (file)
 
 #ifdef __cplusplus
 extern "C" {
+  #ifndef __STDC_LIMIT_MACROS
+    #define __STDC_LIMIT_MACROS
+    #define MPD_CLEAR_STDC_LIMIT_MACROS
+  #endif
 #endif
 
 
@@ -55,18 +59,12 @@ extern "C" {
   #define MPD_HIDE_SYMBOLS_END
   #define EXTINLINE extern inline
 #else
+  #ifdef HAVE_STDINT_H
+    #include <stdint.h>
+  #endif
   #ifdef HAVE_INTTYPES_H
     #include <inttypes.h>
   #endif
-  #ifdef HAVE_STDINT_H
-    #if defined(__cplusplus) && !defined(__STDC_LIMIT_MACROS)
-      #define __STDC_LIMIT_MACROS
-      #include <stdint.h>
-      #undef __STDC_LIMIT_MACROS
-    #else
-      #include <stdint.h>
-    #endif
-  #endif
   #ifndef __GNUC_STDC_INLINE__
     #define __GNUC_STDC_INLINE__ 1
   #endif
@@ -835,6 +833,10 @@ MPD_PRAGMA(MPD_HIDE_SYMBOLS_END) /* restore previous scope rules */
 
 
 #ifdef __cplusplus
+  #ifdef MPD_CLEAR_STDC_LIMIT_MACROS
+    #undef MPD_CLEAR_STDC_LIMIT_MACROS
+    #undef __STDC_LIMIT_MACROS
+  #endif
 } /* END extern "C" */
 #endif