DEFAULT_wxUSE_SOUND=no
DEFAULT_wxUSE_MEDIACTRL=no
DEFAULT_wxUSE_GSTREAMER8=no
+ DEFAULT_wxUSE_PRINTF_POS_PARAM=no
DEFAULT_wxUSE_INTL=no
DEFAULT_wxUSE_CONFIG=no
DEFAULT_wxUSE_FONTMAP=no
DEFAULT_wxUSE_SOUND=yes
DEFAULT_wxUSE_MEDIACTRL=no
DEFAULT_wxUSE_GSTREAMER8=no
+ DEFAULT_wxUSE_PRINTF_POS_PARAM=yes
DEFAULT_wxUSE_INTL=yes
DEFAULT_wxUSE_CONFIG=yes
DEFAULT_wxUSE_FONTMAP=yes
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(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(url, [ --enable-url use wxURL class], wxUSE_URL)
AC_DEFINE(HAVE_BROKEN_SNPRINTF_DECL)
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
+
if test "$wxUSE_UNICODE" = yes; then
dnl also look if we have wide char IO functions
AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf)
AC_DEFINE(wxUSE_STREAMS)
fi
+if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
+ AC_DEFINE(wxUSE_PRINTF_POS_PARAMS)
+fi
+
+
dnl ---------------------------------------------------------------------------
dnl time/date functions
dnl ---------------------------------------------------------------------------
// Default is 1
//
// 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
# define wxUSE_XML 0
#endif
+// Use wxWidget's AUI docking system
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_AUI 1
+
// ----------------------------------------------------------------------------
// Individual GUI controls
// ----------------------------------------------------------------------------
// Default is 1
//
// 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
# define wxUSE_XML 0
#endif
+// Use wxWidget's AUI docking system
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_AUI 1
+
// ----------------------------------------------------------------------------
// Individual GUI controls
// ----------------------------------------------------------------------------
// Default is 1
//
// 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
// Default is 1
//
// 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
# define wxUSE_XML 0
#endif
+// Use wxWidget's AUI docking system
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_AUI 1
+
// ----------------------------------------------------------------------------
// Individual GUI controls
// ----------------------------------------------------------------------------
// Default is 1
//
// 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
// Default is 1
//
// 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
# define wxUSE_XML 0
#endif
+// Use wxWidget's AUI docking system
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_AUI 1
+
// ----------------------------------------------------------------------------
// Individual GUI controls
// ----------------------------------------------------------------------------
// Default is 1
//
// 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
#define wxVsnprintf_ _vsnwprintf
#define wxSnprintf_ _snwprintf
#endif /* Watcom */
- #if defined(HAVE__VSNWPRINTF) && defined(HAVE_UNIX98_PRINTF)
+ #if defined(HAVE__VSNWPRINTF)
#define wxVsnprintf_ _vsnwprintf
/* MinGW?MSVCRT has the wrong vswprintf */
/* Mac OS X has a somehow buggy vswprintf */
#else /* ASCII */
/* all versions of CodeWarrior supported by wxWidgets apparently have */
/* both snprintf() and vsnprintf() */
- #if (defined(HAVE_SNPRINTF) && defined(HAVE_UNIX98_PRINTF)) \
+ #if defined(HAVE_SNPRINTF) \
|| defined(__MWERKS__) || defined(__WATCOMC__)
#ifndef HAVE_BROKEN_SNPRINTF_DECL
#define wxSnprintf_ snprintf
#endif
#endif
- #if (defined(HAVE_VSNPRINTF) && defined(HAVE_UNIX98_PRINTF)) \
+ #if defined(HAVE_VSNPRINTF) \
|| defined(__MWERKS__) || defined(__WATCOMC__)
#if defined __cplusplus && defined HAVE_BROKEN_VSNPRINTF_DECL
#define wxVsnprintf_ wx_fixed_vsnprintf
#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_
/* no [v]snprintf(), cook our own */
#define wxUSE_AUI 0
+
#define wxUSE_CONTROLS 0
#define wxUSE_POPUPWIN 0
* with 'char*' for the 3rd parameter instead of 'const char*' */
#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 */
#undef HAVE_STATFS