From f068be5f6314710a508935474b4ac8c139bbbdaf Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Mon, 15 Nov 2010 07:08:07 +1000 Subject: Bug fix: [regexp] single braced count was rejected The form {n} should be considered the same as {n,n} Signed-off-by: Steve Bennett --- jimregexp.c | 15 ++++++++++----- tests/regexp2.test | 4 ++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/jimregexp.c b/jimregexp.c index a6b8487..47bb0f8 100644 --- a/jimregexp.c +++ b/jimregexp.c @@ -490,11 +490,16 @@ static int *regpiece(regex_t *preg, int *flagp) return NULL; } } - preg->regparse = end; - max = strtoul(preg->regparse + 1, &end, 10); - if (*end != '}') { - preg->err = REG_ERR_UNMATCHED_BRACES; - return NULL; + if (*end == '}') { + max = min; + } + else { + preg->regparse = end; + max = strtoul(preg->regparse + 1, &end, 10); + if (*end != '}') { + preg->err = REG_ERR_UNMATCHED_BRACES; + return NULL; + } } if (end == preg->regparse + 1) { max = -1; diff --git a/tests/regexp2.test b/tests/regexp2.test index a061e8b..2349a96 100644 --- a/tests/regexp2.test +++ b/tests/regexp2.test @@ -906,4 +906,8 @@ test regexp-25.1 {Repeat on escaped char} { regexp {\x41\x42*} bc } 0 +test regexp-25.2 {Single braced count} { + regexp "a{4}" baaaad +} 1 + testreport -- cgit v1.1