]> granicus.if.org Git - onig/commitdiff
fix: alternative in Absent clear operator must be super-alt
authorK.Kosako <kosako@sofnec.co.jp>
Wed, 23 Aug 2017 05:26:39 +0000 (14:26 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Wed, 23 Aug 2017 05:26:39 +0000 (14:26 +0900)
src/regparse.c

index f60212a2af1f7b1b1072f99cfc96ab0f99ea48ca..2edf250f1c4953d6f14f8fc593af05c1c754b735 100644 (file)
@@ -1807,13 +1807,14 @@ make_absent_clear(Node** node, ScanEnv* env)
 
   ns[0] = NULL_NODE; ns[1] = x;
 
-  r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_INIT,
-                                 0, env);
+  r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_INIT, 0, env);
   if (r != 0) goto err;
 
   x = make_alt(2, ns);
   if (IS_NULL(x)) goto err0;
 
+  NODE_STATUS_ADD(x, NST_SUPER);
+
   ns[0] = save;
   ns[1] = x;
   save = NULL_NODE;