mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
2003-12-21 Jakub Jelinek <jakub@redhat.com> * posix/regcomp.c (duplicate_node, duplicate_node_closure): Revert 2003-11-24 changes. * posix/regexec.c (group_nodes_into_DFAstates): For CHARACTER with NEXT_{,NOT}WORD_CONSTRAINT check word_char bit. * posix/bug-regex19.c (tests): Add new tests. * posix/regexec.c (check_dst_limits_calc_pos): Fix formatting. * posix/regcomp.c (parse_dup_op): Return NULL if dup_elem is NULL, after checking syntax. Optimize. (calc_first): Fix comment. * posix/bug-regex13.c (tests): Add new tests.
This commit is contained in:
15
ChangeLog
15
ChangeLog
@ -1,3 +1,18 @@
|
||||
2003-12-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* posix/regcomp.c (duplicate_node, duplicate_node_closure): Revert
|
||||
2003-11-24 changes.
|
||||
* posix/regexec.c (group_nodes_into_DFAstates): For CHARACTER with
|
||||
NEXT_{,NOT}WORD_CONSTRAINT check word_char bit.
|
||||
* posix/bug-regex19.c (tests): Add new tests.
|
||||
|
||||
* posix/regexec.c (check_dst_limits_calc_pos): Fix formatting.
|
||||
|
||||
* posix/regcomp.c (parse_dup_op): Return NULL if dup_elem is NULL,
|
||||
after checking syntax. Optimize.
|
||||
(calc_first): Fix comment.
|
||||
* posix/bug-regex13.c (tests): Add new tests.
|
||||
|
||||
2003-12-21 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* manual/arith.texi (Parsing of Integers): Typo fix.
|
||||
|
@ -34,7 +34,33 @@ static struct
|
||||
} tests[] = {
|
||||
{RE_BACKSLASH_ESCAPE_IN_LISTS, "[0\\-9]", "1", -1}, /* It should not match. */
|
||||
{RE_BACKSLASH_ESCAPE_IN_LISTS, "[0\\-9]", "-", 0}, /* It should match. */
|
||||
{RE_SYNTAX_POSIX_BASIC, "s1\n.*\ns3", "s1\ns2\ns3", 0}
|
||||
{RE_SYNTAX_POSIX_BASIC, "s1\n.*\ns3", "s1\ns2\ns3", 0},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}c", "ac", 0},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}c", "abc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}c", "abbc", -1},
|
||||
/* Nested duplication. */
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{1}{1}c", "ac", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{1}{1}c", "abc", 0},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{1}{1}c", "abbc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{2}{2}c", "ac", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{2}{2}c", "abbc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{2}{2}c", "abbbbc", 0},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{2}{2}c", "abbbbbc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}{1}c", "ac", 0},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}{1}c", "abc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}{1}c", "abbc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{1}{0}c", "ac", 0},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{1}{0}c", "abc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{1}{0}c", "abbc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}*c", "ac", 0},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}*c", "abc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}*c", "abbc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}?c", "ac", 0},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}?c", "abc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}?c", "abbc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}+c", "ac", 0},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}+c", "abc", -1},
|
||||
{RE_SYNTAX_POSIX_EXTENDED, "ab{0}+c", "abbc", -1},
|
||||
};
|
||||
|
||||
int
|
||||
|
@ -246,6 +246,9 @@ static struct test_s
|
||||
{ERE, "(\\<|[A].)[A~C]", "DACC", 0, 1},
|
||||
{ERE, "(\\<|[A].)[A~C]", "B!A=", 0, 2},
|
||||
{ERE, "(\\<|[A].)[A~C]", "B~C", 0, 2},
|
||||
{ERE, "^[^A]*\\bB", "==B", 0, 0},
|
||||
{ERE, "^[^A]*\\bB", "CBD!=B", 0, 0},
|
||||
{ERE, "[^A]*\\bB", "==B", 2, 2}
|
||||
};
|
||||
|
||||
int
|
||||
|
@ -3416,6 +3416,11 @@ group_nodes_into_DFAstates (preg, state, dests_node, dests_ch)
|
||||
if (constraint & NEXT_WORD_CONSTRAINT)
|
||||
{
|
||||
unsigned int any_set = 0;
|
||||
if (type == CHARACTER && !node->word_char)
|
||||
{
|
||||
bitset_empty (accepts);
|
||||
continue;
|
||||
}
|
||||
#ifdef RE_ENABLE_I18N
|
||||
if (dfa->mb_cur_max > 1)
|
||||
for (j = 0; j < BITSET_UINTS; ++j)
|
||||
@ -3430,6 +3435,11 @@ group_nodes_into_DFAstates (preg, state, dests_node, dests_ch)
|
||||
if (constraint & NEXT_NOTWORD_CONSTRAINT)
|
||||
{
|
||||
unsigned int any_set = 0;
|
||||
if (type == CHARACTER && node->word_char)
|
||||
{
|
||||
bitset_empty (accepts);
|
||||
continue;
|
||||
}
|
||||
#ifdef RE_ENABLE_I18N
|
||||
if (dfa->mb_cur_max > 1)
|
||||
for (j = 0; j < BITSET_UINTS; ++j)
|
||||
|
Reference in New Issue
Block a user