X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c9e089e9f4919f6b211dd9c2b351edb6f525fd02..a28d23bb2c4a5967a11dd4e392aff86275ae8c66:/src/common/wxchar.cpp?ds=sidebyside diff --git a/src/common/wxchar.cpp b/src/common/wxchar.cpp index 0057aba271..3f70fe66dc 100644 --- a/src/common/wxchar.cpp +++ b/src/common/wxchar.cpp @@ -24,6 +24,10 @@ #pragma hdrstop #endif +#define _ISOC9X_SOURCE 1 // to get vsscanf() +#define _BSD_SOURCE 1 // to still get strdup() + +#include #include #include #include @@ -111,6 +115,44 @@ wxChar * WXDLLEXPORT wxSetlocale(int category, const wxChar *locale) #endif #ifdef wxNEED_WX_STDIO_H +int WXDLLEXPORT wxPrintf(const wxChar *fmt, ...) +{ + va_list argptr; + int ret; + + va_start(argptr, fmt); + ret = wxVprintf(fmt, argptr); + va_end(argptr); + return ret; +} + +int WXDLLEXPORT wxVprintf(const wxChar *fmt, va_list argptr) +{ + wxString str; + str.PrintfV(fmt,argptr); + printf("%s", (const char*)str.mb_str()); + return str.Len(); +} + +int WXDLLEXPORT wxFprintf(FILE *stream, const wxChar *fmt, ...) +{ + va_list argptr; + int ret; + + va_start(argptr, fmt); + ret = wxVfprintf(stream, fmt, argptr); + va_end(argptr); + return ret; +} + +int WXDLLEXPORT wxFvprintf(FILE *stream, const wxChar *fmt, va_list argptr) +{ + wxString str; + str.PrintfV(fmt,argptr); + fprintf(stream, "%s", (const char*)str.mb_str()); + return str.Len(); +} + int WXDLLEXPORT wxSprintf(wxChar *buf, const wxChar *fmt, ...) { va_list argptr; @@ -131,14 +173,36 @@ int WXDLLEXPORT wxVsprintf(wxChar *buf, const wxChar *fmt, va_list argptr) wxStrcpy(buf,str.c_str()); return str.Len(); } + +int WXDLLEXPORT wxSscanf(const wxChar *buf, const wxChar *fmt, ...) +{ + va_list argptr; + int ret; + + va_start(argptr, fmt); + ret = wxVsscanf(buf, fmt, argptr); + va_end(argptr); + return ret; +} + +int WXDLLEXPORT wxVsscanf(const wxChar *buf, const wxChar *fmt, va_list argptr) +{ + int ret; + // this will work only for numeric conversion! Strings will not be converted correctly + // hopefully this is all we'll need + ret = vsscanf(wxConv_libc.cWX2MB(buf), wxConv_libc.cWX2MB(fmt), argptr); + return ret; +} #endif -#ifdef wxNEED_WX_STDLIB_H +#ifndef wxAtof double WXDLLEXPORT wxAtof(const wxChar *psz) { return atof(wxConv_libc.cWX2MB(psz)); } +#endif +#ifdef wxNEED_WX_STDLIB_H int WXDLLEXPORT wxAtoi(const wxChar *psz) { return atoi(wxConv_libc.cWX2MB(psz));