mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 07:20:11 +00:00
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>
This commit is contained in:
parent
850dcfcafe
commit
7b7b9e70ea
@ -1,3 +1,11 @@
|
|||||||
|
2003-01-16 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* 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>
|
2003-01-16 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* elf/dl-load.c (_dl_map_object_from_fd): Use
|
* elf/dl-load.c (_dl_map_object_from_fd): Use
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
2003-01-15 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/ia64/tls.h (tcbhead_t): Use the TLS ABI required layout
|
||||||
|
if USE_TLS only.
|
||||||
|
(NONTLS_INIT_TP): Revert last change.
|
||||||
|
* sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define to
|
||||||
|
offsetof (tcbhead_t, multiple_threads) if USE_TLS not defined.
|
||||||
|
|
||||||
2003-01-16 Jakub Jelinek <jakub@redhat.com>
|
2003-01-16 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* pthread.c (_pthread_initialize_minimal): Use
|
* pthread.c (_pthread_initialize_minimal): Use
|
||||||
|
@ -75,7 +75,7 @@ tests := tstgetopt testfnm runtests runptests \
|
|||||||
tst-chmod bug-regex1 bug-regex2 bug-regex3 bug-regex4 \
|
tst-chmod bug-regex1 bug-regex2 bug-regex3 bug-regex4 \
|
||||||
tst-gnuglob tst-regex bug-regex5 bug-regex6 bug-regex7 \
|
tst-gnuglob tst-regex bug-regex5 bug-regex6 bug-regex7 \
|
||||||
bug-regex8 bug-regex9 bug-regex10 bug-regex11 bug-regex12 \
|
bug-regex8 bug-regex9 bug-regex10 bug-regex11 bug-regex12 \
|
||||||
bug-regex13 bug-regex14 bug-regex15
|
bug-regex13 bug-regex14 bug-regex15 bug-regex16
|
||||||
ifeq (yes,$(build-shared))
|
ifeq (yes,$(build-shared))
|
||||||
test-srcs := globtest
|
test-srcs := globtest
|
||||||
tests += wordexp-test tst-exec tst-spawn
|
tests += wordexp-test tst-exec tst-spawn
|
||||||
|
35
posix/bug-regex16.c
Normal file
35
posix/bug-regex16.c
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/* Test re_compile_pattern error messages. */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <regex.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
struct re_pattern_buffer re;
|
||||||
|
const char *s;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
re_set_syntax (RE_SYNTAX_POSIX_EGREP);
|
||||||
|
memset (&re, 0, sizeof (re));
|
||||||
|
s = re_compile_pattern ("[[.invalid_collating_symbol.]]", 30, &re);
|
||||||
|
if (s == NULL || strcmp (s, "Invalid collation character"))
|
||||||
|
{
|
||||||
|
printf ("re_compile_pattern returned %s\n", s);
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
s = re_compile_pattern ("[[=invalid_equivalence_class=]]", 31, &re);
|
||||||
|
if (s == NULL || strcmp (s, "Invalid collation character"))
|
||||||
|
{
|
||||||
|
printf ("re_compile_pattern returned %s\n", s);
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
s = re_compile_pattern ("[[:invalid_character_class:]]", 29, &re);
|
||||||
|
if (s == NULL || strcmp (s, "Invalid character class name"))
|
||||||
|
{
|
||||||
|
printf ("re_compile_pattern returned %s\n", s);
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
@ -2993,13 +2993,13 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
|
|||||||
goto parse_bracket_exp_free_return;
|
goto parse_bracket_exp_free_return;
|
||||||
break;
|
break;
|
||||||
case CHAR_CLASS:
|
case CHAR_CLASS:
|
||||||
ret = build_charclass (sbcset,
|
*err = build_charclass (sbcset,
|
||||||
#ifdef RE_ENABLE_I18N
|
#ifdef RE_ENABLE_I18N
|
||||||
mbcset, &char_class_alloc,
|
mbcset, &char_class_alloc,
|
||||||
#endif /* RE_ENABLE_I18N */
|
#endif /* RE_ENABLE_I18N */
|
||||||
start_elem.opr.name, syntax);
|
start_elem.opr.name, syntax);
|
||||||
if (BE (ret != REG_NOERROR, 0))
|
if (BE (*err != REG_NOERROR, 0))
|
||||||
goto parse_bracket_exp_espace;
|
goto parse_bracket_exp_free_return;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert (0);
|
assert (0);
|
||||||
@ -3380,7 +3380,7 @@ build_word_op (dfa, not, err)
|
|||||||
#ifdef RE_ENABLE_I18N
|
#ifdef RE_ENABLE_I18N
|
||||||
free_charset (mbcset);
|
free_charset (mbcset);
|
||||||
#endif /* RE_ENABLE_I18N */
|
#endif /* RE_ENABLE_I18N */
|
||||||
*err = REG_ESPACE;
|
*err = ret;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
/* \w match '_' also. */
|
/* \w match '_' also. */
|
||||||
|
Loading…
Reference in New Issue
Block a user