X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/71e030352d74e4e6aed28cfcb0ea6edf3d17af6e..f17fb297676dd3231b849ab7e55486473aa6ee21:/src/common/string.cpp diff --git a/src/common/string.cpp b/src/common/string.cpp index 3fdcf1e0de..41cf6fb8ef 100644 --- a/src/common/string.cpp +++ b/src/common/string.cpp @@ -38,8 +38,6 @@ #include "wx/thread.h" #endif -#include "wx/regex.h" // for wxString::Matches() - #include #include #include @@ -1458,7 +1456,11 @@ int wxString::PrintfV(const wxChar* pszFormat, va_list argptr) // of them) bool wxString::Matches(const wxChar *pszMask) const { -#if wxUSE_REGEX + // I disable this code as it doesn't seem to be faster (in fact, it seems + // to be much slower) than the old, hand-written code below and using it + // here requires always linking with libregex even if the user code doesn't + // use it +#if 0 // wxUSE_REGEX // first translate the shell-like mask into a regex wxString pattern; pattern.reserve(wxStrlen(pszMask)); @@ -1632,7 +1634,7 @@ void wxString::resize(size_t nSize, wxChar ch) } else if ( nSize > len ) { - *this += wxString(ch, len - nSize); + *this += wxString(ch, nSize - len); } //else: we have exactly the specified length, nothing to do } @@ -1698,7 +1700,7 @@ size_t wxString::find(wxChar ch, size_t nStart) const size_t wxString::rfind(const wxString& str, size_t nStart) const { wxASSERT( str.GetStringData()->IsValid() ); - wxASSERT( nStart <= Len() ); + wxASSERT( nStart == npos || nStart <= Len() ); // TODO could be made much quicker than that const wxChar *p = c_str() + (nStart == npos ? Len() : nStart); @@ -1715,7 +1717,7 @@ size_t wxString::rfind(const wxString& str, size_t nStart) const #if !defined(__VISUALC__) || defined(__WIN32__) size_t wxString::rfind(const wxChar* sz, size_t nStart, size_t n) const { - return rfind(wxString(sz, n == npos ? 0 : n), nStart); + return rfind(wxString(sz, n == npos ? wxSTRING_MAXLEN : n), nStart); } size_t wxString::rfind(wxChar ch, size_t nStart) const