]> granicus.if.org Git - onig/commitdiff
don't set IN_REPEAT state if upper value is less than 2
authorK.Kosako <kosako@sofnec.co.jp>
Fri, 16 Jun 2017 08:28:35 +0000 (17:28 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Fri, 16 Jun 2017 08:28:35 +0000 (17:28 +0900)
src/regcomp.c

index 74b271d73ee48678ca10d227cde4f3078804bb36..d28b98daf4da2f6fdbe51f06de9b9ca97df92703 100644 (file)
@@ -3873,9 +3873,11 @@ setup_qtfr(Node* node, regex_t* reg, int state, ScanEnv* env)
     }
   }
 
-  state |= IN_REPEAT;
+  if (IS_REPEAT_INFINITE(qn->upper) || qn->upper >= 2)
+    state |= IN_REPEAT;
   if (qn->lower != qn->upper)
     state |= IN_VAR_REPEAT;
+
   r = setup_tree(target, reg, state, env);
   if (r != 0) return r;