diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h index 7f1c3e5cc4..fda15454f2 100644 --- a/include/wx/wxchar.h +++ b/include/wx/wxchar.h @@ -277,7 +277,7 @@ typedef unsigned char wxUChar; inline bool WXDLLEXPORT wxIsEmpty(const wxChar *p) { return !p || !*p; } /// safe version of strlen() (returns 0 if passed NULL pointer) -inline size_t WXDLLEXPORT wxStrlen(const wxChar *psz) +inline size_t WXDLLEXPORT wxStrlen(const wxChar *psz) #if defined(__VISUALC__) { return psz ? _tcslen(psz) : 0; } #elif wxUSE_UNICODE @@ -323,5 +323,18 @@ inline int WXDLLEXPORT wxStricmp(const wxChar *psz1, const wxChar *psz2) #error "Please define string case-insensitive compare for your OS/compiler" #endif // OS/compiler +/// portable strdup +inline wxChar * WXDLLEXPORT wxStrdup(const wxChar *psz) +#if !wxUSE_UNICODE + { return strdup(psz); } +#else + { + size_t size = (wxStrlen(psz) + 1) * sizeof(wxChar); + wxChar *ret = (wxChar *) malloc(size); + memcpy(ret, psz, size); + return ret; + } +#endif + #endif //_WX_WXCHAR_H_