X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f98e742929e4ec49802f61bdb2d60b94cae0c321..c90c34007a72d942f378e46b77e4f4456ac9c5b1:/include/wx/wxchar.h?ds=inline diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h index 98e3936404..caeb9074a9 100644 --- a/include/wx/wxchar.h +++ b/include/wx/wxchar.h @@ -21,7 +21,7 @@ #include "wx/defs.h" /* for wxUSE_UNICODE */ #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 **); + char *strtok_r(char *, const char *, char **); #endif /* check whether we have wchar_t and which size it is if we do */ @@ -127,7 +127,9 @@ #define wxHAVE_TCHAR_SUPPORT #elif defined(__DMC__) #define wxHAVE_TCHAR_SUPPORT -#elif defined(__MINGW32__) && wxCHECK_W32API_VERSION( 1, 0 ) && !defined(__WXPALMOS__) +#elif defined(__WXPALMOS__) + #include +#elif defined(__MINGW32__) && wxCHECK_W32API_VERSION( 1, 0 ) #define wxHAVE_TCHAR_SUPPORT #include #include @@ -362,7 +364,9 @@ #define wxRename wxMSLU__trename #else #ifdef __WXWINCE__ - #define wxRemove DeleteFile + /* carefully: wxRemove() must return 0 on success while DeleteFile() + returns 0 on error, so don't just define one as the other */ + int wxRemove(const wxChar *path); #else #define wxRemove _tremove #define wxRename _trename @@ -385,7 +389,7 @@ /* time.h functions */ #define wxAsctime _tasctime #define wxCtime _tctime - + #define wxMbstowcs mbstowcs #define wxWcstombs wcstombs #else /* !TCHAR-aware compilers */ @@ -473,24 +477,24 @@ #endif /* gcc/!gcc */ /* string.h functions (wchar.h) */ - #define wxStrcat ::wcscat - #define wxStrchr ::wcschr - #define wxStrcmp ::wcscmp - #define wxStrcoll ::wcscoll - #define wxStrcpy ::wcscpy - #define wxStrcspn ::wcscspn + #define wxStrcat wcscat + #define wxStrchr wcschr + #define wxStrcmp wcscmp + #define wxStrcoll wcscoll + #define wxStrcpy wcscpy + #define wxStrcspn wcscspn #define wxStrlen_ wxWcslen /* wxStrlen_() is used in wxStrlen() */ - #define wxStrncat ::wcsncat - #define wxStrncmp ::wcsncmp - #define wxStrncpy ::wcsncpy - #define wxStrpbrk ::wcspbrk - #define wxStrrchr ::wcsrchr - #define wxStrspn ::wcsspn - #define wxStrstr ::wcsstr - #define wxStrtod ::wcstod - #define wxStrtol ::wcstol - #define wxStrtoul ::wcstoul - #define wxStrxfrm ::wcsxfrm + #define wxStrncat wcsncat + #define wxStrncmp wcsncmp + #define wxStrncpy wcsncpy + #define wxStrpbrk wcspbrk + #define wxStrrchr wcsrchr + #define wxStrspn wcsspn + #define wxStrstr wcsstr + #define wxStrtod wcstod + #define wxStrtol wcstol + #define wxStrtoul wcstoul + #define wxStrxfrm wcsxfrm #define wxFgetc fgetwc #define wxFgetchar fgetwchar @@ -777,7 +781,7 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */ /* printf() family saga */ /* - For some systems vsnprintf() exists in the system libraries but not in the + For some systems [v]snprintf() exists in the system libraries but not in the headers, so we need to declare it ourselves to be able to use it. */ #if defined(HAVE_VSNPRINTF) && !defined(HAVE_VSNPRINTF_DECL) @@ -789,6 +793,25 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */ int vsnprintf(char *str, size_t size, const char *format, va_list ap); #endif /* !HAVE_VSNPRINTF_DECL */ +#if defined(HAVE_SNPRINTF) && !defined(HAVE_SNPRINTF_DECL) +#ifdef __cplusplus + extern "C" +#else + extern +#endif + 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 + * same isn't done for snprintf below, the builtin wxSnprintf_ is used + * instead since it's already a simple wrapper */ +#if defined __cplusplus && defined HAVE_BROKEN_VSNPRINTF_DECL + inline int wx_fixed_vsnprintf(char *str, size_t size, const char *format, va_list ap) + { + return vsnprintf(str, size, (char*)format, ap); + } +#endif + /* First of all, we always want to define safe snprintf() function to be used instead of sprintf(). Some compilers already have it (or rather vsnprintf() @@ -816,11 +839,18 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */ #endif #else /* ASCII */ /* all versions of CodeWarrior supported by wxWidgets apparently have */ - /* vsnprintf() */ + /* both snprintf() and vsnprintf() */ + #if defined(HAVE_SNPRINTF) || defined(__MWERKS__) || defined(__WATCOMC__) + #ifndef HAVE_BROKEN_SNPRINTF_DECL + #define wxSnprintf_ snprintf + #endif + #endif #if defined(HAVE_VSNPRINTF) || defined(__MWERKS__) || defined(__WATCOMC__) - /* assume we have snprintf() too if we have vsnprintf() */ - #define wxVsnprintf_ vsnprintf - #define wxSnprintf_ snprintf + #if defined __cplusplus && defined HAVE_BROKEN_VSNPRINTF_DECL + #define wxVsnprintf_ wx_fixed_vsnprintf + #else + #define wxVsnprintf_ vsnprintf + #endif #endif #endif #endif /* wxVsnprintf_ not defined yet */