]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/regex.cpp
fixing infinite recursion for rotated text, introduced in cleanup r57915
[wxWidgets.git] / src / common / regex.cpp
index f6ca8782913e64e3ec4ddfe6bf99610974e299b8..30dddf3804ae9c38d4bb24aced45cafcef88c9a7 100644 (file)
 
 #if wxUSE_REGEX
 
+#include "wx/regex.h"
+
 #ifndef WX_PRECOMP
     #include "wx/object.h"
-    #include "wx/string.h"
     #include "wx/log.h"
     #include "wx/intl.h"
     #include "wx/crt.h"
@@ -44,7 +45,6 @@
 #endif
 
 #include <regex.h>
-#include "wx/regex.h"
 
 // WXREGEX_USING_BUILTIN    defined when using the built-in regex lib
 // WXREGEX_USING_RE_SEARCH  defined when using re_search in the GNU regex lib
@@ -378,7 +378,7 @@ static int ReSearch(const regex_t *preg,
                     re_registers *matches,
                     int eflags)
 {
-    regex_t *pattern = wx_const_cast(regex_t*, preg);
+    regex_t *pattern = const_cast<regex_t*>(preg);
 
     pattern->not_bol = (eflags & REG_NOTBOL) != 0;
     pattern->not_eol = (eflags & REG_NOTEOL) != 0;
@@ -515,10 +515,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) &&
+             Matches(
 #ifndef WXREGEX_CONVERT_TO_MB
-            Matches(textstr + matchStart,
+                    textstr + matchStart,
 #else
-            Matches(textstr.data() + matchStart,
+                    textstr.data() + matchStart,
 #endif 
                     countRepl ? wxRE_NOTBOL : 0
                     WXREGEX_IF_NEED_LEN(textlen - matchStart)) )