From e461247b05b417b5c1a5f961de137b3fee2a071e Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 23 Oct 2007 18:20:44 +0000 Subject: [PATCH] do use vswprintf() with mingw32 if STLPort >= 5.1 is used (and not msvcrt which defines vswprintf() in a pre-standard way) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49356 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/wxcrtvararg.h | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/include/wx/wxcrtvararg.h b/include/wx/wxcrtvararg.h index 2e7cf5a505..386b7338ab 100644 --- a/include/wx/wxcrtvararg.h +++ b/include/wx/wxcrtvararg.h @@ -63,12 +63,21 @@ #endif /* - MinGW MSVCRT has non-standard vswprintf() (for MSVC compatibility - presumably) and normally _vsnwprintf() is used instead + mingw32 normally uses MSVCRT which has non-standard vswprintf() and so + normally _vsnwprintf() is used instead, the only exception is when mingw32 + is used with STLPort which does have a standard vswprintf() starting from + version 5.1 which we can use. */ -#if defined(HAVE_VSWPRINTF) && defined(__MINGW32__) - #undef HAVE_VSWPRINTF -#endif +#ifdef __MINGW32__ + #if defined(_STLPORT_VERSION) && _STLPORT_VERSION >= 0x510 + #ifndef HAVE_VSWPRINTF + #define HAVE_VSWPRINTF + #endif + #elif defined(HAVE_VSWPRINTF) + /* can't use non-standard vswprintf() */ + #undef HAVE_VSWPRINTF + #endif +#endif /* __MINGW32__ */ #if defined(__WATCOMC__) #define HAVE_VSWPRINTF 1 @@ -205,7 +214,7 @@ #define wxCRT_PrintfW wprintf #define wxCRT_VfprintfW vfwprintf #define wxCRT_VprintfW vwprintf - + #if defined(__WINDOWS__) && !defined(HAVE_VSWPRINTF) // only non-standard vswprintf() without buffer size argument can be used here #define wxCRT_VsprintfW vswprintf