mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
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
This commit is contained in:
parent
b3e579713f
commit
d6f690f7da
@ -221,7 +221,7 @@ case $host in
|
|||||||
AC_MSG_ERROR("windres not found")
|
AC_MSG_ERROR("windres not found")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB"
|
CPPFLAGS="$CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -D__USE_MINGW_ANSI_STDIO"
|
||||||
LEVELDB_TARGET_FLAGS="TARGET_OS=OS_WINDOWS_CROSSCOMPILE"
|
LEVELDB_TARGET_FLAGS="TARGET_OS=OS_WINDOWS_CROSSCOMPILE"
|
||||||
CXXFLAGS="$CXXFLAGS -w"
|
CXXFLAGS="$CXXFLAGS -w"
|
||||||
;;
|
;;
|
||||||
|
@ -336,11 +336,7 @@ string vstrprintf(const char *format, va_list ap)
|
|||||||
{
|
{
|
||||||
va_list arg_ptr;
|
va_list arg_ptr;
|
||||||
va_copy(arg_ptr, ap);
|
va_copy(arg_ptr, ap);
|
||||||
#ifdef WIN32
|
|
||||||
ret = _vsnprintf(p, limit, format, arg_ptr);
|
|
||||||
#else
|
|
||||||
ret = vsnprintf(p, limit, format, arg_ptr);
|
ret = vsnprintf(p, limit, format, arg_ptr);
|
||||||
#endif
|
|
||||||
va_end(arg_ptr);
|
va_end(arg_ptr);
|
||||||
if (ret >= 0 && ret < limit)
|
if (ret >= 0 && ret < limit)
|
||||||
break;
|
break;
|
||||||
|
29
src/util.h
29
src/util.h
@ -44,26 +44,13 @@ static const int64_t CENT = 1000000;
|
|||||||
#define UEND(a) ((unsigned char*)&((&(a))[1]))
|
#define UEND(a) ((unsigned char*)&((&(a))[1]))
|
||||||
#define ARRAYLEN(array) (sizeof(array)/sizeof((array)[0]))
|
#define ARRAYLEN(array) (sizeof(array)/sizeof((array)[0]))
|
||||||
|
|
||||||
/* Format characters for (s)size_t and ptrdiff_t */
|
/* Format characters for (s)size_t and ptrdiff_t (C99 standard) */
|
||||||
#if defined(_MSC_VER) || defined(__MSVCRT__)
|
#define PRIszx "zx"
|
||||||
/* (s)size_t and ptrdiff_t have the same size specifier in MSVC:
|
#define PRIszu "zu"
|
||||||
http://msdn.microsoft.com/en-us/library/tcxf1dw6%28v=vs.100%29.aspx
|
#define PRIszd "zd"
|
||||||
*/
|
#define PRIpdx "tx"
|
||||||
#define PRIszx "Ix"
|
#define PRIpdu "tu"
|
||||||
#define PRIszu "Iu"
|
#define PRIpdd "td"
|
||||||
#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
|
|
||||||
|
|
||||||
|
|
||||||
// This is needed because the foreach macro can't get over the comma in pair<t1, t2>
|
// This is needed because the foreach macro can't get over the comma in pair<t1, t2>
|
||||||
#define PAIRTYPE(t1, t2) std::pair<t1, t2>
|
#define PAIRTYPE(t1, t2) std::pair<t1, t2>
|
||||||
@ -117,7 +104,7 @@ inline void MilliSleep(int64_t n)
|
|||||||
* Parameters count from 1.
|
* Parameters count from 1.
|
||||||
*/
|
*/
|
||||||
#ifdef __GNUC__
|
#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
|
#else
|
||||||
#define ATTR_WARN_PRINTF(X,Y)
|
#define ATTR_WARN_PRINTF(X,Y)
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user