changeset 12571:64d47f001127

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
author Ulrich Drepper <drepper@redhat.com>
date Mon, 04 Jan 2010 10:59:51 +0100
parents 3ed9d84fee81
children b11c0a312a68
files ChangeLog lib/regcomp.c
diffstat 2 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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
--- a/lib/regcomp.c
+++ b/lib/regcomp.c
@@ -2804,7 +2804,7 @@
       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 @@
 	}
       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)
 	{