Convert %s to %ls and %c to %lc in printf and scanf etc.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -165,33 +165,6 @@ inline int Stricmp(const char *psz1, const char *psz2)
|
|||||||
#endif // OS/compiler
|
#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
|
// return an empty wxString
|
||||||
class WXDLLEXPORT wxString; // not yet defined
|
class WXDLLEXPORT wxString; // not yet defined
|
||||||
inline const wxString& wxGetEmptyString() { return *(wxString *)&wxEmptyString; }
|
inline const wxString& wxGetEmptyString() { return *(wxString *)&wxEmptyString; }
|
||||||
|
@@ -52,6 +52,9 @@
|
|||||||
# define wxUSE_WCHAR_T 1
|
# define wxUSE_WCHAR_T 1
|
||||||
#endif // Unicode
|
#endif // Unicode
|
||||||
|
|
||||||
|
// Required for wxPrintf() etc
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// define wxHAVE_TCHAR_FUNCTIONS for the compilers which support the
|
// define wxHAVE_TCHAR_FUNCTIONS for the compilers which support the
|
||||||
// wide-character functions
|
// wide-character functions
|
||||||
@@ -395,23 +398,18 @@ typedef _TUCHAR wxUChar;
|
|||||||
# define wxFgets fgetws
|
# define wxFgets fgetws
|
||||||
# define wxFputc fputwc
|
# define wxFputc fputwc
|
||||||
# define wxFputchar fputwchar
|
# define wxFputchar fputwchar
|
||||||
# define wxFprintf fwprintf
|
|
||||||
# define wxFscanf fwscanf
|
|
||||||
# define wxGetc getwc
|
# define wxGetc getwc
|
||||||
# define wxGetchar getwchar
|
# define wxGetchar getwchar
|
||||||
# define wxGets getws
|
# define wxGets getws
|
||||||
# define wxPrintf wprintf
|
|
||||||
# define wxPutc wputc
|
# define wxPutc wputc
|
||||||
# define wxPutchar wputchar
|
# define wxPutchar wputchar
|
||||||
# define wxPuts putws
|
# define wxPuts putws
|
||||||
# define wxScanf wscanf
|
|
||||||
# define wxSnprintf swprintf
|
|
||||||
# define wxSscanf swscanf
|
|
||||||
# define wxUngetc ungetwc
|
# define wxUngetc ungetwc
|
||||||
# define wxVfprint vfwprintf
|
|
||||||
# define wxVprintf vwprintf
|
// we need %s to %ls conversion for printf and scanf etc
|
||||||
# define wxVsscanf vswscanf
|
# define wxNEED_PRINTF_CONVERSION
|
||||||
# define wxVsnprintf vswprintf
|
# define wxHAS_VSNPRINTF
|
||||||
|
# define wxHAS_SNPRINTF
|
||||||
|
|
||||||
// glibc doesn't have wc equivalents of the other stuff
|
// glibc doesn't have wc equivalents of the other stuff
|
||||||
# define wxNEED_WX_STDIO_H
|
# 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
|
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
|
// if libc versions are not available, use replacements defined in wxchar.cpp
|
||||||
#ifndef wxStrdup
|
#ifndef wxStrdup
|
||||||
WXDLLEXPORT wxChar * wxStrdup(const wxChar *psz);
|
WXDLLEXPORT wxChar * wxStrdup(const wxChar *psz);
|
||||||
|
Reference in New Issue
Block a user