@ -126,6 +126,9 @@
# define CDECL
# define __int64 long long
# define GCC_PACK __attribute__((packed))
/* Warn about functions using 'printf' format syntax. First argument determines which parameter
* is the format string , second argument is start of values passed to printf . */
# define WARN_FORMAT(string, args) __attribute__ ((format (printf, string, args)))
# if (__GNUC__ == 2)
# undef VARARRAY_SIZE
@ -138,6 +141,7 @@
# define FORCEINLINE inline
# define CDECL
# define GCC_PACK
# define WARN_FORMAT(string, args)
# include <malloc.h>
# endif /* __WATCOMC__ */
@ -177,6 +181,7 @@
# pragma warning(disable: 6031) // code analyzer: Return value ignored: 'ReadFile'
# pragma warning(disable: 6255) // code analyzer: _alloca indicates failure by raising a stack overflow exception. Consider using _malloca instead
# pragma warning(disable: 6246) // code analyzer: Local declaration of 'statspec' hides declaration of the same name in outer scope. For additional information, see previous declaration at ...
# define WARN_FORMAT(string, args)
# include <malloc.h> // alloca()
# define NORETURN __declspec(noreturn)
@ -187,7 +192,7 @@
# define CDECL _cdecl
# endif
int CDECL snprintf ( char * str , size_t size , const char * format , . . . ) ;
int CDECL snprintf ( char * str , size_t size , const char * format , . . . ) WARN_FORMAT ( 3 , 4 ) ;
# if defined(WINCE)
int CDECL vsnprintf ( char * str , size_t size , const char * format , va_list ap ) ;
# endif
@ -224,7 +229,7 @@
# define strncasecmp strnicmp
# endif
void SetExceptionString ( const char * s , . . . ) ;
void SetExceptionString ( const char * s , . . . ) WARN_FORMAT ( 1 , 2 ) ;
# if defined(NDEBUG) && defined(WITH_ASSERT)
# undef assert
@ -272,6 +277,15 @@
# define PATHSEPCHAR ' / '
# endif
/* MSVCRT of course has to have a different syntax for long long *sigh* */
# if defined(_MSC_VER) || defined(__MINGW32__)
# define OTTD_PRINTF64 "%I64d"
# define PRINTF_SIZE "%Iu"
# else
# define OTTD_PRINTF64 "%lld"
# define PRINTF_SIZE "%zu"
# endif
typedef unsigned char byte ;
/* This is already defined in unix, but not in QNX Neutrino (6.x)*/
@ -346,8 +360,8 @@ assert_compile(sizeof(uint8) == 1);
# define CloseConnection OTTD_CloseConnection
# endif /* __APPLE__ */
void NORETURN CDECL usererror ( const char * str , . . . ) ;
void NORETURN CDECL error ( const char * str , . . . ) ;
void NORETURN CDECL usererror ( const char * str , . . . ) WARN_FORMAT ( 1 , 2 ) ;
void NORETURN CDECL error ( const char * str , . . . ) WARN_FORMAT ( 1 , 2 ) ;
# define NOT_REACHED() error("NOT_REACHED triggered at line %i of %s", __LINE__, __FILE__)
# if defined(MORPHOS) || defined(__NDS__) || defined(__DJGPP__)