X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/225526039bc3d31b5bc897b275fd3270d847977b..4040a396cb22fdaa2db0f79bd782218cd814a540:/include/wx/string.h?ds=sidebyside diff --git a/include/wx/string.h b/include/wx/string.h index 58b708df2e..81c856c9e3 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -22,6 +22,9 @@ * stdarg.h * limits.h */ +#ifdef __WXMAC__ +#include +#endif #include #include #include @@ -73,6 +76,8 @@ */ // --------------------------------------------------------------------------- +WXDLLEXPORT_DATA(extern const char*) wxEmptyString; + /// checks whether the passed in pointer is NULL and if the string is empty inline bool WXDLLEXPORT IsEmpty(const char *p) { return !p || !*p; } @@ -85,10 +90,22 @@ inline int WXDLLEXPORT Stricmp(const char *psz1, const char *psz2) { #if defined(_MSC_VER) return _stricmp(psz1, psz2); +#elif defined(__SC__) + return _stricmp(psz1, psz2); #elif defined(__BORLANDC__) return stricmp(psz1, psz2); +#elif defined(__WATCOMC__) + return stricmp(psz1, psz2); #elif defined(__UNIX__) || defined(__GNUWIN32__) return strcasecmp(psz1, psz2); +#elif defined(__MWERKS__) && !defined(_MSC_VER) + register char c1, c2; + do { + c1 = tolower(*psz1++); + c2 = tolower(*psz2++); + } while ( c1 && (c1 == c2) ); + + return c1 - c2; #else // almost all compilers/libraries provide this function (unfortunately under // different names), that's why we don't implement our own which will surely @@ -303,11 +320,14 @@ public: char& Last() { wxASSERT( !IsEmpty() ); CopyBeforeWrite(); return m_pchData[Len()-1]; } + // on alpha-linux this gives overload problems: + // Also on Solaris, so removing for now (JACS) +#if ! defined(__ALPHA__) /// operator version of GetChar -#if 0 char operator[](size_t n) const { ASSERT_VALID_INDEX( n ); return m_pchData[n]; } #endif + /// operator version of GetChar char operator[](int n) const { ASSERT_VALID_INDEX( n ); return m_pchData[n]; } @@ -426,6 +446,11 @@ public: nCount (or till the end if nCount = default value) */ wxString Mid(size_t nFirst, size_t nCount = STRING_MAXLEN) const; + /// Compatibility with wxWindows 1.xx + wxString SubString(size_t from, size_t to) const + { + return Mid(from, (to - from + 1)); + } /// get first nCount characters wxString Left(size_t nCount) const; /// get all characters before the first occurence of ch @@ -540,6 +565,8 @@ public: { *this = str + *this; return *this; } /// same as Len size_t Length() const { return Len(); } + /// Count the number of characters + int Freq(char ch) const; /// same as MakeLower void LowerCase() { MakeLower(); } /// same as MakeUpper @@ -576,7 +603,7 @@ public: /** @name constructors */ //@{ /// take nLen chars starting at nPos - wxString(const wxString& str, size_t nPos, size_t nLen = npos) + wxString(const wxString& str, size_t nPos, size_t nLen) { wxASSERT( str.GetStringData()->IsValid() ); InitWith(str.c_str(), nPos, nLen == npos ? 0 : nLen); @@ -703,9 +730,11 @@ public: /// find first n characters of sz size_t find(const char* sz, size_t nStart = 0, size_t n = npos) const; #endif + // Gives a duplicate symbol (presumably a case-insensitivity problem) +#if !defined(__BORLANDC__) /// find the first occurence of character ch after nStart size_t find(char ch, size_t nStart = 0) const; - +#endif // wxWin compatibility inline bool Contains(const wxString& str) const { return Find(str) != -1; }