From d6f690f7da2712b79550d909c5cd53432302517c Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Wed, 13 Nov 2013 10:58:31 +0100 Subject: Use C99 printf statements in mingw Otherwise, format specifiers such as %llu will not work on XP or earlier. This bug was introduced with 51ed9ec9. http://sourceforge.net/apps/trac/mingw-w64/wiki/gnu%20printf --- src/util.cpp | 4 ---- src/util.h | 29 ++++++++--------------------- 2 files changed, 8 insertions(+), 25 deletions(-) (limited to 'src') diff --git a/src/util.cpp b/src/util.cpp index 5411bb2fe3..44186b7325 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -336,11 +336,7 @@ string vstrprintf(const char *format, va_list ap) { va_list arg_ptr; va_copy(arg_ptr, ap); -#ifdef WIN32 - ret = _vsnprintf(p, limit, format, arg_ptr); -#else ret = vsnprintf(p, limit, format, arg_ptr); -#endif va_end(arg_ptr); if (ret >= 0 && ret < limit) break; diff --git a/src/util.h b/src/util.h index d3687620dc..9c7f185f13 100644 --- a/src/util.h +++ b/src/util.h @@ -44,26 +44,13 @@ static const int64_t CENT = 1000000; #define UEND(a) ((unsigned char*)&((&(a))[1])) #define ARRAYLEN(array) (sizeof(array)/sizeof((array)[0])) -/* Format characters for (s)size_t and ptrdiff_t */ -#if defined(_MSC_VER) || defined(__MSVCRT__) - /* (s)size_t and ptrdiff_t have the same size specifier in MSVC: - http://msdn.microsoft.com/en-us/library/tcxf1dw6%28v=vs.100%29.aspx - */ - #define PRIszx "Ix" - #define PRIszu "Iu" - #define PRIszd "Id" - #define PRIpdx "Ix" - #define PRIpdu "Iu" - #define PRIpdd "Id" -#else /* C99 standard */ - #define PRIszx "zx" - #define PRIszu "zu" - #define PRIszd "zd" - #define PRIpdx "tx" - #define PRIpdu "tu" - #define PRIpdd "td" -#endif - +/* Format characters for (s)size_t and ptrdiff_t (C99 standard) */ +#define PRIszx "zx" +#define PRIszu "zu" +#define PRIszd "zd" +#define PRIpdx "tx" +#define PRIpdu "tu" +#define PRIpdd "td" // This is needed because the foreach macro can't get over the comma in pair #define PAIRTYPE(t1, t2) std::pair @@ -117,7 +104,7 @@ inline void MilliSleep(int64_t n) * Parameters count from 1. */ #ifdef __GNUC__ -#define ATTR_WARN_PRINTF(X,Y) __attribute__((format(printf,X,Y))) +#define ATTR_WARN_PRINTF(X,Y) __attribute__((format(gnu_printf,X,Y))) #else #define ATTR_WARN_PRINTF(X,Y) #endif -- cgit v1.2.3