diff options
-rw-r--r-- | jimregexp.c | 15 | ||||
-rw-r--r-- | 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 |