aboutsummaryrefslogtreecommitdiff
path: root/posix/regcomp.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-11-26 03:24:15 +0000
committerUlrich Drepper <drepper@redhat.com>2003-11-26 03:24:15 +0000
commit97fd3a3003b9eb980395417ffb104e02bf315fe8 (patch)
treea182a950fc4f7d23c60dac89ee85bad2aae696c9 /posix/regcomp.c
parent65e6becf5b1b9ca1e911986d030b8b31b5dd4cfa (diff)
downloadglibc-97fd3a3003b9eb980395417ffb104e02bf315fe8.tar
glibc-97fd3a3003b9eb980395417ffb104e02bf315fe8.tar.gz
glibc-97fd3a3003b9eb980395417ffb104e02bf315fe8.tar.bz2
glibc-97fd3a3003b9eb980395417ffb104e02bf315fe8.zip
Update.
2003-11-25 Ulrich Drepper <drepper@redhat.com> * posix/runptests.c (main): Make errors fatal. * posix/PTESTS: One test in GA135 and GA136 check functionality which seems not guaranteed. 2003-11-25 Jakub Jelinek <jakub@redhat.com> * posix/regexec.c (re_search_internal): If prune_impossible_nodes returned REG_NOMATCH, set match_last to -1. Don't initialize pmatch[0] needlessly. Fix comment. (prune_impossible_nodes): Don't segfault on NULL state_log entry. (set_regs): Fix comment. * posix/regcomp.c (parse_bracket_exp): Only set has_plural_match if adding both SIMPLE_BRACKET and COMPLEX_BRACKET. (build_charclass_op): Set has_plural_match if adding both SIMPLE_BRACKET and COMPLEX_BRACKET. * posix/bug-regex11.c (tests): Fix register values for one commented out test. Add new tests. * posix/regex_internal.c (re_string_allocate): Make sure init_len is at least dfa->mb_cur_max. (re_string_reconstruct): If is_utf8, don't fall back into re_string_skip_chars just because idx points into a middle of valid UTF-8 character. Instead, set the wcs bytes which correspond to the partial character bytes to WEOF. * posix/regexec.c (re_search_internal): Allocate input.bufs_len + 1 instead of dfa->nodes_len + 1 state_log entries initially. * posix/bug-regex20.c (main): Uncomment backwards case insensitive tests.
Diffstat (limited to 'posix/regcomp.c')
-rw-r--r--posix/regcomp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/posix/regcomp.c b/posix/regcomp.c
index 52f1fa23e1..1f1c85926e 100644
--- a/posix/regcomp.c
+++ b/posix/regcomp.c
@@ -3213,7 +3213,6 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
int sbc_idx;
/* Build a tree for complex bracket. */
dfa->has_mb_node = 1;
- dfa->has_plural_match = 1;
for (sbc_idx = 0; sbc_idx < BITSET_UINTS; ++sbc_idx)
if (sbcset[sbc_idx])
break;
@@ -3233,6 +3232,7 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
goto parse_bracket_exp_espace;
/* Then join them by ALT node. */
alt_token.type = OP_ALT;
+ dfa->has_plural_match = 1;
work_tree = re_dfa_add_tree_node (dfa, work_tree, mbc_tree, &alt_token);
if (BE (mbc_tree != NULL, 1))
return work_tree;
@@ -3627,6 +3627,7 @@ build_charclass_op (dfa, trans, class_name, extra, not, err)
goto build_word_op_espace;
/* Then join them by ALT node. */
alt_token.type = OP_ALT;
+ dfa->has_plural_match = 1;
tree = re_dfa_add_tree_node (dfa, tree, mbc_tree, &alt_token);
if (BE (mbc_tree != NULL, 1))
return tree;