regcomp: skip collseq lookup when there are no rules
authorUlrich Drepper <drepper@redhat.com>
Mon, 4 Jan 2010 09:59:51 +0000 (10:59 +0100)
committerJim Meyering <meyering@redhat.com>
Mon, 4 Jan 2010 15:22:18 +0000 (16:22 +0100)
* lib/regcomp.c (lookup_collation_sequence_value): From glibc:
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a532a41df58

ChangeLog
lib/regcomp.c

index a3c71c03d6a89f0f7b6491611898ecb8f93184d0..f906c28c8ad55c758d593ba1b4e103d9d781f5bd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2010-01-04  Jim Meyering  <meyering@redhat.com>
 
+       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
index 629f97142f6bd16ccd1ef7f6594cefc5741c871d..8ba0616fe16db1e73998fc098edf82284b1f351d 100644 (file)
@@ -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)
        {