]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/regex.cpp
minimize searching for tlw parent, remove useless code
[wxWidgets.git] / src / common / regex.cpp
index bc0faa554ee047cb2e2c661efad92e1c68d14aeb..7879616899596c6fb642e7ec517ca256b7602b8f 100644 (file)
@@ -1,11 +1,11 @@
 ///////////////////////////////////////////////////////////////////////////////
 // Name:        src/common/regex.cpp
 // Purpose:     regular expression matching
-// Author:      Karsten Ballüder and Vadim Zeitlin
+// Author:      Karsten Ballueder and Vadim Zeitlin
 // Modified by:
 // Created:     13.07.01
 // RCS-ID:      $Id$
-// Copyright:   (c) 2000 Karsten Ballüder <ballueder@gmx.net>
+// Copyright:   (c) 2000 Karsten Ballueder <ballueder@gmx.net>
 //                  2001 Vadim Zeitlin <vadim@wxwindows.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -58,9 +58,9 @@
 #   define WXREGEX_USING_BUILTIN
 #   define WXREGEX_IF_NEED_LEN(x) ,x
 #   if wxUSE_UNICODE
-#       define WXREGEX_CHAR(x) x.wc_str()
+#       define WXREGEX_CHAR(x) (x).wc_str()
 #   else
-#       define WXREGEX_CHAR(x) x.mb_str()
+#       define WXREGEX_CHAR(x) (x).mb_str()
 #   endif
 #else
 #   ifdef HAVE_RE_SEARCH
@@ -72,7 +72,7 @@
 #   if wxUSE_UNICODE
 #       define WXREGEX_CONVERT_TO_MB
 #   endif
-#   define WXREGEX_CHAR(x) x.mb_str()
+#   define WXREGEX_CHAR(x) (x).mb_str()
 #   define wx_regfree regfree
 #   define wx_regerror regerror
 #endif
@@ -513,7 +513,11 @@ int wxRegExImpl::Replace(wxString *text,
     // note that "^" shouldn't match after the first call to Matches() so we
     // use wxRE_NOTBOL to prevent it from happening
     while ( (!maxMatches || countRepl < maxMatches) &&
+#ifndef WXREGEX_CONVERT_TO_MB
             Matches(textstr + matchStart,
+#else
+            Matches(textstr.data() + matchStart,
+#endif 
                     countRepl ? wxRE_NOTBOL : 0
                     WXREGEX_IF_NEED_LEN(textlen - matchStart)) )
     {
@@ -559,7 +563,12 @@ int wxRegExImpl::Replace(wxString *text,
                     }
                     else
                     {
+#ifndef WXREGEX_CONVERT_TO_MB
                         textNew += wxString(textstr + matchStart + start,
+#else
+                        textNew += wxString(textstr.data() + matchStart +
+                                           start,
+#endif
                                             *wxConvCurrent, len);
 
                         mayHaveBackrefs = true;
@@ -589,7 +598,8 @@ int wxRegExImpl::Replace(wxString *text,
 #ifndef WXREGEX_CONVERT_TO_MB
         result.append(*text, matchStart, start);
 #else
-        result.append(wxString(textstr + matchStart, *wxConvCurrent, start));
+        result.append(wxString(textstr.data() + matchStart, *wxConvCurrent, 
+                              start));
 #endif
         matchStart += start;
         result.append(textNew);
@@ -602,7 +612,7 @@ int wxRegExImpl::Replace(wxString *text,
 #ifndef WXREGEX_CONVERT_TO_MB
     result.append(*text, matchStart, wxString::npos);
 #else
-    result.append(wxString(textstr + matchStart, *wxConvCurrent));
+    result.append(wxString(textstr.data() + matchStart, *wxConvCurrent));
 #endif
     *text = result;