]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/wxchar.h
undid previous commit, the person who reported it retracted his claim
[wxWidgets.git] / include / wx / wxchar.h
index a8ce78ad9f14caf923828185a1cc53ac4ae5634b..a3764e8a9991ab31f3756e492d0439b78fb50154 100644 (file)
@@ -53,7 +53,7 @@
         #else
             #define wxUSE_WCHAR_T 0
         #endif
-    #elif defined(__GNUWIN32__) && !defined(__MINGW32__) // Cygwin (not Mingw32) doesn't have wcslen.h, needed in buffer.h
+    #elif defined(__GNUWIN32__) && !defined(__MINGW32__)
         #define wxUSE_WCHAR_T 0
     #elif defined(__WATCOMC__)
         #define wxUSE_WCHAR_T 0
 // Required for wxPrintf() etc
 #include <stdarg.h>
 
-#if defined(__CYGWIN__)
-    #ifndef HAVE_WCSLEN
-        #define HAVE_WCSLEN
-    #endif // !HAVE_WCSLEN
-    #include <stddef.h>
-#endif
-
 // non Unix compilers which do have wchar.h (but not tchar.h which is included
 // below and which includes wchar.h anyhow)
 #if defined(__MWERKS__) || defined(__VISAGECPP__)
 
 #if wxUSE_WCHAR_T
     #ifdef HAVE_WCHAR_H
-        // include wchar.h to get wcslen() declaration used by wx/buffer.h
         #include <wchar.h>
     #elif defined(HAVE_WCSTR_H)
-        // old compilers have wcslen() here
+        // old compilers have relevant declarations here
         #include <wcstr.h>
     #elif defined(__FreeBSD__) || defined(__DARWIN__) || defined(__EMX__)
-        // include stdlib.h for wchar_t, wcslen is provided in wxchar.cpp
+        // include stdlib.h for wchar_t
         #include <stdlib.h>
-        size_t WXDLLEXPORT wcslen(const wchar_t *s);
     #endif // HAVE_WCHAR_H
 #endif // wxUSE_WCHAR_T
 
             #define  wxStrcoll   wcscoll
             #define  wxStrcpy    wcscpy
             #define  wxStrcspn   wcscspn
-            #define  wxStrlen_   wcslen // used in wxStrlen inline function
+            #define  wxStrlen_   wxWcslen // wxStrlen_() is used in wxStrlen()
             #define  wxStrncat   wcsncat
             #define  wxStrncmp   wcsncmp
             #define  wxStrncpy   wcsncpy
             #define  wxStrspn    wcsspn
             #define  wxStrstr    wcsstr
             #define  wxStrtod    wcstod
-            #define  wxStrtok    wcstok
             #define  wxStrtol    wcstol
             #define  wxStrtoul   wcstoul
             #define  wxStrxfrm   wcsxfrm
         #define  wxStrtod    strtod
         #ifdef HAVE_STRTOK_R
             #define  wxStrtok(str, sep, last)    strtok_r(str, sep, last)
-        #else
-            #define  wxStrtok(str, sep, last)    strtok(str, sep)
         #endif
         #define  wxStrtol    strtol
         #define  wxStrtoul   strtoul
     #endif
 #endif // !defined(wxStricmp)
 
-// checks whether the passed in pointer is NULL and if the string is empty
-inline bool wxIsEmpty(const wxChar *p) { return !p || !*p; }
-
-// safe version of strlen() (returns 0 if passed NULL pointer)
-inline size_t wxStrlen(const wxChar *psz) { return psz ? wxStrlen_(psz) : 0; }
-
 // define wxWcslen() which should be always available if wxUSE_WCHAR_T == 1 (as
-// it's used in wx/buffer.h)
+// it's used in wx/buffer.h -- and also might be used just below by wxStrlen()
+// when wxStrlen_() is #define'd as wxWcslen so do it before defining wxStrlen)
 #if wxUSE_WCHAR_T
     #ifdef HAVE_WCSLEN
         #define wxWcslen wcslen
@@ -570,6 +553,12 @@ inline size_t wxStrlen(const wxChar *psz) { return psz ? wxStrlen_(psz) : 0; }
     #endif
 #endif // wxUSE_WCHAR_T
 
+// checks whether the passed in pointer is NULL and if the string is empty
+inline bool wxIsEmpty(const wxChar *p) { return !p || !*p; }
+
+// safe version of strlen() (returns 0 if passed NULL pointer)
+inline size_t wxStrlen(const wxChar *psz) { return psz ? wxStrlen_(psz) : 0; }
+
 WXDLLEXPORT bool wxOKlibc(); // for internal use
 
 // ----------------------------------------------------------------------------
@@ -643,13 +632,13 @@ WXDLLEXPORT bool wxOKlibc(); // for internal use
 
     #include <stdio.h>  // for FILE
 
-    int wxScanf( const wxChar *format, ... ) ATTRIBUTE_PRINTF_2;
-    int wxSscanf( const wxChar *str, const wxChar *format, ... ) ATTRIBUTE_PRINTF_3;
-    int wxFscanf( FILE *stream, const wxChar *format, ... ) ATTRIBUTE_PRINTF_3;
+    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;
     int wxVsscanf( const wxChar *str, const wxChar *format, va_list ap );
-    int wxPrintf( const wxChar *format, ... ) ATTRIBUTE_PRINTF_2;
-    int wxSprintf( wxChar *str, const wxChar *format, ... ) ATTRIBUTE_PRINTF_3;
-    int wxFprintf( FILE *stream, const wxChar *format, ... ) ATTRIBUTE_PRINTF_3;
+    int wxPrintf( const wxChar *format, ... ) ATTRIBUTE_PRINTF_1;
+    int wxSprintf( wxChar *str, const wxChar *format, ... ) ATTRIBUTE_PRINTF_2;
+    int wxFprintf( FILE *stream, const wxChar *format, ... ) ATTRIBUTE_PRINTF_2;
     int wxVfprintf( FILE *stream, const wxChar *format, va_list ap );
     int wxVprintf( const wxChar *format, va_list ap );
     int wxVsprintf( wxChar *str, const wxChar *format, va_list ap );
@@ -658,7 +647,7 @@ WXDLLEXPORT bool wxOKlibc(); // for internal use
 // these 2 can be simply mapped to the versions with underscore at the end
 // if we don't have to do the conversion
 #ifdef wxNEED_PRINTF_CONVERSION
-    int wxSnprintf( wxChar *str, size_t size, const wxChar *format, ... ) ATTRIBUTE_PRINTF_4;
+    int wxSnprintf( wxChar *str, size_t size, const wxChar *format, ... ) ATTRIBUTE_PRINTF_3;
     int wxVsnprintf( wxChar *str, size_t size, const wxChar *format, va_list ap );
 #else
     #define wxSnprintf wxSnprintf_