From 067d1f10627e25eb1af323b56b6dbc7d8e74ba57 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 10 Apr 2010 21:40:23 +0200 Subject: [PATCH] vasnprintf: Fix multiple test failures on mingw. --- ChangeLog | 6 ++++++ lib/vasnprintf.c | 21 +++++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index b8435cd3de..de6afa4281 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-04-10 Bruno Haible + + vasnprintf: Fix multiple test failures on mingw. + * lib/vasnprintf.c (SNPRINTF) [mingw]: Define to snprintf, not + _snprintf, or snwprintf, not _snwprintf. + 2010-04-10 Bruno Haible write: Fix a C++ test error on mingw. diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c index 79854ed878..794fb85f81 100644 --- a/lib/vasnprintf.c +++ b/lib/vasnprintf.c @@ -148,8 +148,14 @@ # define USE_SNPRINTF 1 # if HAVE_DECL__SNWPRINTF /* On Windows, the function swprintf() has a different signature than - on Unix; we use the _snwprintf() function instead. */ -# define SNPRINTF _snwprintf + on Unix; we use the function _snwprintf() or - on mingw - snwprintf() + instead. The mingw function snwprintf() has fewer bugs than the + MSVCRT function _snwprintf(), so prefer that. */ +# if defined __MINGW32__ +# define SNPRINTF snwprintf +# else +# define SNPRINTF _snwprintf +# endif # else /* Unix. */ # define SNPRINTF swprintf @@ -167,8 +173,15 @@ # define USE_SNPRINTF 0 # endif # if HAVE_DECL__SNPRINTF - /* Windows. */ -# define SNPRINTF _snprintf + /* Windows. The mingw function snprintf() has fewer bugs than the MSVCRT + function _snprintf(), so prefer that. */ +# if defined __MINGW32__ +# define SNPRINTF snprintf + /* Here we need to call the native snprintf, not rpl_snprintf. */ +# undef snprintf +# else +# define SNPRINTF _snprintf +# endif # else /* Unix. */ # define SNPRINTF snprintf -- 2.30.2