]> git.saurik.com Git - wxWidgets.git/commitdiff
Convert %s to %ls and %c to %lc in printf and scanf etc.
authorRobert Roebling <robert@roebling.de>
Sat, 17 Aug 2002 12:09:48 +0000 (12:09 +0000)
committerRobert Roebling <robert@roebling.de>
Sat, 17 Aug 2002 12:09:48 +0000 (12:09 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/app.h
include/wx/string.h
include/wx/wxchar.h

index 8b17fc42aa4affdafc86d76fe38a555eed957652..69f408ac5afdfeca04a89bd1b3298922726a9245 100644 (file)
@@ -389,7 +389,7 @@ protected:
     wxString m_vendorName,      // vendor name (ACME Inc)
              m_appName,         // app name
              m_className;       // class name
-
+             
 #if wxUSE_GUI
     // the main top level window - may be NULL
     wxWindow *m_topWindow;
index b285cdefb63c1f6d938c32399b5b97cd98a5c809..988937c5819d72eb4338c13bb3d3ce1bd0f613e1 100644 (file)
@@ -165,33 +165,6 @@ inline int Stricmp(const char *psz1, const char *psz2)
 #endif  // OS/compiler
 }
 
-#ifndef wxSnprintf   
-// wxSnprintf() is like snprintf() if it's available and sprintf() (always
-// available, but dangerous!) if not.
-extern int WXDLLEXPORT wxSnprintf(wxChar *buf, size_t len,
-                                  const wxChar *format,
-                                  ...) ATTRIBUTE_PRINTF_3;
-#else
-// GNU libc 2.2 only has for wxSnprintf for Unicode called swprintf
-// so we imitate wxSprintf using it.
-extern int WXDLLEXPORT wxSprintf(wxChar *buf,
-                                  const wxChar *format,
-                                  ...) ATTRIBUTE_PRINTF_2;
-#endif
-
-#ifndef wxVsnprintf
-// and wxVsnprintf() is like vsnprintf() or vsprintf()
-extern int WXDLLEXPORT wxVsnprintf(wxChar *buf, size_t len,
-                                   const wxChar *format,
-                                   va_list argptr);
-#else
-// GNU libc 2.2 only has for wxVsnprintf for Unicode called vswprintf
-// so we imitate wxVsprintf using it.
-extern int WXDLLEXPORT wxVsprintf(wxChar *buf,
-                                  const wxChar *format,
-                                  va_list argptr);
-#endif
-
 // return an empty wxString
 class WXDLLEXPORT wxString; // not yet defined
 inline const wxString& wxGetEmptyString() { return *(wxString *)&wxEmptyString; }
index 2a332e39016bc639ac6a5bfdc22f5e8ca3e2dc53..242778762b622d9398b4fcc4f3badade2492c715 100644 (file)
@@ -52,6 +52,9 @@
 #   define wxUSE_WCHAR_T 1
 #endif // Unicode
 
+// Required for wxPrintf() etc
+#include <stdarg.h>
+
 // ----------------------------------------------------------------------------
 // define wxHAVE_TCHAR_FUNCTIONS for the compilers which support the
 // wide-character functions
@@ -395,23 +398,18 @@ typedef  _TUCHAR     wxUChar;
 #      define  wxFgets     fgetws
 #      define  wxFputc     fputwc
 #      define  wxFputchar  fputwchar
-#      define  wxFprintf   fwprintf
-#      define  wxFscanf    fwscanf
 #      define  wxGetc      getwc
 #      define  wxGetchar   getwchar
 #      define  wxGets      getws
-#      define  wxPrintf    wprintf
 #      define  wxPutc      wputc
 #      define  wxPutchar   wputchar
 #      define  wxPuts      putws
-#      define  wxScanf     wscanf
-#      define  wxSnprintf  swprintf
-#      define  wxSscanf    swscanf
 #      define  wxUngetc    ungetwc
-#      define  wxVfprint   vfwprintf
-#      define  wxVprintf   vwprintf
-#      define  wxVsscanf   vswscanf
-#      define  wxVsnprintf vswprintf
+
+// we need %s to %ls conversion for printf and scanf etc
+#      define wxNEED_PRINTF_CONVERSION
+#      define wxHAS_VSNPRINTF
+#      define wxHAS_SNPRINTF
 
 // glibc doesn't have wc equivalents of the other stuff
 #      define wxNEED_WX_STDIO_H
@@ -609,6 +607,37 @@ WXDLLEXPORT size_t wxWC2MB(char *buf, const wchar_t *psz, size_t n);
 
 WXDLLEXPORT bool wxOKlibc(); // for internal use
 
+// We need conversion from %s to %ls in Unicode mode under Unix
+#ifdef wxNEED_PRINTF_CONVERSION
+int wxScanf( const wxChar *format, ... ) ATTRIBUTE_PRINTF_2;
+int wxSscanf( const wxChar *str, const wxChar *format, ... ) ATTRIBUTE_PRINTF_3;
+int wxFscanf( FILE *stream, const wxChar *format, ... ) ATTRIBUTE_PRINTF_3;
+int wxVsscanf( const wxChar *str, const wxChar *format, va_list ap );
+int wxPrintf( const wxChar *format, ... ) ATTRIBUTE_PRINTF_2;
+int wxSnprintf( wxChar *str, size_t size, const wxChar *format, ... ) ATTRIBUTE_PRINTF_4;
+int wxSprintf( wxChar *str, const wxChar *format, ... ) ATTRIBUTE_PRINTF_3;
+int wxFprintf( FILE *stream, const wxChar *format, ... ) ATTRIBUTE_PRINTF_3;
+int wxVfprint( const wxChar *format, va_list ap );
+int wxVprintf( const wxChar *format, va_list ap );
+int wxVsnprintf( wxChar *str, size_t size, const wxChar *format, va_list ap );
+int wxVsprintf( wxChar *str, const wxChar *format, va_list ap );
+#endif
+
+#if !defined(wxSnprintf) && !defined(wxHAS_SNPRINTF)
+// wxSnprintf() is like snprintf() if it's available and sprintf() (always
+// available, but dangerous!) if not.
+WXDLLEXPORT int wxSnprintf(wxChar *buf, size_t len,
+                                  const wxChar *format,
+                                  ...) ATTRIBUTE_PRINTF_3;
+#endif
+
+#if !defined(wxVsnprintf) && !defined(wxHAS_VSNPRINTF)
+// and wxVsnprintf() is like vsnprintf() or vsprintf()
+WXDLLEXPORT int wxVsnprintf(wxChar *buf, size_t len,
+                                   const wxChar *format,
+                                   va_list argptr);
+#endif
+
 // if libc versions are not available, use replacements defined in wxchar.cpp
 #ifndef wxStrdup
 WXDLLEXPORT wxChar * wxStrdup(const wxChar *psz);