提交 39ea71fb 编写于 作者: S Szabolcs Nagy 提交者: Rich Felker

fix * at the start of a BRE subexpression

commit 7eaa76fc made * invalid at
the start of a BRE subexpression, but it should be accepted as
literal * there according to the standard.

This patch does not fix subexpressions starting with ^*.
上级 6e694d69
...@@ -889,7 +889,6 @@ static reg_errcode_t parse_atom(tre_parse_ctx_t *ctx, const char *s) ...@@ -889,7 +889,6 @@ static reg_errcode_t parse_atom(tre_parse_ctx_t *ctx, const char *s)
s++; s++;
break; break;
case '*': case '*':
return REG_BADPAT;
case '{': case '{':
case '+': case '+':
case '?': case '?':
...@@ -978,9 +977,6 @@ static reg_errcode_t tre_parse(tre_parse_ctx_t *ctx) ...@@ -978,9 +977,6 @@ static reg_errcode_t tre_parse(tre_parse_ctx_t *ctx)
} }
parse_iter: parse_iter:
/* extension: repetitions are rejected after an empty node
eg. (+), |*, {2}, but assertions are not treated as empty
so ^* or $? are accepted currently. */
for (;;) { for (;;) {
int min, max; int min, max;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册