X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4055ed8281971e3d35bf04177193c27043d42ed1..e12a951e754d0e6a67a211a1d8fb788e0a166094:/include/wx/wxchar.h diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h index fdfb0da05f..1d49653fd4 100644 --- a/include/wx/wxchar.h +++ b/include/wx/wxchar.h @@ -5,7 +5,7 @@ * Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee * Created: 1998/06/12 * RCS-ID: $Id$ - * Copyright: (c) 1998-2002 wxWidgets dev team + * Copyright: (c) 1998-2002 Joel Farley, Ove Kåven, Robert Roebling, Ron Lee * Licence: wxWindows licence */ @@ -20,6 +20,10 @@ #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 **); +#endif + /* check whether we have wchar_t and which size it is if we do */ #if !defined(wxUSE_WCHAR_T) #if defined(__UNIX__) @@ -87,12 +91,17 @@ /* Cygwin versions, wchar.h requires sys/types.h */ #ifdef __CYGWIN__ #include - extern "C" { + #ifdef __cplusplus + extern "C" { + #endif #endif /* Cygwin */ - #include - #ifdef __CYGWIN__ + + #include + + #if defined(__CYGWIN__) && defined(__cplusplus) } - #endif /* Cygwin */ + #endif /* Cygwin and C++ */ + #elif defined(HAVE_WCSTR_H) /* old compilers have relevant declarations here */ #include @@ -299,7 +308,11 @@ #define wxFgetc _fgettc #define wxFgetchar _fgettchar #define wxFgets _fgetts - #define wxFopen _tfopen + #if wxUSE_UNICODE_MSLU + #define wxFopen wxMSLU__tfopen + #else + #define wxFopen _tfopen + #endif #define wxFputc _fputtc #define wxFputchar _fputtchar #define wxFprintf _ftprintf @@ -349,7 +362,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 @@ -360,22 +375,31 @@ #define wxAtoi _ttoi #define wxAtol _ttol /* #define wxAtof _tttof -- notice that there is no such thing (why?) */ - #define wxGetenv _tgetenv + /* there are no env vars at all under CE, so no _tgetenv neither */ + #ifdef __WXWINCE__ + /* can't define as inline function as this is a C file... */ + #define wxGetenv(name) ((wxChar *)NULL) + #else + #define wxGetenv _tgetenv + #endif #define wxSystem _tsystem /* time.h functions */ #define wxAsctime _tasctime #define wxCtime _tctime + + #define wxMbstowcs mbstowcs + #define wxWcstombs wcstombs #else /* !TCHAR-aware compilers */ #if !defined(__MWERKS__) && defined(__DARWIN__) && ( MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_2 ) /* even though they are defined and "implemented", they are bad and just stubs so we need our own - we need these even in ANSI builds!! */ - #define mbstowcs wxInternalMbstowcs - #define wcstombs wxInternalWcstombs - - WXDLLIMPEXP_BASE size_t wxInternalMbstowcs (wchar_t *, const char *, size_t); - WXDLLIMPEXP_BASE size_t wxInternalWcstombs (char *, const wchar_t *, size_t); + WXDLLIMPEXP_BASE size_t wxMbstowcs (wchar_t *, const char *, size_t); + WXDLLIMPEXP_BASE size_t wxWcstombs (char *, const wchar_t *, size_t); + #else + #define wxMbstowcs mbstowcs + #define wxWcstombs wcstombs #endif /* No UNICODE in the c library except wchar_t typedef on mac OSX 10.2 and less - roll our own */ @@ -759,7 +783,11 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */ headers, so we need to declare it ourselves to be able to use it. */ #if defined(HAVE_VSNPRINTF) && !defined(HAVE_VSNPRINTF_DECL) +#ifdef __cplusplus extern "C" +#else + extern +#endif int vsnprintf(char *str, size_t size, const char *format, va_list ap); #endif /* !HAVE_VSNPRINTF_DECL */ @@ -1095,11 +1123,11 @@ WXDLLIMPEXP_BASE void *calloc( size_t num, size_t size ); #define wxWX2WC wxMB2WC #endif -// -// RN: The following are not normal versions of memcpy et al., rather -// these are either char or widechar versions depending on -// if unicode is used or not. -// +/* + RN: The following are not normal versions of memcpy et al., rather + these are either char or widechar versions depending on + if unicode is used or not. +*/ #ifdef __cplusplus