about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--posix/regcomp.c61
1 files changed, 30 insertions, 31 deletions
diff --git a/posix/regcomp.c b/posix/regcomp.c
index 9406383283..84fed2e87b 100644
--- a/posix/regcomp.c
+++ b/posix/regcomp.c
@@ -130,30 +130,30 @@ static reg_errcode_t build_range_exp (re_bitset_ptr_t sbcset,
 static reg_errcode_t build_collating_symbol (re_bitset_ptr_t sbcset,
                                              re_charset_t *mbcset,
                                              int *coll_sym_alloc,
-                                             unsigned char *name);
+                                             char *name);
 # else /* not RE_ENABLE_I18N */
 static reg_errcode_t build_range_exp (re_bitset_ptr_t sbcset,
                                       bracket_elem_t *start_elem,
                                       bracket_elem_t *end_elem);
 static reg_errcode_t build_collating_symbol (re_bitset_ptr_t sbcset,
-                                             unsigned char *name);
+                                             char *name);
 # endif /* not RE_ENABLE_I18N */
 #endif /* not _LIBC */
 #ifdef RE_ENABLE_I18N
 static reg_errcode_t build_equiv_class (re_bitset_ptr_t sbcset,
                                         re_charset_t *mbcset,
                                         int *equiv_class_alloc,
-                                        const unsigned char *name);
+                                        const char *name);
 static reg_errcode_t build_charclass (re_bitset_ptr_t sbcset,
                                       re_charset_t *mbcset,
                                       int *char_class_alloc,
-                                      const unsigned char *class_name,
+                                      const char *class_name,
                                       reg_syntax_t syntax);
 #else  /* not RE_ENABLE_I18N */
 static reg_errcode_t build_equiv_class (re_bitset_ptr_t sbcset,
-                                        const unsigned char *name);
+                                        const char *name);
 static reg_errcode_t build_charclass (re_bitset_ptr_t sbcset,
-                                      const unsigned char *class_name,
+                                      const char *class_name,
                                       reg_syntax_t syntax);
 #endif /* not RE_ENABLE_I18N */
 static bin_tree_t *build_word_op (re_dfa_t *dfa, int not, reg_errcode_t *err);
@@ -271,8 +271,7 @@ re_compile_pattern (pattern, length, bufp)
   /* Match anchors at newline.  */
   bufp->newline_anchor = 1;
 
-  ret = re_compile_internal (bufp, (const unsigned char *) pattern, length,
-                             re_syntax_options);
+  ret = re_compile_internal (bufp, pattern, length, re_syntax_options);
 
   if (!ret)
     return NULL;
@@ -397,9 +396,9 @@ re_compile_fastmap_iter (bufp, init_state, fastmap)
             }
           for (i = 0; i < cset->nmbchars; ++i)
             {
-              unsigned char buf[256];
+              char buf[256];
               wctomb (buf, cset->mbchars[i]);
-              fastmap[buf[0]] = 1;
+              fastmap[*(unsigned char *) buf] = 1;
             }
         }
 #endif /* RE_ENABLE_I18N */
@@ -455,8 +454,8 @@ re_compile_fastmap_iter (bufp, init_state, fastmap)
 
 int
 regcomp (preg, pattern, cflags)
-    regex_t *preg;
-    const char *pattern;
+    regex_t *__restrict preg;
+    const char *__restrict pattern;
     int cflags;
 {
   reg_errcode_t ret;
@@ -2389,13 +2388,13 @@ build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name)
 build_collating_symbol (sbcset, name)
 # endif /* not RE_ENABLE_I18N */
      re_bitset_ptr_t sbcset;
-     unsigned char *name;
+     char *name;
 {
   if (BE (strlen (name) != 1, 0))
     return REG_ECOLLATE;
   else
     {
-      bitset_set (sbcset, name[0]);
+      bitset_set (sbcset, *(unsigned char *) name);
       return REG_NOERROR;
     }
 }
@@ -2413,7 +2412,7 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
      reg_errcode_t *err;
 {
 #ifdef _LIBC
-  const unsigned char *collseqmb, *collseqwc;
+  const char *collseqmb, *collseqwc;
   uint32_t nrules;
   int32_t table_size;
   const int32_t *symb_table;
@@ -2425,7 +2424,7 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
 
   static inline int32_t
   seek_collating_symbol_entry (name, name_len)
-         unsigned char *name;
+         char *name;
          size_t name_len;
     {
       int32_t hash = elem_hash (name, name_len);
@@ -2506,11 +2505,11 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
                 {
                   /* No valid character.  Match it as a single byte
                      character.  */
-                  return collseqmb[br_elem->opr.name[0]];
+                  return collseqmb[*(unsigned char *) br_elem->opr.name];
                 }
             }
           else if (strlen (br_elem->opr.name) == 1)
-            return collseqmb[br_elem->opr.name[0]];
+            return collseqmb[*(unsigned char *) br_elem->opr.name];
         }
       return UINT_MAX;
     }
@@ -2617,7 +2616,7 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
   build_collating_symbol (sbcset, name)
 # endif /* not RE_ENABLE_I18N */
          re_bitset_ptr_t sbcset;
-         unsigned char *name;
+         char *name;
     {
       int32_t elem, idx;
       if (nrules != 0)
@@ -2634,7 +2633,7 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
             {
               /* No valid character, treat it as a normal
                  character.  */
-              bitset_set (sbcset, name[0]);
+              bitset_set (sbcset, *(unsigned char *) name);
               return REG_NOERROR;
             }
           else
@@ -2665,7 +2664,7 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
             return REG_ECOLLATE;
           else
             {
-              bitset_set (sbcset, name[0]);
+              bitset_set (sbcset, *(unsigned char *) name);
               return REG_NOERROR;
             }
         }
@@ -2751,8 +2750,8 @@ parse_bracket_exp (regexp, dfa, token, syntax, err)
   while (1)
     {
       bracket_elem_t start_elem, end_elem;
-      unsigned char start_name_buf[BRACKET_NAME_BUF_SIZE];
-      unsigned char end_name_buf[BRACKET_NAME_BUF_SIZE];
+      char start_name_buf[BRACKET_NAME_BUF_SIZE];
+      char end_name_buf[BRACKET_NAME_BUF_SIZE];
       reg_errcode_t ret;
       int token_len2 = 0, is_range_exp = 0;
       re_token_t token2;
@@ -3024,7 +3023,7 @@ build_equiv_class (sbcset, mbcset, equiv_class_alloc, name)
 build_equiv_class (sbcset, name)
 #endif /* not RE_ENABLE_I18N */
      re_bitset_ptr_t sbcset;
-     const unsigned char *name;
+     const char *name;
 {
 #if defined _LIBC && defined RE_ENABLE_I18N
   uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
@@ -3032,14 +3031,14 @@ build_equiv_class (sbcset, name)
     {
       const int32_t *table, *indirect;
       const unsigned char *weights, *extra, *cp;
-      unsigned char char_buf[2];
+      char char_buf[2];
       int32_t idx1, idx2;
       unsigned int ch;
       size_t len;
       /* This #include defines a local function!  */
 # include <locale/weight.h>
       /* Calculate the index for equivalence class.  */
-      cp = name;
+      cp = (const unsigned char *) name;
       table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
       weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
 					       _NL_COLLATE_WEIGHTMB);
@@ -3048,7 +3047,7 @@ build_equiv_class (sbcset, name)
       indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
                                                 _NL_COLLATE_INDIRECTMB);
       idx1 = findidx (&cp);
-      if (BE (idx1 == 0 || cp < name + strlen (name), 0))
+      if (BE (idx1 == 0 || (const char *) cp < name + strlen (name), 0))
         /* This isn't a valid character.  */
         return REG_ECOLLATE;
 
@@ -3058,7 +3057,7 @@ build_equiv_class (sbcset, name)
       for (ch = 0; ch < SBC_MAX; ++ch)
         {
           char_buf[0] = ch;
-          cp = char_buf;
+          cp = (unsigned char *) char_buf;
           idx2 = findidx (&cp);
 /*
           idx2 = table[ch];
@@ -3096,7 +3095,7 @@ build_equiv_class (sbcset, name)
     {
       if (BE (strlen (name) != 1, 0))
         return REG_ECOLLATE;
-      bitset_set (sbcset, name[0]);
+      bitset_set (sbcset, *(unsigned char *) name);
     }
   return REG_NOERROR;
 }
@@ -3116,11 +3115,11 @@ build_charclass (sbcset, mbcset, char_class_alloc, class_name, syntax)
 build_charclass (sbcset, class_name, syntax)
 #endif /* not RE_ENABLE_I18N */
      re_bitset_ptr_t sbcset;
-     const unsigned char *class_name;
+     const char *class_name;
      reg_syntax_t syntax;
 {
   int i;
-  const unsigned char *name = class_name;
+  const char *name = class_name;
 
   /* In case of REG_ICASE "upper" and "lower" match the both of
      upper and lower cases.  */