commit dc4ef6b517a9c8fad89ae384059b9926f2baa9ea
parent c99bb7febbe4ad5f36b1882c94c51e6429a0e7d4
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date: Thu, 17 Nov 2016 17:49:20 +0300
Additional 'bool' configure checks and fixes for old VS compilers
Diffstat:
2 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/configure.ac b/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']])
diff --git a/w32/common/MHD_config.h b/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 *** */