#pragma hdrstop
#endif
+#define _ISOC9X_SOURCE 1 // to get vsscanf()
+#define _BSD_SOURCE 1 // to still get strdup()
+
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#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;
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));