From c8abfa88a3319425921064d045679614a1b4a550 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Thu, 9 Jun 2011 11:44:03 +1000 Subject: Revert regexp nested repeats from b34ab2f895 Nested repeats can't really be handled properly, so remove support since it breaks some non-nested cases. Signed-off-by: Steve Bennett --- jimregexp.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'jimregexp.c') diff --git a/jimregexp.c b/jimregexp.c index f67031b..8da9347 100644 --- a/jimregexp.c +++ b/jimregexp.c @@ -455,6 +455,11 @@ static int *regpiece(regex_t *preg, int *flagp) return(ret); } + if (!(flags&HASWIDTH) && op != '?') { + preg->err = REG_ERR_OPERAND_COULD_BE_EMPTY; + return NULL; + } + /* Handle braces (counted repetition) by expansion */ if (op == '{') { char *end; @@ -1290,11 +1295,7 @@ static int regmatchrepeat(regex_t *preg, int *scan, int matchmin) int max = scan[2]; int min = scan[3]; - if (preg->reginput == preg->prev) { - /* If we haven't moved, no match */ - return 0; - } - preg->prev = save = preg->reginput; + save = preg->reginput; /* Have we reached min? */ if (scan[4] < min) { -- cgit v1.1