(svn r3011) Refix last revision's fix of VS6 which broke compilation on MinGW. Also beautify stdafx.h with nice indentation and comments after big #ifdef blocks. Hope it didn't break compilation on any OS's.
authorDarkvater
Mon, 03 Oct 2005 22:16:30 +0000
changeset 2485 fd92a70a064a
parent 2484 8e0c88a833fb
child 2486 f02260ccd668
(svn r3011) Refix last revision's fix of VS6 which broke compilation on MinGW. Also beautify stdafx.h with nice indentation and comments after big #ifdef blocks. Hope it didn't break compilation on any OS's.
stdafx.h
--- a/stdafx.h	Mon Oct 03 21:20:01 2005 +0000
+++ b/stdafx.h	Mon Oct 03 22:16:30 2005 +0000
@@ -4,20 +4,19 @@
 #define STDAFX_H
 
 #if defined(_MSC_VER)
-	#pragma once
-
-	#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
-	#pragma warning(disable: 4018) // 'expression' : signed/unsigned mismatch
-	#pragma warning(disable: 4100) // 'identifier' : unreferenced formal parameter
-	#pragma warning(disable: 4127) // conditional expression is constant
-	#pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
-	#pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data
-	#pragma warning(disable: 4245) // 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
-	#pragma warning(disable: 4276) // 'fucntion' : no prototype provided; assumed no parameters (MSVC BUG???)
-	#pragma warning(disable: 4305) // 'identifier' : truncation from 'type1' to 'type2'
-	#pragma warning(disable: 4514) // 'function' : unreferenced inline function has been removed
-	#pragma warning(disable: 4761) // integral size mismatch in argument : conversion supplied
-#endif
+# pragma once
+# define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
+# pragma warning(disable: 4018) // 'expression' : signed/unsigned mismatch
+# pragma warning(disable: 4100) // 'identifier' : unreferenced formal parameter
+# pragma warning(disable: 4127) // conditional expression is constant
+# pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
+# pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data
+# pragma warning(disable: 4245) // 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
+# pragma warning(disable: 4276) // 'fucntion' : no prototype provided; assumed no parameters (MSVC BUG???)
+# pragma warning(disable: 4305) // 'identifier' : truncation from 'type1' to 'type2'
+# pragma warning(disable: 4514) // 'function' : unreferenced inline function has been removed
+# pragma warning(disable: 4761) // integral size mismatch in argument : conversion supplied
+#endif /* _MSC_VER */
 
 #include <stdio.h>
 #include <string.h>
@@ -26,46 +25,46 @@
 // MacOS X will use an NSAlert to display failed assertaions since they're lost unless running from a terminal
 // strgen always runs from terminal and don't need a window for asserts
 #if !defined(__APPLE__) || defined(STRGEN)
-#include <assert.h>
+# include <assert.h>
 #else
-#include "os/macosx/macos.h"
+# include "os/macosx/macos.h"
 #endif
 
 #if defined(UNIX) || defined(__MINGW32__)
-#	include <sys/types.h>
+# include <sys/types.h>
 #endif
 
 #if defined(__OS2__)
-#	include <types.h>
+# include <types.h>
 #endif
 
 #ifdef __BEOS__
-#include <SupportDefs.h>
+# include <SupportDefs.h>
 #endif
 
 #ifdef SUNOS
-#include <alloca.h>
+# include <alloca.h>
 #endif
 
 #ifdef __MORPHOS__
 // morphos defines certain amiga defines per default, we undefine them
 // here to make the rest of source less messy and more clear what is
 // required for morphos and what for amigaos
-#	ifdef amigaos
-#		undef amigaos
-#	endif
-#	ifdef __amigaos__
-#		undef __amigaos__
-#	endif
-#	ifdef __AMIGA__
-#		undef __AMIGA__
-#	endif
-#	ifdef AMIGA
-#		undef AMIGA
-#	endif
-#	ifdef amiga
-#   	undef amiga
-#	endif
+# ifdef amigaos
+#  undef amigaos
+# endif
+# ifdef __amigaos__
+#  undef __amigaos__
+# endif
+# ifdef __AMIGA__
+#  undef __AMIGA__
+# endif
+# ifdef AMIGA
+#  undef AMIGA
+# endif
+# ifdef amiga
+#  undef amiga
+# endif
 #endif /* __MORPHOS__ */
 
 #define BSWAP32(x) ((((x) >> 24) & 0xFF) | (((x) >> 8) & 0xFF00) | (((x) << 8) & 0xFF0000) | (((x) << 24) & 0xFF000000))
@@ -86,166 +85,158 @@
 # define NOT_REACHED() assert(0)
 # define GCC_PACK __attribute__((packed))
 
-#	if (__GNUC__ == 2)
+# if (__GNUC__ == 2)
 #  undef VARARRAY_SIZE
 #  define VARARRAY_SIZE 0
 # endif
-#endif
+#endif /* __GNUC__ */
 
 #if defined(__WATCOMC__)
-#       define NORETURN
-#       define FORCEINLINE inline
-#       define CDECL
-#       define NOT_REACHED() assert(0)
-#       define GCC_PACK
-#       undef TTD_ALIGNMENT_4
-#       undef TTD_ALIGNMENT_2
-
-#       include <malloc.h>
-#endif
+# define NORETURN
+# define FORCEINLINE inline
+# define CDECL
+# define NOT_REACHED() assert(0)
+# define GCC_PACK
+# undef TTD_ALIGNMENT_4
+# undef TTD_ALIGNMENT_2
+# include <malloc.h>
+#endif /* __WATCOMC__ */
 
 #if defined(__MINGW32__) || defined(__CYGWIN__)
-#include <malloc.h> // alloca()
+# include <malloc.h> // alloca()
 #endif
 
 // Stuff for MSVC
 #if defined(_MSC_VER)
-#	include <malloc.h> // alloca()
+# include <malloc.h> // alloca()
 # define NORETURN __declspec(noreturn)
-#	define FORCEINLINE __forceinline
-#	define inline _inline
-#	define CDECL _cdecl
+# define FORCEINLINE __forceinline
+# define inline _inline
+# define CDECL _cdecl
 # if defined(_DEBUG)
 #  define NOT_REACHED() assert(0)
 # else
 #  define NOT_REACHED() _assume(0)
+# endif /* _DEBUG */
+  int CDECL snprintf(char *str, size_t size, const char *format, ...);
+# if _MSC_VER < 1400
+   int CDECL vsnprintf(char *str, size_t size, const char *format, va_list ap);
 # endif
-int CDECL snprintf(char *str, size_t size, const char *format, ...);
-#if _MSC_VER < 1400
-int CDECL vsnprintf(char *str, size_t size, const char *format, va_list ap);
-#endif
+
+# if defined(WIN32) && !defined(_WIN64) && !defined(WIN64)
+#  ifndef _W64
+#   define _W64
+#  endif
+   typedef _W64 int INT_PTR, *PINT_PTR;
+   typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;
+# endif /* WIN32 && !_WIN64 && !WIN64 */
+
+# if _MSC_VER < 1300 // VC6 and lower
+#  ifdef  _WIN64
+    typedef __int64 intptr_t;
+#  else
+    typedef _W64 int intptr_t;
+#  endif
+# endif /* _MSC_VER < 1300 */
+
 # undef TTD_ALIGNMENT_4
 # undef TTD_ALIGNMENT_2
 # define GCC_PACK
-#endif
-
-// Needed for old PlatformSDK versions (e.g. VC6)
-#if defined(WIN32) && !defined(_WIN64) && !defined(WIN64)
-#	ifndef _W64
-#		define _W64
-#	endif
-typedef _W64 int INT_PTR, *PINT_PTR;
-typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;
+#endif /* defined(_MSC_VER) */
 
-#ifndef _INTPTR_T_DEFINED
-#ifdef  _WIN64
-typedef __int64             intptr_t;
-#else
-typedef _W64 int            intptr_t;
-#endif
-#define _INTPTR_T_DEFINED
-#endif
-
-#endif
 
 // Windows has always LITTLE_ENDIAN
 #if defined(WIN32) || defined(__OS2__) || defined(WIN64)
-  #define TTD_LITTLE_ENDIAN
+# define TTD_LITTLE_ENDIAN
 #else
 // Else include endian[target/host].h, which has the endian-type, autodetected by the Makefile
-  #if defined(STRGEN)
-    #include "endian_host.h"
-  #else
-    #include "endian_target.h"
-  #endif
-#endif
+# if defined(STRGEN)
+#  include "endian_host.h"
+# else
+#  include "endian_target.h"
+# endif
+#endif /* WIN32 || __OS2__ || WIN64 */
 
 #if defined(UNIX)
-#define PATHSEP "/"
+# define PATHSEP "/"
 #else
-#define PATHSEP "\\"
+# define PATHSEP "\\"
 #endif
 
-
 typedef unsigned char byte;
 #ifndef __BEOS__ // already defined
-typedef unsigned char uint8;
-typedef unsigned short uint16;
-typedef unsigned int uint32;
+  typedef unsigned char uint8;
+  typedef unsigned short uint16;
+  typedef unsigned int uint32;
 #endif
 
 // This is already defined in unix
 #if !defined(UNIX) && !defined(__CYGWIN__) && !defined(__BEOS__)
-	typedef unsigned int uint;
+  typedef unsigned int uint;
 #endif
 // Not defined in QNX Neutrino (6.x)
 #if defined(__QNXNTO__)
-	typedef unsigned int uint;
+  typedef unsigned int uint;
 #endif
 
 #ifndef __BEOS__
-typedef signed char int8;
-typedef signed short int16;
-typedef signed int int32;
-#ifndef __cplusplus
-typedef unsigned char bool;
-#endif
-typedef signed __int64 int64;
-typedef unsigned __int64 uint64;
-#endif
+  typedef signed char int8;
+  typedef signed short int16;
+  typedef signed int int32;
+# ifndef __cplusplus
+   typedef unsigned char bool;
+# endif
+  typedef signed __int64 int64;
+  typedef unsigned __int64 uint64;
+#endif /* __BEOS__ */
 
 // Setup alignment and conversion macros
 #if defined(TTD_BIG_ENDIAN)
-
 # define TTD_ALIGNMENT_2
 # define TTD_ALIGNMENT_4
-
-static inline uint32 TO_LE32(uint32 x) { return BSWAP32(x); }
-static inline uint16 TO_LE16(uint16 x) { return BSWAP16(x); }
-static inline uint32 FROM_LE32(uint32 x) { return BSWAP32(x); }
-static inline uint16 FROM_LE16(uint16 x) { return BSWAP16(x); }
-#define TO_BE32(x) x
-#define TO_BE16(x) x
-#define FROM_BE32(x) x
-#define FROM_BE16(x) x
-#define TO_BE32X(x) x
-
+  static inline uint32 TO_LE32(uint32 x) { return BSWAP32(x); }
+  static inline uint16 TO_LE16(uint16 x) { return BSWAP16(x); }
+  static inline uint32 FROM_LE32(uint32 x) { return BSWAP32(x); }
+  static inline uint16 FROM_LE16(uint16 x) { return BSWAP16(x); }
+# define TO_BE32(x) x
+# define TO_BE16(x) x
+# define FROM_BE32(x) x
+# define FROM_BE16(x) x
+# define TO_BE32X(x) x
 #else
-
-static inline uint32 TO_BE32(uint32 x) { return BSWAP32(x); }
-static inline uint16 TO_BE16(uint16 x) { return BSWAP16(x); }
-static inline uint32 FROM_BE32(uint32 x) { return BSWAP32(x); }
-static inline uint16 FROM_BE16(uint16 x) { return BSWAP16(x); }
-#define TO_LE32(x) x
-#define TO_LE16(x) x
-#define TO_BE32X(x) BSWAP32(x)
-#define FROM_LE32(x) x
-#define FROM_LE16(x) x
-
-#endif
+  static inline uint32 TO_BE32(uint32 x) { return BSWAP32(x); }
+  static inline uint16 TO_BE16(uint16 x) { return BSWAP16(x); }
+  static inline uint32 FROM_BE32(uint32 x) { return BSWAP32(x); }
+  static inline uint16 FROM_BE16(uint16 x) { return BSWAP16(x); }
+# define TO_LE32(x) x
+# define TO_LE16(x) x
+# define TO_BE32X(x) BSWAP32(x)
+# define FROM_LE32(x) x
+# define FROM_LE16(x) x
+#endif /* TTD_BIG_ENDIAN */
 
 #if !defined(GAME_DATA_DIR)
-#define GAME_DATA_DIR ""
+# define GAME_DATA_DIR ""
 #endif
 
 #if !defined(PERSONAL_DIR)
-#define PERSONAL_DIR ""
+# define PERSONAL_DIR ""
 #endif
 
 #ifndef __cplusplus
-#ifndef __BEOS__
-enum {
-	false = 0,
-	true = 1,
-};
-#endif
-#endif
+# ifndef __BEOS__
+   enum {
+    false = 0,
+    true = 1,
+   };
+# endif
+#endif /* __cplusplus */
 
 // Compile time assertions
 #ifdef __OS2__
-#       define assert_compile(expr)
+# define assert_compile(expr)
 #else
-#       define assert_compile(expr) void __ct_assert__(int a[1 - 2 * !(expr)])
+# define assert_compile(expr) void __ct_assert__(int a[1 - 2 * !(expr)])
 #endif
 
 assert_compile(sizeof(uint32) == 4);
@@ -256,21 +247,21 @@
 #define endof(x) (&x[lengthof(x)])
 #define lastof(x) (&x[lengthof(x) - 1])
 #ifndef offsetof
-#define offsetof(s,m)   (size_t)&(((s *)0)->m)
+# define offsetof(s,m)   (size_t)&(((s *)0)->m)
 #endif
 
 
 // take care of some name clashes on macos
 #if defined(__APPLE__)
-#define GetString OTTD_GetString
-#define DrawString OTTD_DrawString
-#define Random OTTD_Random
-#define CloseConnection OTTD_CloseConnection
-#endif
+# define GetString OTTD_GetString
+# define DrawString OTTD_DrawString
+# define Random OTTD_Random
+# define CloseConnection OTTD_CloseConnection
+#endif /* __APPLE */
 
 #ifdef __AMIGA__
 // it seems AmigaOS already have a Point declared
-#define Point OTTD_AMIGA_POINT
+# define Point OTTD_AMIGA_POINT
 #endif
 
 #endif /* STDAFX_H */