]> granicus.if.org Git - onig/commitdiff
re-implement onig_search() by using search_in_range()
authorK.Kosako <kosako@sofnec.co.jp>
Tue, 24 Sep 2019 06:55:09 +0000 (15:55 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Tue, 24 Sep 2019 06:55:09 +0000 (15:55 +0900)
src/regexec.c

index 74693d116c97592813018fbf82cc8b89eedafafd..ce7fb173f96f61da7f35936c5e5302efae5560d7 100644 (file)
@@ -5351,9 +5351,19 @@ onig_search(regex_t* reg, const UChar* str, const UChar* end,
 {
   int r;
   OnigMatchParam mp;
+  const UChar* data_range;
 
   onig_initialize_match_param(&mp);
-  r = onig_search_with_param(reg, str, end, start, range, region, option, &mp);
+
+  /* The following is an expanded code of onig_search_with_param()  */
+  if (range < start)
+    data_range = end;
+  else
+    data_range = range;
+
+  r = search_in_range(reg, str, end, start, range, data_range, region,
+                      option, &mp);
+
   onig_free_match_param_content(&mp);
   return r;