mirror of
git://git.musl-libc.org/musl
synced 2025-02-23 06:16:49 +00:00
fix ^* at the start of a complete BRE
This is a workaround to treat * as literal * at the start of a BRE. Ideally ^ would be treated as an anchor at the start of any BRE subexpression and similarly $ would be an anchor at the end of any subexpression. This is not required by the standard and hard to do with the current code, but it's the existing practice. If it is changed, * should be treated as literal after such anchor as well.
This commit is contained in:
parent
39ea71fb8a
commit
29b1357537
@ -994,6 +994,10 @@ static reg_errcode_t tre_parse(tre_parse_ctx_t *ctx)
|
||||
if (*s=='\\')
|
||||
s++;
|
||||
|
||||
/* handle ^* at the start of a complete BRE. */
|
||||
if (!ere && s==ctx->re+1 && s[-1]=='^')
|
||||
break;
|
||||
|
||||
/* extension: multiple consecutive *+?{,} is unspecified,
|
||||
but (a+)+ has to be supported so accepting a++ makes
|
||||
sense, note however that the RE_DUP_MAX limit can be
|
||||
|
Loading…
Reference in New Issue
Block a user