X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bf978f96c28c194294f7edc447df9e449106b79e..f148f2bac3fb0fa6d984050fb940112da150aeff:/include/wx/wxchar.h diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h index c6665ef5e5..41ad07a808 100644 --- a/include/wx/wxchar.h +++ b/include/wx/wxchar.h @@ -12,37 +12,16 @@ #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 +#include "wx/defs.h" // for wxUSE_UNICODE + // ---------------------------------------------------------------------------- -// first deal with Unicode setting: wxUSE_UNICODE should be defined as 0 or 1 -// and is used by wxWindows, _UNICODE and/or UNICODE may be defined or used by -// the system headers so bring these settings in sync +// check whether we have wchar_t and which size it is if we do // ---------------------------------------------------------------------------- -// set wxUSE_UNICODE to 1 if UNICODE or _UNICODE is defined -#if defined(_UNICODE) || defined(UNICODE) - #undef wxUSE_UNICODE - #define wxUSE_UNICODE 1 -#else - #ifndef wxUSE_UNICODE - #define wxUSE_UNICODE 0 - #endif -#endif // Unicode - -// and vice versa: define UNICODE and _UNICODE if wxUSE_UNICODE is 1... -#if wxUSE_UNICODE - #ifndef _UNICODE - #define _UNICODE - #endif - #ifndef UNICODE - #define UNICODE - #endif -#endif // Unicode - -// check whether we have wchar_t #if !defined(wxUSE_WCHAR_T) #if defined(__WIN16__) // no wchar_t under Win16 regadrless of compiler used @@ -131,6 +110,8 @@ #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x520) #define wxHAVE_TCHAR_SUPPORT #include +#elif defined(__WATCOMC__) + #define wxHAVE_TCHAR_SUPPORT #elif defined(__MINGW32__) && wxCHECK_W32API_VERSION( 1, 0 ) #define wxHAVE_TCHAR_SUPPORT #include @@ -339,8 +320,12 @@ #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 @@ -504,7 +489,7 @@ // time.h functions #define wxAsctime wasciitime #define wxCtime wctime - #define wxStrftime wcsftime + // #define wxStrftime wcsftime /* #define wxNEED_FPUTWC @@ -523,8 +508,8 @@ // use our own versions #define wxNEED_WX_STDIO_H #define wxNEED_WX_STDLIB_H - #define wxNEED_WX_TIME_H */ + #define wxNEED_WX_TIME_H #else // !metrowerks for apple #error "Please define wide character functions for your environment" #endif @@ -578,15 +563,17 @@ // stdio.h functions #define wxFopen fopen #define wxFreopen freopen - #define wxPerror perror #define wxRemove remove #define wxRename rename + + #define wxPerror perror #define wxTmpnam tmpnam #define wxFgetc fgetc #define wxFgetchar fgetchar #define wxFgets fgets #define wxFputc fputc + #define wxFputs fputs #define wxFputchar fputchar #define wxFprintf fprintf #define wxFscanf fscanf @@ -679,7 +666,7 @@ inline size_t wxStrlen(const wxChar *psz) { return psz ? wxStrlen_(psz) : 0; } #define wxStrdup wxStrdupA #endif -WXDLLEXPORT bool wxOKlibc(); // for internal use +WXDLLIMPEXP_BASE bool wxOKlibc(); // for internal use // ---------------------------------------------------------------------------- // printf() family saga @@ -728,11 +715,11 @@ WXDLLEXPORT bool wxOKlibc(); // for internal use #ifndef wxSnprintf_ // no [v]snprintf(), cook our own - WXDLLEXPORT 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 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 +788,19 @@ WXDLLEXPORT bool wxOKlibc(); // for internal use // // VZ: note that this is never defined currently #ifdef wxNEED_WX_CTYPE_H - WXDLLEXPORT int wxIsalnum(wxChar ch); - WXDLLEXPORT int wxIsalpha(wxChar ch); - WXDLLEXPORT int wxIsctrl(wxChar ch); - WXDLLEXPORT int wxIsdigit(wxChar ch); - WXDLLEXPORT int wxIsgraph(wxChar ch); - WXDLLEXPORT int wxIslower(wxChar ch); - WXDLLEXPORT int wxIsprint(wxChar ch); - WXDLLEXPORT int wxIspunct(wxChar ch); - WXDLLEXPORT int wxIsspace(wxChar ch); - WXDLLEXPORT int wxIsupper(wxChar ch); - WXDLLEXPORT int wxIsxdigit(wxChar ch); - WXDLLEXPORT int wxTolower(wxChar ch); - WXDLLEXPORT 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 +815,66 @@ WXDLLEXPORT bool wxOKlibc(); // for internal use // // VZ: this is never defined neither currently #ifdef wxNEED_WX_STRING_H - WXDLLEXPORT wxChar * wxStrcat(wxChar *dest, const wxChar *src); - WXDLLEXPORT const wxChar * wxStrchr(const wxChar *s, wxChar c); - WXDLLEXPORT 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 int wxStrcmp(const wxChar *s1, const wxChar *s2); - WXDLLEXPORT int wxStrcoll(const wxChar *s1, const wxChar *s2); - WXDLLEXPORT wxChar * wxStrcpy(wxChar *dest, const wxChar *src); - WXDLLEXPORT size_t wxStrcspn(const wxChar *s, const wxChar *reject); - WXDLLEXPORT size_t wxStrlen(const wxChar *s); - WXDLLEXPORT wxChar * wxStrncat(wxChar *dest, const wxChar *src, size_t n); - WXDLLEXPORT int wxStrncmp(const wxChar *s1, const wxChar *s2, size_t n); - WXDLLEXPORT wxChar * wxStrncpy(wxChar *dest, const wxChar *src, size_t n); - WXDLLEXPORT const wxChar * wxStrpbrk(const wxChar *s, const wxChar *accept); - WXDLLEXPORT 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 const wxChar * wxStrrchr(const wxChar *s, wxChar c); - WXDLLEXPORT 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 size_t wxStrspn(const wxChar *s, const wxChar *accept); - WXDLLEXPORT const wxChar * wxStrstr(const wxChar *haystack, const wxChar *needle); - WXDLLEXPORT 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 double wxStrtod(const wxChar *nptr, wxChar **endptr); - WXDLLEXPORT long int wxStrtol(const wxChar *nptr, wxChar **endptr, int base); - WXDLLEXPORT unsigned long int wxStrtoul(const wxChar *nptr, wxChar **endptr, int base); - WXDLLEXPORT 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 char *wxStrdupA(const char *psz); +WXDLLIMPEXP_BASE char *wxStrdupA(const char *psz); #endif #ifndef wxStrdupW -WXDLLEXPORT wchar_t *wxStrdupW(const wchar_t *pwz); +WXDLLIMPEXP_BASE wchar_t *wxStrdupW(const wchar_t *pwz); #endif #ifndef wxStricmp -WXDLLEXPORT int wxStricmp(const wxChar *psz1, const wxChar *psz2); +WXDLLIMPEXP_BASE int wxStricmp(const wxChar *psz1, const wxChar *psz2); #endif #ifndef wxStrnicmp -WXDLLEXPORT 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 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 wxWCharBuffer; -WXDLLEXPORT 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 - WXDLLEXPORT FILE * wxFopen(const wxChar *path, const wxChar *mode); - WXDLLEXPORT FILE * wxFreopen(const wxChar *path, const wxChar *mode, FILE *stream); - WXDLLEXPORT int wxRemove(const wxChar *path); - WXDLLEXPORT 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 +882,14 @@ WXDLLEXPORT wxWCharBuffer wxSetlocale(int category, const wxChar *locale); // stdlib.h functions #ifndef wxAtof -WXDLLEXPORT double wxAtof(const wxChar *psz); +WXDLLIMPEXP_BASE double wxAtof(const wxChar *psz); #endif #ifdef wxNEED_WX_STDLIB_H -WXDLLEXPORT int wxAtoi(const wxChar *psz); -WXDLLEXPORT long wxAtol(const wxChar *psz); -WXDLLEXPORT wxChar * wxGetenv(const wxChar *name); -WXDLLEXPORT 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 +898,31 @@ WXDLLEXPORT int wxSystem(const wxChar *psz); #if defined(__MWERKS__) && defined(macintosh) #include #endif - WXDLLEXPORT 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 some WinCE versions +#ifdef _WIN32_WCE +#if (_WIN32_WCE < 300) +WXDLLIMPEXP_BASE void *calloc( size_t num, size_t size ); +#endif +WXDLLIMPEXP_BASE char* strdup(const char* s); + +#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 size_t wxMB2WC(wchar_t *buf, const char *psz, size_t n); - WXDLLEXPORT 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