added wxUSE_PRINTF_POS_PARAMS which can be used to force the use of built-in printf (2nd part of patch 1462778)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
42
configure.in
42
configure.in
@@ -424,6 +424,7 @@ if test $DEBUG_CONFIGURE = 1; then
|
|||||||
DEFAULT_wxUSE_SOUND=no
|
DEFAULT_wxUSE_SOUND=no
|
||||||
DEFAULT_wxUSE_MEDIACTRL=no
|
DEFAULT_wxUSE_MEDIACTRL=no
|
||||||
DEFAULT_wxUSE_GSTREAMER8=no
|
DEFAULT_wxUSE_GSTREAMER8=no
|
||||||
|
DEFAULT_wxUSE_PRINTF_POS_PARAM=no
|
||||||
DEFAULT_wxUSE_INTL=no
|
DEFAULT_wxUSE_INTL=no
|
||||||
DEFAULT_wxUSE_CONFIG=no
|
DEFAULT_wxUSE_CONFIG=no
|
||||||
DEFAULT_wxUSE_FONTMAP=no
|
DEFAULT_wxUSE_FONTMAP=no
|
||||||
@@ -636,6 +637,7 @@ else
|
|||||||
DEFAULT_wxUSE_SOUND=yes
|
DEFAULT_wxUSE_SOUND=yes
|
||||||
DEFAULT_wxUSE_MEDIACTRL=no
|
DEFAULT_wxUSE_MEDIACTRL=no
|
||||||
DEFAULT_wxUSE_GSTREAMER8=no
|
DEFAULT_wxUSE_GSTREAMER8=no
|
||||||
|
DEFAULT_wxUSE_PRINTF_POS_PARAM=yes
|
||||||
DEFAULT_wxUSE_INTL=yes
|
DEFAULT_wxUSE_INTL=yes
|
||||||
DEFAULT_wxUSE_CONFIG=yes
|
DEFAULT_wxUSE_CONFIG=yes
|
||||||
DEFAULT_wxUSE_FONTMAP=yes
|
DEFAULT_wxUSE_FONTMAP=yes
|
||||||
@@ -957,7 +959,7 @@ WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Un
|
|||||||
WX_ARG_ENABLE(sound, [ --enable-sound use wxSound class], wxUSE_SOUND)
|
WX_ARG_ENABLE(sound, [ --enable-sound use wxSound class], wxUSE_SOUND)
|
||||||
WX_ARG_ENABLE(mediactrl, [ --enable-mediactrl use wxMediaCtrl class], wxUSE_MEDIACTRL)
|
WX_ARG_ENABLE(mediactrl, [ --enable-mediactrl use wxMediaCtrl class], wxUSE_MEDIACTRL)
|
||||||
WX_ARG_ENABLE(gstreamer8, [ --enable-gstreamer8 force GStreamer 0.8 instead of 0.10 with the wxMediaCtrl class on unix], wxUSE_GSTREAMER8)
|
WX_ARG_ENABLE(gstreamer8, [ --enable-gstreamer8 force GStreamer 0.8 instead of 0.10 with the wxMediaCtrl class on unix], wxUSE_GSTREAMER8)
|
||||||
WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWidgets implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
|
WX_ARG_ENABLE(printfposparam,[ --enable-printfposparam use wxVsnprintf() which supports positional parameters], wxUSE_PRINTF_POS_PARAMS)
|
||||||
WX_ARG_ENABLE(zipstream, [ --enable-zipstream use wxZip streams], wxUSE_ZIPSTREAM)
|
WX_ARG_ENABLE(zipstream, [ --enable-zipstream use wxZip streams], wxUSE_ZIPSTREAM)
|
||||||
|
|
||||||
WX_ARG_ENABLE(url, [ --enable-url use wxURL class], wxUSE_URL)
|
WX_ARG_ENABLE(url, [ --enable-url use wxURL class], wxUSE_URL)
|
||||||
@@ -4320,8 +4322,41 @@ if test "$ac_cv_func_snprintf" = "yes"; then
|
|||||||
AC_DEFINE(HAVE_BROKEN_SNPRINTF_DECL)
|
AC_DEFINE(HAVE_BROKEN_SNPRINTF_DECL)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
|
||||||
|
|
||||||
|
dnl check if snprintf() has support for positional arguments
|
||||||
|
dnl NB: if snprintf() has positional support we can safely suppose that also
|
||||||
|
dnl other *printf() functions support them as they all belong to the same
|
||||||
|
dnl family and they all fallback to the same implementation
|
||||||
|
AC_CACHE_CHECK([if snprintf supports positional arguments], wx_cv_func_snprintf_pos_params,
|
||||||
|
[
|
||||||
|
AC_TRY_RUN(
|
||||||
|
[
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main (void)
|
||||||
|
{
|
||||||
|
char buffer[128];
|
||||||
|
snprintf (buffer, 128, "%2\$d %3\$d %1\$d", 1, 2, 3);
|
||||||
|
if (strcmp ("2 3 1", buffer) == 0)
|
||||||
|
exit (0);
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
],
|
||||||
|
wx_cv_func_snprintf_pos_params=no,
|
||||||
|
wx_cv_func_snprintf_pos_params=yes
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
if test "$wx_cv_func_snprintf_pos_params" = "yes"; then
|
||||||
|
AC_DEFINE(HAVE_UNIX98_PRINTF)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if test "$wxUSE_UNICODE" = yes; then
|
if test "$wxUSE_UNICODE" = yes; then
|
||||||
dnl also look if we have wide char IO functions
|
dnl also look if we have wide char IO functions
|
||||||
AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf)
|
AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf)
|
||||||
@@ -5648,6 +5683,11 @@ if test "$wxUSE_STREAMS" = "yes" ; then
|
|||||||
AC_DEFINE(wxUSE_STREAMS)
|
AC_DEFINE(wxUSE_STREAMS)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
|
||||||
|
AC_DEFINE(wxUSE_PRINTF_POS_PARAMS)
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl time/date functions
|
dnl time/date functions
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
|
@@ -288,7 +288,7 @@
|
|||||||
// Default is 1
|
// Default is 1
|
||||||
//
|
//
|
||||||
// Recommended setting: 1 if you want to support multiple languages
|
// Recommended setting: 1 if you want to support multiple languages
|
||||||
#define wxUSE_PRINTF_POS_PARAMS 0
|
#define wxUSE_PRINTF_POS_PARAMS 1
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// non GUI features selection
|
// non GUI features selection
|
||||||
@@ -533,6 +533,13 @@
|
|||||||
# define wxUSE_XML 0
|
# define wxUSE_XML 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Use wxWidget's AUI docking system
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_AUI 1
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Individual GUI controls
|
// Individual GUI controls
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -287,7 +287,7 @@
|
|||||||
// Default is 1
|
// Default is 1
|
||||||
//
|
//
|
||||||
// Recommended setting: 1 if you want to support multiple languages
|
// Recommended setting: 1 if you want to support multiple languages
|
||||||
#define wxUSE_PRINTF_POS_PARAMS 0
|
#define wxUSE_PRINTF_POS_PARAMS 1
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// non GUI features selection
|
// non GUI features selection
|
||||||
@@ -532,6 +532,13 @@
|
|||||||
# define wxUSE_XML 0
|
# define wxUSE_XML 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Use wxWidget's AUI docking system
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_AUI 1
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Individual GUI controls
|
// Individual GUI controls
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -287,7 +287,7 @@
|
|||||||
// Default is 1
|
// Default is 1
|
||||||
//
|
//
|
||||||
// Recommended setting: 1 if you want to support multiple languages
|
// Recommended setting: 1 if you want to support multiple languages
|
||||||
#define wxUSE_PRINTF_POS_PARAMS 0
|
#define wxUSE_PRINTF_POS_PARAMS 1
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// non GUI features selection
|
// non GUI features selection
|
||||||
|
@@ -287,7 +287,7 @@
|
|||||||
// Default is 1
|
// Default is 1
|
||||||
//
|
//
|
||||||
// Recommended setting: 1 if you want to support multiple languages
|
// Recommended setting: 1 if you want to support multiple languages
|
||||||
#define wxUSE_PRINTF_POS_PARAMS 0
|
#define wxUSE_PRINTF_POS_PARAMS 1
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// non GUI features selection
|
// non GUI features selection
|
||||||
@@ -532,6 +532,13 @@
|
|||||||
# define wxUSE_XML 0
|
# define wxUSE_XML 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Use wxWidget's AUI docking system
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_AUI 1
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Individual GUI controls
|
// Individual GUI controls
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -287,7 +287,7 @@
|
|||||||
// Default is 1
|
// Default is 1
|
||||||
//
|
//
|
||||||
// Recommended setting: 1 if you want to support multiple languages
|
// Recommended setting: 1 if you want to support multiple languages
|
||||||
#define wxUSE_PRINTF_POS_PARAMS 0
|
#define wxUSE_PRINTF_POS_PARAMS 1
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// non GUI features selection
|
// non GUI features selection
|
||||||
|
@@ -287,7 +287,7 @@
|
|||||||
// Default is 1
|
// Default is 1
|
||||||
//
|
//
|
||||||
// Recommended setting: 1 if you want to support multiple languages
|
// Recommended setting: 1 if you want to support multiple languages
|
||||||
#define wxUSE_PRINTF_POS_PARAMS 0
|
#define wxUSE_PRINTF_POS_PARAMS 1
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// non GUI features selection
|
// non GUI features selection
|
||||||
@@ -532,6 +532,13 @@
|
|||||||
# define wxUSE_XML 0
|
# define wxUSE_XML 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Use wxWidget's AUI docking system
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_AUI 1
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Individual GUI controls
|
// Individual GUI controls
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -283,7 +283,7 @@
|
|||||||
// Default is 1
|
// Default is 1
|
||||||
//
|
//
|
||||||
// Recommended setting: 1 if you want to support multiple languages
|
// Recommended setting: 1 if you want to support multiple languages
|
||||||
#define wxUSE_PRINTF_POS_PARAMS 0
|
#define wxUSE_PRINTF_POS_PARAMS 1
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// non GUI features selection
|
// non GUI features selection
|
||||||
|
@@ -883,7 +883,7 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */
|
|||||||
#define wxVsnprintf_ _vsnwprintf
|
#define wxVsnprintf_ _vsnwprintf
|
||||||
#define wxSnprintf_ _snwprintf
|
#define wxSnprintf_ _snwprintf
|
||||||
#endif /* Watcom */
|
#endif /* Watcom */
|
||||||
#if defined(HAVE__VSNWPRINTF) && defined(HAVE_UNIX98_PRINTF)
|
#if defined(HAVE__VSNWPRINTF)
|
||||||
#define wxVsnprintf_ _vsnwprintf
|
#define wxVsnprintf_ _vsnwprintf
|
||||||
/* MinGW?MSVCRT has the wrong vswprintf */
|
/* MinGW?MSVCRT has the wrong vswprintf */
|
||||||
/* Mac OS X has a somehow buggy vswprintf */
|
/* Mac OS X has a somehow buggy vswprintf */
|
||||||
@@ -893,13 +893,13 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */
|
|||||||
#else /* ASCII */
|
#else /* ASCII */
|
||||||
/* all versions of CodeWarrior supported by wxWidgets apparently have */
|
/* all versions of CodeWarrior supported by wxWidgets apparently have */
|
||||||
/* both snprintf() and vsnprintf() */
|
/* both snprintf() and vsnprintf() */
|
||||||
#if (defined(HAVE_SNPRINTF) && defined(HAVE_UNIX98_PRINTF)) \
|
#if defined(HAVE_SNPRINTF) \
|
||||||
|| defined(__MWERKS__) || defined(__WATCOMC__)
|
|| defined(__MWERKS__) || defined(__WATCOMC__)
|
||||||
#ifndef HAVE_BROKEN_SNPRINTF_DECL
|
#ifndef HAVE_BROKEN_SNPRINTF_DECL
|
||||||
#define wxSnprintf_ snprintf
|
#define wxSnprintf_ snprintf
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if (defined(HAVE_VSNPRINTF) && defined(HAVE_UNIX98_PRINTF)) \
|
#if defined(HAVE_VSNPRINTF) \
|
||||||
|| defined(__MWERKS__) || defined(__WATCOMC__)
|
|| defined(__MWERKS__) || defined(__WATCOMC__)
|
||||||
#if defined __cplusplus && defined HAVE_BROKEN_VSNPRINTF_DECL
|
#if defined __cplusplus && defined HAVE_BROKEN_VSNPRINTF_DECL
|
||||||
#define wxVsnprintf_ wx_fixed_vsnprintf
|
#define wxVsnprintf_ wx_fixed_vsnprintf
|
||||||
@@ -908,7 +908,28 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif /* wxVsnprintf_ not defined yet */
|
#endif /* wxVsnprintf_ not defined yet && !wxUSE_PRINTF_POS_PARAMS */
|
||||||
|
|
||||||
|
#if !defined( wxVsnprintf_ ) && wxUSE_PRINTF_POS_PARAMS
|
||||||
|
/*
|
||||||
|
The systems where vsnprintf() supports positionals should define
|
||||||
|
the HAVE_UNIX98_PRINTF symbol.
|
||||||
|
|
||||||
|
On systems which don't (e.g. Windows) we are forced to use
|
||||||
|
our wxVsnprintf() implementation.
|
||||||
|
*/
|
||||||
|
#if defined(HAVE_UNIX98_PRINTF)
|
||||||
|
#if wxUSE_UNICODE
|
||||||
|
#define wxVsnprintf_ vswprintf
|
||||||
|
#else /* ASCII */
|
||||||
|
#if defined __cplusplus && defined HAVE_BROKEN_VSNPRINTF_DECL
|
||||||
|
#define wxVsnprintf_ wx_fixed_vsnprintf
|
||||||
|
#else
|
||||||
|
#define wxVsnprintf_ vsnprintf
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif // !defined( wxVsnprintf_ ) && wxUSE_PRINTF_POS_PARAMS
|
||||||
|
|
||||||
#ifndef wxSnprintf_
|
#ifndef wxSnprintf_
|
||||||
/* no [v]snprintf(), cook our own */
|
/* no [v]snprintf(), cook our own */
|
||||||
|
@@ -291,6 +291,7 @@
|
|||||||
|
|
||||||
#define wxUSE_AUI 0
|
#define wxUSE_AUI 0
|
||||||
|
|
||||||
|
|
||||||
#define wxUSE_CONTROLS 0
|
#define wxUSE_CONTROLS 0
|
||||||
|
|
||||||
#define wxUSE_POPUPWIN 0
|
#define wxUSE_POPUPWIN 0
|
||||||
@@ -811,6 +812,10 @@
|
|||||||
* with 'char*' for the 3rd parameter instead of 'const char*' */
|
* with 'char*' for the 3rd parameter instead of 'const char*' */
|
||||||
#undef HAVE_BROKEN_SNPRINTF_DECL
|
#undef HAVE_BROKEN_SNPRINTF_DECL
|
||||||
|
|
||||||
|
/* Define if you have a snprintf() which supports positional arguments
|
||||||
|
(defined in the unix98 standard) */
|
||||||
|
#undef HAVE_UNIX98_PRINTF
|
||||||
|
|
||||||
/* define if you have statfs function */
|
/* define if you have statfs function */
|
||||||
#undef HAVE_STATFS
|
#undef HAVE_STATFS
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user