diff options
-rw-r--r-- | posix/regcomp.c | 61 |
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. */ |