Commit 978ff224 authored by Roumen Petrov's avatar Roumen Petrov Committed by Daniel Veillard

use mingw C99 compatible functions {v}snprintf instead those from MSVC runtime

parent f27c6683
......@@ -1497,18 +1497,22 @@ AC_SUBST(CYGWIN_EXTRA_LDFLAGS)
AC_SUBST(CYGWIN_EXTRA_PYTHON_LIBADD)
dnl Checking the standard string functions availability
case "$host" in
*-*-mingw*)
AC_CHECK_FUNCS(printf sprintf fprintf _snprintf vfprintf vsprintf _vsnprintf sscanf,
[AC_DEFINE([snprintf],[_snprintf],[Win32 Std C name mangling work-around])
AC_DEFINE([vsnprintf],[_vsnprintf],[Win32 Std C name mangling work-around])],
NEED_TRIO=1)
;;
*)
AC_CHECK_FUNCS(printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf,,
NEED_TRIO=1)
;;
esac
dnl
dnl Note mingw* has C99 implementation that produce expected xml numbers
dnl if code use {v}snprintf functions.
dnl If you like to activate at run-time C99 compatible number output
dnl see release note for mingw runtime 3.15:
dnl http://sourceforge.net/project/shownotes.php?release_id=24832
dnl
dnl Also *win32*config.h files redefine them for various MSC compilers.
dnl
dnl So do not redefine {v}snprintf to _{v}snprintf like follwing:
dnl AC_DEFINE([snprintf],[_snprintf],[Win32 Std C name mangling work-around])
dnl AC_DEFINE([vsnprintf],[_vsnprintf],[Win32 Std C name mangling work-around])
dnl and do not redefine those functions is C-source files.
dnl
AC_CHECK_FUNCS(printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf,,
NEED_TRIO=1)
if test "$with_coverage" = "yes" -a "${GCC}" = "yes"
then
......
......@@ -28,9 +28,7 @@
#include "libxml_wrap.h"
#include "libxml2-py.h"
#if (defined(_MSC_VER) || defined(__MINGW32__)) && !defined(vsnprintf)
#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
#elif defined(WITH_TRIO) && !defined(vsnprintf)
#if defined(WITH_TRIO)
#include "trio.h"
#define vsnprintf trio_vsnprintf
#endif
......
......@@ -39,15 +39,6 @@ static FILE *logfile = NULL;
static int verbose = 0;
#if defined(_WIN32) && !defined(__CYGWIN__)
#define vsnprintf _vsnprintf
#define snprintf _snprintf
#endif
/************************************************************************
* *
* File name and path utilities *
......
......@@ -194,8 +194,6 @@ static void globfree(glob_t *pglob) {
free(pglob->gl_pathv[i]);
}
}
#define vsnprintf _vsnprintf
#define snprintf _snprintf
#else
#include <glob.h>
#endif
......
......@@ -37,13 +37,6 @@ static int verbose = 0;
#define NB_EXPECTED_ERRORS 15
#if defined(_WIN32) && !defined(__CYGWIN__)
#define vsnprintf _vsnprintf
#define snprintf _snprintf
#endif
const char *skipped_tests[] = {
/* http://lists.w3.org/Archives/Public/public-xml-testsuite/2008Jul/0000.html */
......
......@@ -148,8 +148,6 @@ static void globfree(glob_t *pglob) {
free(pglob->gl_pathv[i]);
}
}
#define vsnprintf _vsnprintf
#define snprintf _snprintf
#else
#include <glob.h>
#endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment