]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/wxchar.h
Compile fix for --disable-ffile.
[wxWidgets.git] / include / wx / wxchar.h
index 81d06ed6248620831c758879cf6ec2a36723ae19..76e990c689cffbf9160eb7fa7d7e8edc0b25ab74 100644 (file)
         /* 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  wxStrtod    _tcstod
     #define  wxStrtol    _tcstol
     #define  wxStrtoul   _tcstoul
+    #ifdef __VISUALC__
+        #if __VISUALC__ >= 1300 && !defined(__WXWINCE__)
+            #define wxStrtoll  _tcstoi64
+            #define wxStrtoull _tcstoui64
+        #endif /* VC++ 7+ */
+    #endif
     #define  wxStrxfrm   _tcsxfrm
 
     /* stdio.h functions */
             #define  wxStrtod    wcstod
             #define  wxStrtol    wcstol
             #define  wxStrtoul   wcstoul
+            #ifdef HAVE_WCSTOULL
+                /* assume that we have wcstoull(), which is also C99, too */
+                #define  wxStrtoll   wcstoll
+                #define  wxStrtoull  wcstoull
+            #endif /* HAVE_WCSTOULL */
             #define  wxStrxfrm   wcsxfrm
 
             #define  wxFgetc     fgetwc
         #endif
         #define  wxStrtol    strtol
         #define  wxStrtoul   strtoul
+        #ifdef HAVE_STRTOULL
+            /* assume that we have wcstoull(), which is also C99, too */
+            #define  wxStrtoll   strtoll
+            #define  wxStrtoull  strtoull
+        #endif /* HAVE_WCSTOULL */
         #define  wxStrxfrm   strxfrm
 
         /* stdio.h functions */
     #endif /* Unicode/ASCII */
 #endif /* TCHAR-aware compilers/the others */
 
+#ifdef wxStrtoll
+    #define wxHAS_STRTOLL
+#endif
+
 /*
     various special cases
  */
@@ -845,7 +869,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
@@ -861,10 +885,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
 
@@ -891,9 +913,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