changed the tre parser to treat a backslash as an escaper inside []

This commit is contained in:
hyung-hwan 2020-03-09 15:34:34 +00:00
parent 342c7ff32f
commit 73adc1f3dd

View File

@ -278,6 +278,15 @@ tre_parse_bracket_items(tre_parse_ctx_t *ctx, int negate,
if (min > max) if (min > max)
status = REG_ERANGE; status = REG_ERANGE;
} }
/* QSE: handle \ as an escaper */
else if (re + 1 < ctx->re_end && *re == CHAR_BACKSLASH)
{
/* escaped character inside [] */
min = max = *(re + 1);
re += 2;
}
/* END QSE */
else if (re + 1 < ctx->re_end else if (re + 1 < ctx->re_end
&& *re == CHAR_LBRACKET && *(re + 1) == CHAR_PERIOD) && *re == CHAR_LBRACKET && *(re + 1) == CHAR_PERIOD)
status = REG_ECOLLATE; status = REG_ECOLLATE;