]> granicus.if.org Git - onig/commitdiff
break regex-loop if match position == 0
authorK.Kosako <kosako@sofnec.co.jp>
Thu, 26 Sep 2019 05:00:10 +0000 (14:00 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Thu, 26 Sep 2019 05:00:10 +0000 (14:00 +0900)
src/regexec.c

index 2a8e6f4f0f43b1338d71699672f989df62f08d93..6096d4b2dd0f3ef5c567e254481ff8b6627c564d 100644 (file)
@@ -4341,13 +4341,18 @@ regset_search_body_regex_lead(OnigRegSet* set,
     reg    = set->rs[i].reg;
     region = set->rs[i].region;
     r = search_in_range(reg, str, end, start, ep, orig_range, region, option, mps[i]);
-    if (r >= 0) {
+    if (r > 0) {
       if (str + r < ep) {
         ep = str + r;
         match_index = i;
         *rmatch_pos = r;
       }
     }
+    else if (r == 0) {
+      match_index = i;
+      *rmatch_pos = r;
+      break;
+    }
   }
 
   return match_index;