X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5a8231ef46dfc249ae17c288841a282570309cfc..7c8b87a78a029ce90314dffa5935c5211a3c3e7c:/include/wx/string.h diff --git a/include/wx/string.h b/include/wx/string.h index 08d4544810..f55ac3032b 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -164,7 +164,7 @@ inline int Stricmp(const char *psz1, const char *psz2) // ---------------------------------------------------------------------------- // in both cases we need to define wxStdString -#if wxUSE_STL || defined(wxUSE_STD_STRING) +#if wxUSE_STL || wxUSE_STD_STRING #include "wx/beforestd.h" #include @@ -196,7 +196,8 @@ inline int Stricmp(const char *psz1, const char *psz2) typedef wxStdString wxStringBase; #else // if !wxUSE_STL -#ifndef HAVE_STD_STRING_COMPARE +#if !defined(HAVE_STD_STRING_COMPARE) && \ + (!defined(__WX_SETUP_H__) || wxUSE_STL == 0) #define HAVE_STD_STRING_COMPARE #endif @@ -657,7 +658,7 @@ public: // unconditionally add this ctor as it would make wx lib dependent on // libstdc++ on some Linux versions which is bad, so instead we ask the // client code to define this wxUSE_STD_STRING symbol if they need it -#ifdef wxUSE_STD_STRING +#if wxUSE_STD_STRING wxString(const wxStdString& s) : wxStringBase(s.c_str()) { } #endif // wxUSE_STD_STRING @@ -843,9 +844,16 @@ public: // from a character wxString& operator=(wxChar ch) { return (wxString&)wxStringBase::operator=(ch); } - // from a C string + // from a C string - STL probably will crash on NULL, + // so we need to compensate in that case +#if wxUSE_STL + wxString& operator=(const wxChar *psz) + { if(psz) wxStringBase::operator=(psz); else Clear(); return *this; } +#else wxString& operator=(const wxChar *psz) { return (wxString&)wxStringBase::operator=(psz); } +#endif + #if wxUSE_UNICODE // from wxWCharBuffer wxString& operator=(const wxWCharBuffer& psz) @@ -1177,7 +1185,7 @@ public: { return (wxString&)wxStringBase::assign(first, last); } // string comparison -#ifndef HAVE_STD_STRING_COMPARE +#if !defined(HAVE_STD_STRING_COMPARE) int compare(const wxStringBase& str) const; // comparison with a substring int compare(size_t nStart, size_t nLen, const wxStringBase& str) const;