From: Ulrich Drepper Date: Mon, 4 Jan 2010 09:59:51 +0000 (+0100) Subject: regcomp: skip collseq lookup when there are no rules X-Git-Tag: v0.1~4916 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;h=d772599442c94bf820e40108aa5c32fa3933d821;p=gnulib.git regcomp: skip collseq lookup when there are no rules * lib/regcomp.c (lookup_collation_sequence_value): From glibc: http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a532a41df58 --- diff --git a/ChangeLog b/ChangeLog index a3c71c03d..f906c28c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2010-01-04 Jim Meyering + regcomp: skip collseq lookup when there are no rules + * lib/regcomp.c (lookup_collation_sequence_value): From glibc: + http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a532a41df58 + regcomp: recognize ill-formed { } expressions * lib/regcomp.c (parse_dup_op): From glibc: http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a87cd2894cb diff --git a/lib/regcomp.c b/lib/regcomp.c index 629f97142..8ba0616fe 100644 --- a/lib/regcomp.c +++ b/lib/regcomp.c @@ -2804,7 +2804,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, return elem; } - /* Local function for parse_bracket_exp used in _LIBC environement. + /* Local function for parse_bracket_exp used in _LIBC environment. Look up the collation sequence value of BR_ELEM. Return the value if succeeded, UINT_MAX otherwise. */ @@ -2828,7 +2828,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, } else if (br_elem->type == MB_CHAR) { - return __collseq_table_lookup (collseqwc, br_elem->opr.wch); + if (nrules != 0) + return __collseq_table_lookup (collseqwc, br_elem->opr.wch); } else if (br_elem->type == COLL_SYM) {