diff options
Diffstat (limited to 'posix')
-rw-r--r-- | posix/regcomp.c | 4 | ||||
-rw-r--r-- | posix/rxspencer/tests | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/posix/regcomp.c b/posix/regcomp.c index bdd616d..ba7a1cc 100644 --- a/posix/regcomp.c +++ b/posix/regcomp.c @@ -1602,7 +1602,9 @@ calc_eclosure_iter (new_set, dfa, node, root) ? dfa->nodes[node].opr.ctx_type : 0); /* If the current node has constraints, duplicate all nodes. Since they must inherit the constraints. */ - if (constraint && !dfa->nodes[dfa->edests[node].elems[0]].duplicated) + if (constraint + && dfa->edests[node].nelem + && !dfa->nodes[dfa->edests[node].elems[0]].duplicated) { int org_node, cur_node; org_node = cur_node = node; diff --git a/posix/rxspencer/tests b/posix/rxspencer/tests index f4a3fb3..30fff15 100644 --- a/posix/rxspencer/tests +++ b/posix/rxspencer/tests @@ -505,3 +505,8 @@ Char \([a-z0-9_]*\)\[.* b Char xyz[k Char xyz[k xyz a?b - ab ab -\{0,1\}[0-9]*$ b -5 -5 a*a*a*a*a*a*a* & aaaaaa aaaaaa +(\b){0} - x @x - +\(\b\)\{0,0\} b abc @abc - +a(\b){0}c - ac ac - +a(.*)b(\0){0}c - abc abc @bc,- +a(.*)b(\0){0}c - axbc axbc x,- |