]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/wxchar.h
avoid a bug in Carbon headers
[wxWidgets.git] / include / wx / wxchar.h
index ea24fe0bfb30ea360ed088b1b1f40c5a4f792012..c7e516acf3905a7a3fc34251658eefc11fe4fe46 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef _WX_WXCHAR_H_
 #define _WX_WXCHAR_H_
 
-#if defined(__GNUG__) && !defined(__APPLE__)
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma interface "wxchar.h"
 #endif
 
         #define  wxRemove    wxMSLU__tremove
         #define  wxRename    wxMSLU__trename
     #else
-        #define  wxRemove    _tremove
-        #define  wxRename    _trename
+        #ifdef __WXWINCE__
+            #define  wxRemove    DeleteFile
+        #else
+            #define  wxRemove    _tremove
+            #define  wxRename    _trename
+        #endif
     #endif
 
     // stdlib.h functions
         #define  wxStrxfrm   strxfrm
 
         // stdio.h functions
+        #if defined(__WXMAC__) && !defined(__DARWIN__)
+        #include <stdio.h>
+        WXDLLIMPEXP_BASE FILE *   wxFopen(const wxChar *path, const wxChar *mode);
+        WXDLLIMPEXP_BASE FILE *   wxFreopen(const wxChar *path, const wxChar *mode, FILE *stream);
+        WXDLLIMPEXP_BASE int      wxRemove(const wxChar *path);
+        WXDLLIMPEXP_BASE int      wxRename(const wxChar *oldpath, const wxChar *newpath);
+        #else
         #define  wxFopen     fopen
         #define  wxFreopen   freopen
-        #define  wxPerror    perror
         #define  wxRemove    remove
         #define  wxRename    rename
+        #endif
+        #define  wxPerror    perror
         #define  wxTmpnam    tmpnam
 
         #define  wxFgetc     fgetc
@@ -679,7 +691,7 @@ inline size_t wxStrlen(const wxChar *psz) { return psz ? wxStrlen_(psz) : 0; }
     #define wxStrdup wxStrdupA
 #endif
 
-WXDLLEXPORT_BASE bool wxOKlibc(); // for internal use
+WXDLLIMPEXP_BASE bool wxOKlibc(); // for internal use
 
 // ----------------------------------------------------------------------------
 // printf() family saga
@@ -728,11 +740,11 @@ WXDLLEXPORT_BASE bool wxOKlibc(); // for internal use
 
 #ifndef wxSnprintf_
     // no [v]snprintf(), cook our own
-    WXDLLEXPORT_BASE int wxSnprintf_(wxChar *buf, size_t len, const wxChar *format,
+    WXDLLIMPEXP_BASE int wxSnprintf_(wxChar *buf, size_t len, const wxChar *format,
                                 ...) ATTRIBUTE_PRINTF_3;
 #endif
 #ifndef wxVsnprintf_
-    WXDLLEXPORT_BASE int wxVsnprintf_(wxChar *buf, size_t len, const wxChar *format,
+    WXDLLIMPEXP_BASE int wxVsnprintf_(wxChar *buf, size_t len, const wxChar *format,
                                  va_list argptr);
 #endif
 
@@ -801,19 +813,19 @@ WXDLLEXPORT_BASE bool wxOKlibc(); // for internal use
 //
 // VZ: note that this is never defined currently
 #ifdef wxNEED_WX_CTYPE_H
-    WXDLLEXPORT_BASE int wxIsalnum(wxChar ch);
-    WXDLLEXPORT_BASE int wxIsalpha(wxChar ch);
-    WXDLLEXPORT_BASE int wxIsctrl(wxChar ch);
-    WXDLLEXPORT_BASE int wxIsdigit(wxChar ch);
-    WXDLLEXPORT_BASE int wxIsgraph(wxChar ch);
-    WXDLLEXPORT_BASE int wxIslower(wxChar ch);
-    WXDLLEXPORT_BASE int wxIsprint(wxChar ch);
-    WXDLLEXPORT_BASE int wxIspunct(wxChar ch);
-    WXDLLEXPORT_BASE int wxIsspace(wxChar ch);
-    WXDLLEXPORT_BASE int wxIsupper(wxChar ch);
-    WXDLLEXPORT_BASE int wxIsxdigit(wxChar ch);
-    WXDLLEXPORT_BASE int wxTolower(wxChar ch);
-    WXDLLEXPORT_BASE int wxToupper(wxChar ch);
+    WXDLLIMPEXP_BASE int wxIsalnum(wxChar ch);
+    WXDLLIMPEXP_BASE int wxIsalpha(wxChar ch);
+    WXDLLIMPEXP_BASE int wxIsctrl(wxChar ch);
+    WXDLLIMPEXP_BASE int wxIsdigit(wxChar ch);
+    WXDLLIMPEXP_BASE int wxIsgraph(wxChar ch);
+    WXDLLIMPEXP_BASE int wxIslower(wxChar ch);
+    WXDLLIMPEXP_BASE int wxIsprint(wxChar ch);
+    WXDLLIMPEXP_BASE int wxIspunct(wxChar ch);
+    WXDLLIMPEXP_BASE int wxIsspace(wxChar ch);
+    WXDLLIMPEXP_BASE int wxIsupper(wxChar ch);
+    WXDLLIMPEXP_BASE int wxIsxdigit(wxChar ch);
+    WXDLLIMPEXP_BASE int wxTolower(wxChar ch);
+    WXDLLIMPEXP_BASE int wxToupper(wxChar ch);
 #endif // wxNEED_WX_CTYPE_H
 
 // under VC++ 6.0 isspace() returns 1 for 8 bit chars which completely breaks
@@ -828,66 +840,66 @@ WXDLLEXPORT_BASE bool wxOKlibc(); // for internal use
 //
 // VZ: this is never defined neither currently
 #ifdef wxNEED_WX_STRING_H
-    WXDLLEXPORT_BASE wxChar * wxStrcat(wxChar *dest, const wxChar *src);
-    WXDLLEXPORT_BASE const wxChar * wxStrchr(const wxChar *s, wxChar c);
-    WXDLLEXPORT_BASE wxChar * wxStrchr(wxChar *s, wxChar c)
+    WXDLLIMPEXP_BASE wxChar * wxStrcat(wxChar *dest, const wxChar *src);
+    WXDLLIMPEXP_BASE const wxChar * wxStrchr(const wxChar *s, wxChar c);
+    WXDLLIMPEXP_BASE wxChar * wxStrchr(wxChar *s, wxChar c)
         { return (wxChar *)wxStrchr((const wxChar *)s, c); }
-    WXDLLEXPORT_BASE int      wxStrcmp(const wxChar *s1, const wxChar *s2);
-    WXDLLEXPORT_BASE int      wxStrcoll(const wxChar *s1, const wxChar *s2);
-    WXDLLEXPORT_BASE wxChar * wxStrcpy(wxChar *dest, const wxChar *src);
-    WXDLLEXPORT_BASE size_t   wxStrcspn(const wxChar *s, const wxChar *reject);
-    WXDLLEXPORT_BASE size_t   wxStrlen(const wxChar *s);
-    WXDLLEXPORT_BASE wxChar * wxStrncat(wxChar *dest, const wxChar *src, size_t n);
-    WXDLLEXPORT_BASE int      wxStrncmp(const wxChar *s1, const wxChar *s2, size_t n);
-    WXDLLEXPORT_BASE wxChar * wxStrncpy(wxChar *dest, const wxChar *src, size_t n);
-    WXDLLEXPORT_BASE const wxChar * wxStrpbrk(const wxChar *s, const wxChar *accept);
-    WXDLLEXPORT_BASE wxChar * wxStrpbrk(wxChar *s, const wxChar *accept)
+    WXDLLIMPEXP_BASE int      wxStrcmp(const wxChar *s1, const wxChar *s2);
+    WXDLLIMPEXP_BASE int      wxStrcoll(const wxChar *s1, const wxChar *s2);
+    WXDLLIMPEXP_BASE wxChar * wxStrcpy(wxChar *dest, const wxChar *src);
+    WXDLLIMPEXP_BASE size_t   wxStrcspn(const wxChar *s, const wxChar *reject);
+    WXDLLIMPEXP_BASE size_t   wxStrlen(const wxChar *s);
+    WXDLLIMPEXP_BASE wxChar * wxStrncat(wxChar *dest, const wxChar *src, size_t n);
+    WXDLLIMPEXP_BASE int      wxStrncmp(const wxChar *s1, const wxChar *s2, size_t n);
+    WXDLLIMPEXP_BASE wxChar * wxStrncpy(wxChar *dest, const wxChar *src, size_t n);
+    WXDLLIMPEXP_BASE const wxChar * wxStrpbrk(const wxChar *s, const wxChar *accept);
+    WXDLLIMPEXP_BASE wxChar * wxStrpbrk(wxChar *s, const wxChar *accept)
         { return (wxChar *)wxStrpbrk((const wxChar *)s, accept); }
-    WXDLLEXPORT_BASE const wxChar * wxStrrchr(const wxChar *s, wxChar c);
-    WXDLLEXPORT_BASE wxChar * wxStrrchr(wxChar *s, wxChar c)
+    WXDLLIMPEXP_BASE const wxChar * wxStrrchr(const wxChar *s, wxChar c);
+    WXDLLIMPEXP_BASE wxChar * wxStrrchr(wxChar *s, wxChar c)
         { return (wxChar *)wxStrrchr((const wxChar *)s, c); }
-    WXDLLEXPORT_BASE size_t   wxStrspn(const wxChar *s, const wxChar *accept);
-    WXDLLEXPORT_BASE const wxChar * wxStrstr(const wxChar *haystack, const wxChar *needle);
-    WXDLLEXPORT_BASE wxChar *wxStrstr(wxChar *haystack, const wxChar *needle)
+    WXDLLIMPEXP_BASE size_t   wxStrspn(const wxChar *s, const wxChar *accept);
+    WXDLLIMPEXP_BASE const wxChar * wxStrstr(const wxChar *haystack, const wxChar *needle);
+    WXDLLIMPEXP_BASE wxChar *wxStrstr(wxChar *haystack, const wxChar *needle)
         { return (wxChar *)wxStrstr((const wxChar *)haystack, needle); }
-    WXDLLEXPORT_BASE double   wxStrtod(const wxChar *nptr, wxChar **endptr);
-    WXDLLEXPORT_BASE long int wxStrtol(const wxChar *nptr, wxChar **endptr, int base);
-    WXDLLEXPORT_BASE unsigned long int wxStrtoul(const wxChar *nptr, wxChar **endptr, int base);
-    WXDLLEXPORT_BASE size_t   wxStrxfrm(wxChar *dest, const wxChar *src, size_t n);
+    WXDLLIMPEXP_BASE double   wxStrtod(const wxChar *nptr, wxChar **endptr);
+    WXDLLIMPEXP_BASE long int wxStrtol(const wxChar *nptr, wxChar **endptr, int base);
+    WXDLLIMPEXP_BASE unsigned long int wxStrtoul(const wxChar *nptr, wxChar **endptr, int base);
+    WXDLLIMPEXP_BASE size_t   wxStrxfrm(wxChar *dest, const wxChar *src, size_t n);
 #endif // wxNEED_WX_STRING_H
 
 #ifndef wxStrdupA
-WXDLLEXPORT_BASE char *wxStrdupA(const char *psz);
+WXDLLIMPEXP_BASE char *wxStrdupA(const char *psz);
 #endif
 
 #ifndef wxStrdupW
-WXDLLEXPORT_BASE wchar_t *wxStrdupW(const wchar_t *pwz);
+WXDLLIMPEXP_BASE wchar_t *wxStrdupW(const wchar_t *pwz);
 #endif
 
 #ifndef wxStricmp
-WXDLLEXPORT_BASE int wxStricmp(const wxChar *psz1, const wxChar *psz2);
+WXDLLIMPEXP_BASE int wxStricmp(const wxChar *psz1, const wxChar *psz2);
 #endif
 
 #ifndef wxStrnicmp
-WXDLLEXPORT_BASE int wxStrnicmp(const wxChar *psz1, const wxChar *psz2, size_t len);
+WXDLLIMPEXP_BASE int wxStrnicmp(const wxChar *psz1, const wxChar *psz2, size_t len);
 #endif
 
 #ifndef wxStrtok
-WXDLLEXPORT_BASE wxChar * wxStrtok(wxChar *psz, const wxChar *delim, wxChar **save_ptr);
+WXDLLIMPEXP_BASE wxChar * wxStrtok(wxChar *psz, const wxChar *delim, wxChar **save_ptr);
 #endif
 
 #ifndef wxSetlocale
-class WXDLLEXPORT_BASE wxWCharBuffer;
-WXDLLEXPORT_BASE wxWCharBuffer wxSetlocale(int category, const wxChar *locale);
+class WXDLLIMPEXP_BASE wxWCharBuffer;
+WXDLLIMPEXP_BASE wxWCharBuffer wxSetlocale(int category, const wxChar *locale);
 #endif
 
 // stdio.h functions
 #ifdef wxNEED_WX_STDIO_H
     #include <stdio.h>
-    WXDLLEXPORT_BASE FILE *   wxFopen(const wxChar *path, const wxChar *mode);
-    WXDLLEXPORT_BASE FILE *   wxFreopen(const wxChar *path, const wxChar *mode, FILE *stream);
-    WXDLLEXPORT_BASE int      wxRemove(const wxChar *path);
-    WXDLLEXPORT_BASE int      wxRename(const wxChar *oldpath, const wxChar *newpath);
+    WXDLLIMPEXP_BASE FILE *   wxFopen(const wxChar *path, const wxChar *mode);
+    WXDLLIMPEXP_BASE FILE *   wxFreopen(const wxChar *path, const wxChar *mode, FILE *stream);
+    WXDLLIMPEXP_BASE int      wxRemove(const wxChar *path);
+    WXDLLIMPEXP_BASE int      wxRename(const wxChar *oldpath, const wxChar *newpath);
 
     // *printf() family is handled separately
 #endif // wxNEED_WX_STDIO_H
@@ -895,14 +907,14 @@ WXDLLEXPORT_BASE wxWCharBuffer wxSetlocale(int category, const wxChar *locale);
 
 // stdlib.h functions
 #ifndef wxAtof
-WXDLLEXPORT_BASE double   wxAtof(const wxChar *psz);
+WXDLLIMPEXP_BASE double   wxAtof(const wxChar *psz);
 #endif
 
 #ifdef wxNEED_WX_STDLIB_H
-WXDLLEXPORT_BASE int      wxAtoi(const wxChar *psz);
-WXDLLEXPORT_BASE long     wxAtol(const wxChar *psz);
-WXDLLEXPORT_BASE wxChar * wxGetenv(const wxChar *name);
-WXDLLEXPORT_BASE int      wxSystem(const wxChar *psz);
+WXDLLIMPEXP_BASE int      wxAtoi(const wxChar *psz);
+WXDLLIMPEXP_BASE long     wxAtol(const wxChar *psz);
+WXDLLIMPEXP_BASE wxChar * wxGetenv(const wxChar *name);
+WXDLLIMPEXP_BASE int      wxSystem(const wxChar *psz);
 #endif
 
 
@@ -911,18 +923,29 @@ WXDLLEXPORT_BASE int      wxSystem(const wxChar *psz);
 #if defined(__MWERKS__) && defined(macintosh)
     #include <time.h> 
 #endif
-    WXDLLEXPORT_BASE size_t wxStrftime(wxChar *s, size_t max,
+    WXDLLIMPEXP_BASE size_t wxStrftime(wxChar *s, size_t max,
                                   const wxChar *fmt, const struct tm *tm);
 #endif // wxNEED_WX_TIME_H
 
+// missing functions in WinCE
+#ifdef __WXWINCE__
+WXDLLIMPEXP_BASE char* strdup(const char* s);
+WXDLLIMPEXP_BASE void *calloc( size_t num, size_t size );
+
+#if _WIN32_WCE <= 211
+WXDLLIMPEXP_BASE int isspace(int c);
+WXDLLIMPEXP_BASE int isascii( int c );
+#endif
+#endif
+
 // ----------------------------------------------------------------------------
 // multibyte to wide char conversion functions and macros
 // ----------------------------------------------------------------------------
 
 #if wxUSE_WCHAR_T
     // multibyte<->widechar conversion
-    WXDLLEXPORT_BASE size_t wxMB2WC(wchar_t *buf, const char *psz, size_t n);
-    WXDLLEXPORT_BASE size_t wxWC2MB(char *buf, const wchar_t *psz, size_t n);
+    WXDLLIMPEXP_BASE size_t wxMB2WC(wchar_t *buf, const char *psz, size_t n);
+    WXDLLIMPEXP_BASE size_t wxWC2MB(char *buf, const wchar_t *psz, size_t n);
 
     #if wxUSE_UNICODE
         #define wxMB2WX wxMB2WC