Selaa lähdekoodia

Additional 'bool' configure checks and fixes for old VS compilers

Evgeny Grin (Karlson2k) 9 vuotta sitten
vanhempi
sitoutus
dc4ef6b517
2 muutettua tiedostoa jossa 18 lisäystä ja 9 poistoa
  1. 3 1
      configure.ac
  2. 15 8
      w32/common/MHD_config.h

+ 3 - 1
configure.ac

@@ -174,7 +174,9 @@ AC_CACHE_CHECK([[whether "true" and "false" could be used]], [[mhd_cv_macro_true
         ]], [[
           int var1[true ? 1 : -1] = { 1 };
           int var2[false ? -1 : 1] = { 2 };
-          if (var1[0] == var2[0])
+          int var3[!true ? -1 : 1] = { 3 };
+          int var4[!false ? 1 : -1] = { 4 };
+          if (var1[0] == var2[0] || var3[0] == var4[0])
             return 1;
         ]])
      ], [[mhd_cv_macro_true_false_valid='yes']], [[mhd_cv_macro_true_false_valid='no']])

+ 15 - 8
w32/common/MHD_config.h

@@ -9,13 +9,6 @@
 /* Define if MS VC compiler is used */
 #define MSVC 1
 
-/* Define to type which will be used as boolean type. */
-#if _MSC_VER+0 >= 1800
-#define _MHD_bool _Bool
-#else  /* before VS 2013 */
-#define _MHD_bool int
-#endif /* before VS 2013 */
-
 /* Define to 1 if your C compiler supports inline functions. */
 #define INLINE_FUNC 1
 
@@ -139,9 +132,23 @@
 /* Define to 1 if you have the <stddef.h> header file. */
 #define HAVE_STDDEF_H 1
 
+#if _MSC_VER+0 >= 1800 /* VS 2013 and later */
 /* Define to 1 if you have the <stdbool.h> header file and <stdbool.h> defines
-'bool' type. */
+   'bool' type. */
 #define HAVE_STDBOOL_H 1
+#else  /* before VS 2013 */
+
+/* Define to type name which will be used as boolean type. */
+#define bool int
+
+/* Define to value interpreted by compiler as boolean "false", if "false" is
+   not defined by system headers. */
+#define false 0
+
+/* Define to value interpreted by compiler as boolean "true", if "true" is not
+   defined by system headers. */
+#define true (!0)
+#endif /* before VS 2013 */
 
 
 /* *** Other useful staff *** */