changeset 19994:f2bda548c536 draft

(svn r24926) -Fix [FS#5373]: Check integer min/max macros individually, and define them if missing.
author frosch <frosch@openttd.org>
date Sun, 20 Jan 2013 15:02:28 +0000
parents b2a09fbdcbc8
children 122c90e4e79d
files src/stdafx.h
diffstat 1 files changed, 30 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/stdafx.h
+++ b/src/stdafx.h
@@ -28,31 +28,54 @@
 
 /* It seems that we need to include stdint.h before anything else
  * We need INT64_MAX, which for most systems comes from stdint.h. However, MSVC
- * does not have stdint.h and apparently neither does MorphOS, so define
- * INT64_MAX for them ourselves. */
-#if defined(__APPLE__)
-	/* Already done in osx_stdafx.h */
-#elif !defined(_MSC_VER) && !defined( __MORPHOS__) && !defined(_STDINT_H_)
+ * does not have stdint.h and apparently neither does MorphOS.
+ * For OSX the inclusion is already done in osx_stdafx.h. */
+#if !defined(__APPLE__) && !defined(_MSC_VER) && !defined(__MORPHOS__)
 	#if defined(SUNOS)
 		/* SunOS/Solaris does not have stdint.h, but inttypes.h defines everything
 		 * stdint.h defines and we need. */
 		#include <inttypes.h>
-	# else
+	#else
 		#define __STDC_LIMIT_MACROS
 		#include <stdint.h>
 	#endif
-#else
+#endif
+
+/* The conditions for these constants to be available are way too messy; so check them one by one */
+#if !defined(UINT64_MAX)
 	#define UINT64_MAX (18446744073709551615ULL)
+#endif
+#if !defined(INT64_MAX)
 	#define INT64_MAX  (9223372036854775807LL)
+#endif
+#if !defined(INT64_MIN)
 	#define INT64_MIN  (-INT64_MAX - 1)
+#endif
+#if !defined(UINT32_MAX)
 	#define UINT32_MAX (4294967295U)
+#endif
+#if !defined(INT32_MAX)
 	#define INT32_MAX  (2147483647)
+#endif
+#if !defined(INT32_MIN)
 	#define INT32_MIN  (-INT32_MAX - 1)
+#endif
+#if !defined(UINT16_MAX)
 	#define UINT16_MAX (65535U)
+#endif
+#if !defined(INT16_MAX)
 	#define INT16_MAX  (32767)
+#endif
+#if !defined(INT16_MIN)
 	#define INT16_MIN  (-INT16_MAX - 1)
+#endif
+#if !defined(UINT8_MAX)
 	#define UINT8_MAX  (255)
+#endif
+#if !defined(INT8_MAX)
 	#define INT8_MAX   (127)
+#endif
+#if !defined(INT8_MIN)
 	#define INT8_MIN   (-INT8_MAX - 1)
 #endif