about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--posix/regcomp.c10
-rw-r--r--posix/regex.h2
-rw-r--r--posix/regex_internal.c2
-rw-r--r--posix/regex_internal.h2
-rw-r--r--posix/regexec.c2
6 files changed, 18 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 0c80faad1a..7eb5f79578 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2005-09-22  Ulrich Drepper  <drepper@redhat.com>
 
+	[BZ #281]
+	* posix/regex.h: Define RE_TRANSLATE_TYPE as unsigned char *.
+	* posix/regcomp.c: Remove unnecessary uses of
+	unsigned RE_TRANSLATE_TYPE.
+	* posix/regex_internal.h: Likewise.
+	* posix/regex_internal.c: Likewise.
+	* posix/regexexec.c: Likewise.
+	Based on a patch by Stepan Kasal <kasal@ucw.cz>.
+
 	[BZ #1035]
 	* locale/iso-4217.def: Replace TRL entry with TRY for new Turkish Lira.
 
diff --git a/posix/regcomp.c b/posix/regcomp.c
index c93f79ea24..bf374a8b61 100644
--- a/posix/regcomp.c
+++ b/posix/regcomp.c
@@ -117,7 +117,7 @@ static reg_errcode_t build_equiv_class (re_bitset_ptr_t sbcset,
 					re_charset_t *mbcset,
 					int *equiv_class_alloc,
 					const unsigned char *name);
-static reg_errcode_t build_charclass (unsigned RE_TRANSLATE_TYPE trans,
+static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
 				      re_bitset_ptr_t sbcset,
 				      re_charset_t *mbcset,
 				      int *char_class_alloc,
@@ -126,13 +126,13 @@ static reg_errcode_t build_charclass (unsigned RE_TRANSLATE_TYPE trans,
 #else  /* not RE_ENABLE_I18N */
 static reg_errcode_t build_equiv_class (re_bitset_ptr_t sbcset,
 					const unsigned char *name);
-static reg_errcode_t build_charclass (unsigned RE_TRANSLATE_TYPE trans,
+static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
 				      re_bitset_ptr_t sbcset,
 				      const unsigned char *class_name,
 				      reg_syntax_t syntax);
 #endif /* not RE_ENABLE_I18N */
 static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
-				       unsigned RE_TRANSLATE_TYPE trans,
+				       RE_TRANSLATE_TYPE trans,
 				       const unsigned char *class_name,
 				       const unsigned char *extra,
 				       int non_match, reg_errcode_t *err);
@@ -3559,7 +3559,7 @@ build_charclass (trans, sbcset, mbcset, char_class_alloc, class_name, syntax)
 #else /* not RE_ENABLE_I18N */
 build_charclass (trans, sbcset, class_name, syntax)
 #endif /* not RE_ENABLE_I18N */
-     unsigned RE_TRANSLATE_TYPE trans;
+     RE_TRANSLATE_TYPE trans;
      re_bitset_ptr_t sbcset;
      const unsigned char *class_name;
      reg_syntax_t syntax;
@@ -3634,7 +3634,7 @@ build_charclass (trans, sbcset, class_name, syntax)
 static bin_tree_t *
 build_charclass_op (dfa, trans, class_name, extra, non_match, err)
      re_dfa_t *dfa;
-     unsigned RE_TRANSLATE_TYPE trans;
+     RE_TRANSLATE_TYPE trans;
      const unsigned char *class_name;
      const unsigned char *extra;
      int non_match;
diff --git a/posix/regex.h b/posix/regex.h
index e5ec398106..ba819efa41 100644
--- a/posix/regex.h
+++ b/posix/regex.h
@@ -346,7 +346,7 @@ typedef enum
    private to the regex routines.  */
 
 #ifndef RE_TRANSLATE_TYPE
-# define RE_TRANSLATE_TYPE char *
+# define RE_TRANSLATE_TYPE unsigned char *
 #endif
 
 struct re_pattern_buffer
diff --git a/posix/regex_internal.c b/posix/regex_internal.c
index 240e8872b3..2b3725f3dd 100644
--- a/posix/regex_internal.c
+++ b/posix/regex_internal.c
@@ -187,7 +187,7 @@ re_string_construct_common (str, len, pstr, trans, icase, dfa)
   pstr->raw_mbs = (const unsigned char *) str;
   pstr->len = len;
   pstr->raw_len = len;
-  pstr->trans = (unsigned RE_TRANSLATE_TYPE) trans;
+  pstr->trans = trans;
   pstr->icase = icase ? 1 : 0;
   pstr->mbs_allocated = (trans != NULL || icase);
   pstr->mb_cur_max = dfa->mb_cur_max;
diff --git a/posix/regex_internal.h b/posix/regex_internal.h
index debbe0db3b..0096bf7c91 100644
--- a/posix/regex_internal.h
+++ b/posix/regex_internal.h
@@ -345,7 +345,7 @@ struct re_string_t
      the beginning of the input string.  */
   unsigned int tip_context;
   /* The translation passed as a part of an argument of re_compile_pattern.  */
-  unsigned RE_TRANSLATE_TYPE trans;
+  RE_TRANSLATE_TYPE trans;
   /* Copy of re_dfa_t's word_char.  */
   re_const_bitset_ptr_t word_char;
   /* 1 if REG_ICASE.  */
diff --git a/posix/regexec.c b/posix/regexec.c
index 78042727f9..9df5574cdb 100644
--- a/posix/regexec.c
+++ b/posix/regexec.c
@@ -657,7 +657,7 @@ re_search_internal (preg, string, length, start, range, stop, nmatch, pmatch,
 #endif
   char *fastmap = (preg->fastmap != NULL && preg->fastmap_accurate
 		   && range && !preg->can_be_null) ? preg->fastmap : NULL;
-  unsigned RE_TRANSLATE_TYPE t = (unsigned RE_TRANSLATE_TYPE) preg->translate;
+  RE_TRANSLATE_TYPE t = preg->translate;
 
 #if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
   memset (&mctx, '\0', sizeof (re_match_context_t));