tried to clean strdup() mess: we now have wxStrdup[AW] which should be always available
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18172 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -80,6 +80,13 @@
|
||||
// Required for wxPrintf() etc
|
||||
#include <stdarg.h>
|
||||
|
||||
// Almost all compiler have strdup(), but not quite all: CodeWarrior under Mac
|
||||
// and VC++ for Windows CE don't provide it
|
||||
#if !(defined(__MWERKS__) && defined(__WXMAC__)) && !defined(__WXWINCE__)
|
||||
// use #define, not inline wrapper, as it is tested with #ifndef below
|
||||
#define wxStrdupA strdup
|
||||
#endif
|
||||
|
||||
// non Unix compilers which do have wchar.h (but not tchar.h which is included
|
||||
// below and which includes wchar.h anyhow).
|
||||
// Actually MinGW has tchar.h, but it does not include wchar.h
|
||||
@@ -269,7 +276,7 @@
|
||||
#define wxStrcoll _tcscoll
|
||||
#define wxStrcpy _tcscpy
|
||||
#define wxStrcspn _tcscspn
|
||||
#define wxStrdup _tcsdup
|
||||
#define wxStrdupW _wcsdup // notice the 'W'!
|
||||
#define wxStrftime _tcsftime
|
||||
#define wxStricmp _tcsicmp
|
||||
#define wxStrnicmp _tcsnicmp
|
||||
@@ -459,9 +466,7 @@
|
||||
#define wxStrcoll strcoll
|
||||
#define wxStrcpy strcpy
|
||||
#define wxStrcspn strcspn
|
||||
#if !defined(__MWERKS__) || !defined(__WXMAC__)
|
||||
#define wxStrdup strdup
|
||||
#endif
|
||||
|
||||
// wxStricmp and wxStrnicmp are defined below
|
||||
#define wxStrlen_ strlen // used in wxStrlen inline function
|
||||
#define wxStrncat strncat
|
||||
@@ -572,6 +577,17 @@ 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; }
|
||||
|
||||
// each of strdup() and wcsdup() may or may not be available but we need both
|
||||
// of them anyhow for wx/buffer.h so we define the missing one(s) in
|
||||
// wxchar.cpp and so we should always have both wxStrdupA and wxStrdupW
|
||||
// defined -- if this is somehow not the case in some situations, please
|
||||
// correct that and not the lines here
|
||||
#if wxUSE_UNICODE
|
||||
#define wxStrdup wxStrdupW
|
||||
#else
|
||||
#define wxStrdup wxStrdupA
|
||||
#endif
|
||||
|
||||
WXDLLEXPORT bool wxOKlibc(); // for internal use
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -736,8 +752,12 @@ WXDLLEXPORT bool wxOKlibc(); // for internal use
|
||||
WXDLLEXPORT size_t wxStrxfrm(wxChar *dest, const wxChar *src, size_t n);
|
||||
#endif // wxNEED_WX_STRING_H
|
||||
|
||||
#ifndef wxStrdup
|
||||
WXDLLEXPORT wxChar * wxStrdup(const wxChar *psz);
|
||||
#ifndef wxStrdupA
|
||||
WXDLLEXPORT char *wxStrdupA(const char *psz);
|
||||
#endif
|
||||
|
||||
#ifndef wxStrdupW
|
||||
WXDLLEXPORT wchar_t *wxStrdupW(const wchar_t *pwz);
|
||||
#endif
|
||||
|
||||
#ifndef wxStricmp
|
||||
|
Reference in New Issue
Block a user