]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/wxchar.h
source id type is unsigned; minor cleanup
[wxWidgets.git] / include / wx / wxchar.h
index 4f4dc9b485ed8ba68a7d96b625df13bba08847b8..84e8ee28f2bbc76c14bcc94958441757cb35f876 100644 (file)
@@ -18,6 +18,8 @@
 #include "wx/platform.h"
 #include "wx/dlimpexp.h"
 
+#include <stdio.h>  /* we use FILE below */
+
 #if defined(HAVE_STRTOK_R) && defined(__DARWIN__) && defined(_MSL_USING_MW_C_HEADERS) && _MSL_USING_MW_C_HEADERS
     char *strtok_r(char *, const char *, char **);
 #endif
         /* include stdlib.h for wchar_t */
         #include <stdlib.h>
     #endif /* HAVE_WCHAR_H */
+
+    #ifdef HAVE_WIDEC_H
+        #include <widec.h>
+    #endif
 #endif /* wxUSE_WCHAR_T */
 
 /* ---------------------------------------------------------------------------- */
     #define  wxStrtol    _tcstol
     #define  wxStrtoul   _tcstoul
     #ifdef __VISUALC__
-        #if __VISUALC__ >= 1300
+        #if __VISUALC__ >= 1300 && !defined(__WXWINCE__)
             #define wxStrtoll  _tcstoi64
             #define wxStrtoull _tcstoui64
         #endif /* VC++ 7+ */
@@ -865,7 +871,7 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */
 #else
     extern
 #endif
-    int snprintf(char *str, size_t size, const char *format, ...);
+    WXDLLIMPEXP_BASE int snprintf(char *str, size_t size, const char *format, ...);
 #endif /* !HAVE_SNPRINTF_DECL */
 
 /* Wrapper for vsnprintf if it's 3rd parameter is non-const. Note: the
@@ -881,10 +887,8 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */
 /*
    MinGW MSVCRT has non-standard vswprintf() (for MSVC compatibility
    presumably) and normally _vsnwprintf() is used instead
-
-   vswprintf() under (early versions of) OS X is buggy
  */
-#if defined(HAVE_VSWPRINTF) && (defined(__MINGW32__) || defined(__DARWIN__))
+#if defined(HAVE_VSWPRINTF) && defined(__MINGW32__)
     #undef HAVE_VSWPRINTF
 #endif
 
@@ -911,9 +915,11 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */
     #else /* !HAVE_UNIX98_PRINTF */
         /*
             The only compiler with positional parameters support under Windows
-            is VC++ 8.0 which provides a new xxprintf_p() functions family
+            is VC++ 8.0 which provides a new xxprintf_p() functions family.
+            The 2003 PSDK includes a slightly earlier version of VC8 than the
+            main release and does not have the printf_p functions.
          */
-        #if defined(__VISUALC__) && __VISUALC__ >= 1400
+        #if defined _MSC_FULL_VER && _MSC_FULL_VER >= 140050727 && !defined __WXWINCE__
             #if wxUSE_UNICODE
                 #define wxVsnprintf_    _vswprintf_p
             #else
@@ -976,13 +982,18 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */
 #endif /* wxUSE_PRINTF_POS_PARAMS/!wxUSE_PRINTF_POS_PARAMS */
 
 #ifndef wxSnprintf_
-    /* no [v]snprintf(), cook our own */
+    /* no snprintf(), cook our own */
     WXDLLIMPEXP_BASE int
     wxSnprintf_(wxChar *buf, size_t len, const wxChar *format, ...) ATTRIBUTE_PRINTF_3;
 #endif
 #ifndef wxVsnprintf_
+    /* no (suitable) vsnprintf(), cook our own */
     WXDLLIMPEXP_BASE int
     wxVsnprintf_(wxChar *buf, size_t len, const wxChar *format, va_list argptr);
+
+    #define wxUSE_WXVSNPRINTF 1
+#else
+    #define wxUSE_WXVSNPRINTF 0
 #endif
 
 /*
@@ -1013,9 +1024,6 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */
         either because we don't have them at all or because they don't have the
         semantics we need
      */
-
-    #include <stdio.h>  /* for FILE */
-
     int wxScanf( const wxChar *format, ... ) ATTRIBUTE_PRINTF_1;
     int wxSscanf( const wxChar *str, const wxChar *format, ... ) ATTRIBUTE_PRINTF_2;
     int wxFscanf( FILE *stream, const wxChar *format, ... ) ATTRIBUTE_PRINTF_2;