+ va_list argp;
+ va_start(argp, fmt);
+ vsnprintf(s, 42, fmt, argp);
+ va_end(argp);
+ ], [
+ AC_DEFINE(HAVE_VSNPRINTF)
+ wx_cv_func_vsnprintf=yes
+ ], [
+ AC_TRY_COMPILE([
+ #include <stdio.h>
+ #include <stdarg.h>
+ ], [
+ int wx_test_vsnprintf(const char *, ...);
+
+ wx_test_vsnprintf("%s");
+ return 0;
+ }
+
+ int wx_test_vsnprintf(const char *fmt, ...)
+ {
+ char *s;
+
+ va_list argp;
+ va_start(argp, fmt);
+ _vsnprintf(s, 42, fmt, argp);
+ va_end(argp);
+ ], [
+ AC_DEFINE(HAVE_VSNPRINTF)
+ wx_cv_func_vsnprintf=yes
+ ], [
+ AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf)
+ wx_cv_func_vsnprintf=no
+ ])
+ ])
+])
+
+dnl check for vsscanf()
+AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf,
+[
+ AC_TRY_COMPILE([
+ #include <stdio.h>
+ #include <stdarg.h>
+ ], [
+ int wx_test_vsscanf(const char *, ...);
+
+ wx_test_vsscanf("%d");
+ return 0;