]> git.saurik.com Git - wxWidgets.git/commitdiff
check for vswscanf(), AIX 5.1 and HP-UX 11.11 don't have it
authorPaul Cornett <paulcor@bullseye.com>
Thu, 17 Jan 2008 05:17:24 +0000 (05:17 +0000)
committerPaul Cornett <paulcor@bullseye.com>
Thu, 17 Jan 2008 05:17:24 +0000 (05:17 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

configure
configure.in
include/wx/mac/carbon/config_xcode.h
include/wx/wxcrtvararg.h
setup.h.in
src/common/wxcrt.cpp

index 1e2ddc589f82761fa7ea5686bdf456c13e50a4b5..119a5cf971d7b042ceb39cd05ea2b156907972a9 100755 (executable)
--- a/configure
+++ b/configure
@@ -35304,7 +35304,7 @@ done
     esac
 
 
-  for wx_func in putws fputws wprintf vswprintf
+  for wx_func in putws fputws wprintf vswprintf vswscanf
   do
     { echo "$as_me:$LINENO: checking for $wx_func" >&5
 echo $ECHO_N "checking for $wx_func... $ECHO_C" >&6; }
index cddea836f0e10b902f9482838c8341be1f1bfb78..3fb37d26b4ef8ab4c3cdbf50a062541f698af8c2 100644 (file)
@@ -4174,7 +4174,7 @@ if test "$wxUSE_UNICODE" = yes; then
             fi
     esac
 
-    WX_CHECK_FUNCS(putws fputws wprintf vswprintf,,,
+    WX_CHECK_FUNCS(putws fputws wprintf vswprintf vswscanf,,,
                    [$wchar_headers])
 
     dnl MinGW has a vswprintf with a different prototype, and
index b9468165b05f4270b5c8af58c933eadc88cff1d0..56c6aede71c37a26156773493d07b35820ae73b5 100644 (file)
 #define HAVE_STRCASECMP_IN_STRING_H 1
 #define HAVE_WPRINTF 1
 #define HAVE_VSWPRINTF 1
+#define HAVE_VSWSCANF 1
 #define HAVE_FSEEKO 1
 #define HAVE_SYS_SELECT_H 1
 
index 386b7338ab221a1808d1c64bac9017f0a5b611b5..2e52bb23df09df3ec17872b4f258004c5dabdf47 100644 (file)
 #if wxUSE_UNICODE && !defined(wxHAVE_TCHAR_SUPPORT) && !defined(HAVE_WPRINTF)
     #define wxNEED_WPRINTF
 #endif
+#if wxUSE_UNICODE && !defined(wxHAVE_TCHAR_SUPPORT) && !defined(HAVE_VSWSCANF)
+    #define wxNEED_VSWSCANF
+#endif
 
 
 #if defined(wxNEED_WPRINTF)
     int wxCRT_ScanfW(const wchar_t *format, ...);
     int wxCRT_SscanfW(const wchar_t *str, const wchar_t *format, ...);
     int wxCRT_FscanfW(FILE *stream, const wchar_t *format, ...);
-    int wxCRT_VsscanfW(const wchar_t *str, const wchar_t *format, va_list ap);
 #else
     #define wxCRT_ScanfW     wxVMS_USE_STD wscanf
     #define wxCRT_SscanfW    wxVMS_USE_STD swscanf
     #define wxCRT_FscanfW    wxVMS_USE_STD fwscanf
+#endif
+#ifdef wxNEED_VSWSCANF
+    int wxCRT_VsscanfW(const wchar_t *str, const wchar_t *format, va_list ap);
+#else
     #define wxCRT_VsscanfW   wxVMS_USE_STD vswscanf
 #endif
 
index 0108b6070bd61ee6fca744d5eb6f5204547d3fb5..4082d28d54526528a44c35acfa16e391daf49eb6 100644 (file)
 /* Define this if you have _vsnwprintf */
 #undef HAVE__VSNWPRINTF
 
+/* vswscanf() */
+#undef HAVE_VSWSCANF
+
 /* Define if fseeko and ftello are available.  */
 #undef HAVE_FSEEKO
 
index c329848585c7c2006e12f73f976bc4015f52b1d1..c4fcdc5a149bcfaee8e812803ebd93baa58ada14 100644 (file)
@@ -281,21 +281,6 @@ static int vwscanf(const wchar_t *format, va_list argptr)
     return -1;
 }
 
-static int vswscanf(const wchar_t *ws, const wchar_t *format, va_list argptr)
-{
-    // The best we can do without proper Unicode support in glibc is to
-    // convert the strings into MB representation and run ANSI version
-    // of the function. This doesn't work with %c and %s because of difference
-    // in size of char and wchar_t, though.
-
-    wxCHECK_MSG( wxStrstr(format, _T("%s")) == NULL, -1,
-                 _T("incomplete vswscanf implementation doesn't allow %s") );
-    wxCHECK_MSG( wxStrstr(format, _T("%c")) == NULL, -1,
-                 _T("incomplete vswscanf implementation doesn't allow %c") );
-
-    return vsscanf(wxConvLibc.cWX2MB(ws), wxConvLibc.cWX2MB(format), argptr);
-}
-
 static int vfwscanf(FILE *stream, const wchar_t *format, va_list argptr)
 {
     wxFAIL_MSG( _T("TODO") );
@@ -327,6 +312,23 @@ static int vwprintf(const wchar_t *format, va_list argptr)
 
 #endif // wxNEED_WPRINTF
 
+#ifdef wxNEED_VSWSCANF
+static int vswscanf(const wchar_t *ws, const wchar_t *format, va_list argptr)
+{
+    // The best we can do without proper Unicode support in glibc is to
+    // convert the strings into MB representation and run ANSI version
+    // of the function. This doesn't work with %c and %s because of difference
+    // in size of char and wchar_t, though.
+
+    wxCHECK_MSG( wxStrstr(format, _T("%s")) == NULL, -1,
+                 _T("incomplete vswscanf implementation doesn't allow %s") );
+    wxCHECK_MSG( wxStrstr(format, _T("%c")) == NULL, -1,
+                 _T("incomplete vswscanf implementation doesn't allow %c") );
+
+    return vsscanf(wxConvLibc.cWX2MB(ws), wxConvLibc.cWX2MB(format), argptr);
+}
+#endif
+
 // ----------------------------------------------------------------------------
 // wxPrintf(), wxScanf() and relatives
 // ----------------------------------------------------------------------------