]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/wxchar.cpp
Implemented wxArrayString::Shrink() and stuff.
[wxWidgets.git] / src / common / wxchar.cpp
index 85c6bfc71685129148d72d8d21fb4f4f3e8d9429..3f70fe66dc397e61c019474d0b3b106c7764a81e 100644 (file)
   #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>
@@ -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,6 +173,26 @@ 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
 
 #ifndef wxAtof