(libfu_a_SOURCES): Add oa-hash.c.
[gnulib.git] / regex.c
diff --git a/regex.c b/regex.c
index d30a922..5a98af0 100644 (file)
--- a/regex.c
+++ b/regex.c
@@ -1540,7 +1540,7 @@ static reg_errcode_t compile_range ();
    when we use a character as a subscript we must make it unsigned.  */
 #ifndef TRANSLATE
 #define TRANSLATE(d) \
-  (translate ? (unsigned char) translate[(unsigned char) (d)] : (d))
+  (translate ? (unsigned char) RE_TRANSLATE (translate, (unsigned char) (d)) : (d))
 #endif
 
 
@@ -2185,11 +2185,11 @@ regex_compile (pattern, size, syntax, bufp)
                  }
                else
                  {
-               /* Could be the end of the bracket expression.  If it's
-                  not (i.e., when the bracket expression is `[]' so
-                  far), the ']' character bit gets set way below.  */
-               if (c == ']' && p != p1 + 1)
-                 break;
+                   /* Could be the end of the bracket expression.      If it's
+                      not (i.e., when the bracket expression is `[]' so
+                      far), the ']' character bit gets set way below.  */
+                   if (c == ']' && p != p1 + 1)
+                     break;
                  }
 
                /* If C indicates start of multibyte char, get the
@@ -2210,7 +2210,8 @@ regex_compile (pattern, size, syntax, bufp)
 
                else if (!escaped_char &&
                         syntax & RE_CHAR_CLASSES && c == '[' && *p == ':')
-                 { /* Leave room for the null.  */
+                 {
+                   /* Leave room for the null.  */
                    char str[CHAR_CLASS_MAX_LENGTH + 1];
 
                    PATFETCH (c);
@@ -3810,7 +3811,7 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
              if (translate)
                while (range > lim
                       && !fastmap[(unsigned char)
-                                  translate[(unsigned char) *d++]])
+                                  RE_TRANSLATE (translate, (unsigned char) *d++)])
                  range--;
              else
                while (range > lim && !fastmap[(unsigned char) *d++])
@@ -3856,8 +3857,10 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
          /* Update STARTPOS to the next character boundary.  */
          if (multibyte)
            {
-             const unsigned char *p = POS_ADDR_VSTRING (startpos);
-             const unsigned char *pend = STOP_ADDR_VSTRING (startpos);
+             const unsigned char *p
+               = (const unsigned char *) POS_ADDR_VSTRING (startpos);
+             const unsigned char *pend
+               = (const unsigned char *) STOP_ADDR_VSTRING (startpos);
              int len = MULTIBYTE_FORM_LENGTH (p, pend - p);
 
              range -= len;
@@ -3867,9 +3870,9 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
            }
          else
            {
-         range--;
-         startpos++;
-       }
+             range--;
+             startpos++;
+           }
        }
       else
        {
@@ -3879,7 +3882,8 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
          /* Update STARTPOS to the previous character boundary.  */
          if (multibyte)
            {
-             const unsigned char *p = POS_ADDR_VSTRING (startpos);
+             const unsigned char *p
+               = (const unsigned char *) POS_ADDR_VSTRING (startpos);
              int len = 0;
 
              /* Find the head of multibyte form.  */
@@ -4497,7 +4501,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
              do
                {
                  PREFETCH ();
-                 if ((unsigned char) translate[(unsigned char) *d++]
+                 if ((unsigned char) RE_TRANSLATE (translate, (unsigned char) *d++)
                      != (unsigned char) *p++)
                    goto fail;
                }
@@ -5892,7 +5896,8 @@ bcmp_translate (s1, s2, len, translate)
   register unsigned char *p1 = s1, *p2 = s2;
   while (len)
     {
-      if (translate[*p1++] != translate[*p2++]) return 1;
+      if (RE_TRANSLATE (translate, *p1++) != RE_TRANSLATE (translate, *p2++))
+       return 1;
       len--;
     }
   return 0;