From e9cddc8e32b34f17c84d02fb52c11dfa4a3927f7 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sun, 13 May 2012 17:16:10 -0400 Subject: [PATCH] another BRE fix: in ^*, * is literal i don't understand why this has to be conditional on being in BRE mode, but enabling this code unconditionally breaks a huge number of ERE test cases. --- src/regex/regcomp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/regex/regcomp.c b/src/regex/regcomp.c index ea6e6a69..712ca80d 100644 --- a/src/regex/regcomp.c +++ b/src/regex/regcomp.c @@ -1353,6 +1353,8 @@ tre_parse(tre_parse_ctx_t *ctx) if (ctx->cflags & REG_EXTENDED || ctx->re == ctx->re_start) { + if (!(ctx->cflags & REG_EXTENDED)) + STACK_PUSHX(stack, int, PARSE_CATENATION); result = tre_ast_new_literal(ctx->mem, ASSERTION, ASSERT_AT_BOL, -1); if (result == NULL) -- 2.25.1