]> granicus.if.org Git - onig/commitdiff
implement absent clear
authorK.Kosako <kkosako0@gmail.com>
Sun, 30 Jul 2017 08:29:36 +0000 (17:29 +0900)
committerK.Kosako <kkosako0@gmail.com>
Sun, 30 Jul 2017 08:29:36 +0000 (17:29 +0900)
src/regparse.c

index fc183a211bfa5438736da896b87d1fe83a3660e2..2d639b732a28402ad4f14d31c7d9140ad719a68c 100644 (file)
@@ -5641,6 +5641,13 @@ parse_enclosure(Node** np, OnigToken* tok, int term, UChar** src, UChar* end,
           if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;
 
           head_bar = 1;
+          if (PPEEK_IS(')')) { // (?~|)  : absent clear
+            PINC;
+            r = node_new_update_var_gimmick(np, UPDATE_VAR_RIGHT_RANGE_INIT,
+                                            0, env);
+            if (r != 0) return r;
+            goto end;
+          }
         }
         else
           head_bar = 0;