From 2e14844a2417a521355068a8b43be494985ae267 Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Sat, 10 Nov 2012 07:03:47 +0000 Subject: [PATCH] - attempt to bugfix windows using proper printf syntax for data types --- .../glest_game/network/network_protocol.cpp | 38 +++++++++---------- .../include/platform/sdl/data_types.h | 13 +++++++ 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/source/glest_game/network/network_protocol.cpp b/source/glest_game/network/network_protocol.cpp index 2c3989b4..c3ff6fa7 100644 --- a/source/glest_game/network/network_protocol.cpp +++ b/source/glest_game/network/network_protocol.cpp @@ -204,7 +204,7 @@ int64 unpacki64(unsigned char *buf) } else { i = -1 -(int64)(0xffffffffffffffffull - i2); - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("IN [%s] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [%ld] [%lu]\n",__FUNCTION__,buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],i,i2); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("IN [%s] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [%d] [" MG_I64_SPECIFIER "] [" MG_I64U_SPECIFIER "]\n",__FUNCTION__,buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],i,i2); } return i; @@ -277,7 +277,7 @@ unsigned int pack(unsigned char *buf, const char *format, ...) { c = (int8)va_arg(ap, int); // promoted *buf++ = (unsigned char)c; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack int8 = %d [%X] c = %d [%X] buf pos = %ld\n",*(buf-1),*(buf-1),c,c,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack int8 = %d [%X] c = %d [%X] buf pos = %lu\n",*(buf-1),*(buf-1),c,c,(unsigned long)(buf - bufStart)); break; case 'C': // 8-bit unsigned @@ -285,7 +285,7 @@ unsigned int pack(unsigned char *buf, const char *format, ...) { C = (uint8)va_arg(ap, unsigned int); // promoted *buf++ = (unsigned char)C; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack uint8 = %u [%X] C = %u [%X] buf pos = %ld\n",*(buf-1),*(buf-1),C,C,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack uint8 = %u [%X] C = %u [%X] buf pos = %lu\n",*(buf-1),*(buf-1),C,C,(unsigned long)(buf - bufStart)); break; case 'h': // 16-bit @@ -294,7 +294,7 @@ unsigned int pack(unsigned char *buf, const char *format, ...) { packi16(buf, h); buf += 2; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack int16 = %d [%X] h = %d [%X] buf pos = %ld\n",*(buf-2),*(buf-2),h,h,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack int16 = %d [%X] h = %d [%X] buf pos = %lu\n",*(buf-2),*(buf-2),h,h,(unsigned long)(buf - bufStart)); break; case 'H': // 16-bit unsigned @@ -303,7 +303,7 @@ unsigned int pack(unsigned char *buf, const char *format, ...) { packi16(buf, H); buf += 2; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack uint16 = %u [%X] H = %u [%X] buf pos = %ld\n",*(buf-2),*(buf-2),H,H,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack uint16 = %u [%X] H = %u [%X] buf pos = %lu\n",*(buf-2),*(buf-2),H,H,(unsigned long)(buf - bufStart)); break; case 'l': // 32-bit @@ -312,7 +312,7 @@ unsigned int pack(unsigned char *buf, const char *format, ...) { packi32(buf, l); buf += 4; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack int32 = %d [%X] l = %d [%X] buf pos = %ld\n",*(buf-4),*(buf-4),l,l,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack int32 = %d [%X] l = %d [%X] buf pos = %lu\n",*(buf-4),*(buf-4),l,l,(unsigned long)(buf - bufStart)); break; case 'L': // 32-bit unsigned @@ -321,7 +321,7 @@ unsigned int pack(unsigned char *buf, const char *format, ...) { packi32(buf, L); buf += 4; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack uint32 = %u [%X] L = %u [%X] buf pos = %ld\n",*(buf-4),*(buf-4),L,L,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack uint32 = %u [%X] L = %u [%X] buf pos = %lu\n",*(buf-4),*(buf-4),L,L,(unsigned long)(buf - bufStart)); break; case 'q': // 64-bit @@ -330,7 +330,7 @@ unsigned int pack(unsigned char *buf, const char *format, ...) { packi64(buf, q); buf += 8; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack int64 = %ld [%X] q = %ld [%lX] buf pos = %ld\n",(int64)*(buf-8),*(buf-8),q,q,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack int64 = " MG_I64_SPECIFIER " [%X] q = %ld [%lX] buf pos = %lu\n",(int64)*(buf-8),*(buf-8),q,q,(unsigned long)(buf - bufStart)); break; case 'Q': // 64-bit unsigned @@ -339,7 +339,7 @@ unsigned int pack(unsigned char *buf, const char *format, ...) { packi64(buf, Q); buf += 8; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack uint64 = %lu [%X] Q = %lu buf pos = %ld\n",(uint64)*(buf-8),*(buf-8),Q,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack uint64 = " MG_I64U_SPECIFIER " [%X] Q = " MG_I64U_SPECIFIER " buf pos = %lu\n",(uint64)*(buf-8),*(buf-8),Q,(unsigned long)(buf - bufStart)); break; case 'f': // float-16 @@ -377,7 +377,7 @@ unsigned int pack(unsigned char *buf, const char *format, ...) { buf += 2; memcpy(buf, s, len); - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack string size = %d [%X] len = %d str [%s] buf pos = %ld\n",*(buf-2),*(buf-2),len,s,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("pack string size = %d [%X] len = %d str [%s] buf pos = %lu\n",*(buf-2),*(buf-2),len,s,(unsigned long)(buf - bufStart)); buf += len; break; @@ -452,7 +452,7 @@ unsigned int unpack(unsigned char *buf, const char *format, ...) { *c = (int8)*buf++; size += 1; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack int8 = %d [%X] c = %d [%X] buf pos = %ld\n",*(buf-1),*(buf-1),*c,*c,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack int8 = %d [%X] c = %d [%X] buf pos = %lu\n",*(buf-1),*(buf-1),*c,*c,(unsigned long)(buf - bufStart)); break; case 'C': // 8-bit unsigned @@ -460,7 +460,7 @@ unsigned int unpack(unsigned char *buf, const char *format, ...) { *C = (uint8)*buf++; size += 1; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack uint8 = %u [%X] C = %u [%X] buf pos = %ld\n",*(buf-1),*(buf-1),*C,*C,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack uint8 = %u [%X] C = %u [%X] buf pos = %lu\n",*(buf-1),*(buf-1),*C,*C,(unsigned long)(buf - bufStart)); break; case 'h': // 16-bit @@ -469,7 +469,7 @@ unsigned int unpack(unsigned char *buf, const char *format, ...) { buf += 2; size += 2; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack int16 = %d [%X] h = %d [%X] buf pos = %ld\n",*(buf-2),*(buf-2),*h,*h,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack int16 = %d [%X] h = %d [%X] buf pos = %lu\n",*(buf-2),*(buf-2),*h,*h,(unsigned long)(buf - bufStart)); break; case 'H': // 16-bit unsigned @@ -478,7 +478,7 @@ unsigned int unpack(unsigned char *buf, const char *format, ...) { buf += 2; size += 2; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack uint16 = %u [%X] H = %u [%X] buf pos = %ld\n",*(buf-2),*(buf-2),*H,*H,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack uint16 = %u [%X] H = %u [%X] buf pos = %lu\n",*(buf-2),*(buf-2),*H,*H,(unsigned long)(buf - bufStart)); break; case 'l': // 32-bit @@ -487,7 +487,7 @@ unsigned int unpack(unsigned char *buf, const char *format, ...) { buf += 4; size += 4; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack int32 = %d [%X] l = %d [%X] buf pos = %ld\n",*(buf-4),*(buf-4),*l,*l,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack int32 = %d [%X] l = %d [%X] buf pos = %lu\n",*(buf-4),*(buf-4),*l,*l,(unsigned long)(buf - bufStart)); break; case 'L': // 32-bit unsigned @@ -496,7 +496,7 @@ unsigned int unpack(unsigned char *buf, const char *format, ...) { buf += 4; size += 4; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack uint32 = %u [%X] L = %u [%X] buf pos = %ld\n",*(buf-4),*(buf-4),*L,*L,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack uint32 = %u [%X] L = %u [%X] buf pos = %lu\n",*(buf-4),*(buf-4),*L,*L,(unsigned long)(buf - bufStart)); break; case 'q': // 64-bit @@ -505,7 +505,7 @@ unsigned int unpack(unsigned char *buf, const char *format, ...) { buf += 8; size += 8; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack int64 = %ld [%X] q = %ld buf pos = %ld\n",(int64)*(buf-8),*(buf-8),*q,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack int64 = " MG_I64_SPECIFIER " [%X] q = " MG_I64_SPECIFIER " buf pos = %lu\n",(int64)*(buf-8),*(buf-8),*q,(unsigned long)(buf - bufStart)); break; case 'Q': // 64-bit unsigned @@ -514,7 +514,7 @@ unsigned int unpack(unsigned char *buf, const char *format, ...) { buf += 8; size += 8; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack uint64 = %lu [%X] Q = %lu buf pos = %ld\n",(uint64)*(buf-8),*(buf-8),*Q,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack uint64 = " MG_I64U_SPECIFIER " [%X] Q = " MG_I64U_SPECIFIER " buf pos = %lu\n",(uint64)*(buf-8),*(buf-8),*Q,(unsigned long)(buf - bufStart)); break; case 'f': // float @@ -558,7 +558,7 @@ unsigned int unpack(unsigned char *buf, const char *format, ...) { memcpy(s, buf, count); s[count] = '\0'; - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack string size = %d [%X] count = %d len = %d str [%s] buf pos = %ld\n",*(buf-2),*(buf-2),count,len,s,(buf - bufStart)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("unpack string size = %d [%X] count = %d len = %d str [%s] buf pos = %lu\n",*(buf-2),*(buf-2),count,len,s,(unsigned long)(buf - bufStart)); buf += len; size += len; diff --git a/source/shared_lib/include/platform/sdl/data_types.h b/source/shared_lib/include/platform/sdl/data_types.h index 27a0b95f..8a7d3748 100644 --- a/source/shared_lib/include/platform/sdl/data_types.h +++ b/source/shared_lib/include/platform/sdl/data_types.h @@ -14,7 +14,10 @@ #ifndef WIN32 +#define __STDC_FORMAT_MACROS + #include +#include //#include "leak_dumper.h" #else @@ -29,20 +32,30 @@ #define MG_SIZE_T_SPECIFIER "%Iu" #define MG_SSIZE_T_SPECIFIER "%Id" #define MG_PTRDIFF_T_SPECIFIER "%Id" + #define MG_I64_SPECIFIER "%I64d" + #define MG_I64U_SPECIFIER "%I64u" #elif defined(__GNUC__) #define MG_SIZE_T_SPECIFIER "%zu" #define MG_SSIZE_T_SPECIFIER "%zd" #define MG_PTRDIFF_T_SPECIFIER "%zd" + #define MG_I64_SPECIFIER "%" PRId64"" + #define MG_I64U_SPECIFIER "%" PRIu64"" #else // TODO figure out which to use. #if NUMBITS == 32 #define MG_SIZE_T_SPECIFIER "%lu" #define MG_SSIZE_T_SPECIFIER "%ld" #define MG_PTRDIFF_T_SPECIFIER "%ld" + #define MG_I64_SPECIFIER "%lld" + #define MG_I64U_SPECIFIER "%llu" + #else #define MG_SIZE_T_SPECIFIER "%llu" #define MG_SSIZE_T_SPECIFIER "%lld" #define MG_PTRDIFF_T_SPECIFIER "%lld" + #define MG_I64_SPECIFIER "%lld" + #define MG_I64U_SPECIFIER "%llu" + #endif #endif