aboutsummaryrefslogtreecommitdiff
path: root/posix/regcomp.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-01-16 19:20:36 +0000
committerUlrich Drepper <drepper@redhat.com>2003-01-16 19:20:36 +0000
commit7b7b9e70ea0d820c863c78fbf84fe52626a408d6 (patch)
treee790ee9854276c668b51c81e470d2aab2df0800c /posix/regcomp.c
parent850dcfcafe6c1cc9e59763a882a25a2f0c2c4d68 (diff)
downloadglibc-7b7b9e70ea0d820c863c78fbf84fe52626a408d6.zip
glibc-7b7b9e70ea0d820c863c78fbf84fe52626a408d6.tar.gz
glibc-7b7b9e70ea0d820c863c78fbf84fe52626a408d6.tar.bz2
Update.
* posix/regcomp.c (parse_bracket_exp): If build_charclass fails, set *err to the returned error, not to REG_ESPACE unconditionally. (build_word_op): Likewise. * posix/Makefile (tests): Add bug-regex16. * posix/bug-regex16.c: New test. 2003-01-16 Jakub Jelinek <jakub@redhat.com>
Diffstat (limited to 'posix/regcomp.c')
-rw-r--r--posix/regcomp.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/posix/regcomp.c b/posix/regcomp.c
index 12724e4..e36383b 100644
--- a/posix/regcomp.c
+++ b/posix/regcomp.c
@@ -2993,13 +2993,13 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
goto parse_bracket_exp_free_return;
break;
case CHAR_CLASS:
- ret = build_charclass (sbcset,
+ *err = build_charclass (sbcset,
#ifdef RE_ENABLE_I18N
- mbcset, &char_class_alloc,
+ mbcset, &char_class_alloc,
#endif /* RE_ENABLE_I18N */
- start_elem.opr.name, syntax);
- if (BE (ret != REG_NOERROR, 0))
- goto parse_bracket_exp_espace;
+ start_elem.opr.name, syntax);
+ if (BE (*err != REG_NOERROR, 0))
+ goto parse_bracket_exp_free_return;
break;
default:
assert (0);
@@ -3380,7 +3380,7 @@ build_word_op (dfa, not, err)
#ifdef RE_ENABLE_I18N
free_charset (mbcset);
#endif /* RE_ENABLE_I18N */
- *err = REG_ESPACE;
+ *err = ret;
return NULL;
}
/* \w match '_' also. */