]> git.eshelyaron.com Git - emacs.git/commitdiff
(boyer_moore): Fix handling of mulitbyte character translation.
authorKenichi Handa <handa@m17n.org>
Tue, 7 May 2002 12:46:21 +0000 (12:46 +0000)
committerKenichi Handa <handa@m17n.org>
Tue, 7 May 2002 12:46:21 +0000 (12:46 +0000)
src/search.c

index 746463fe0a1410ca77563f8c9925d2ab69965b8a..5ce999ef4d75abbdd1d033166c929d39faf771a2 100644 (file)
@@ -1639,8 +1639,9 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
              this_translated = 0;
            }
 
-         if (ch > 0400)
-           j = ((unsigned char) ch) | 0200;
+         if (this_translated
+             && ch >= 0200)
+           j = (ch & 0x3F) | 0200;
          else
            j = (unsigned char) ch;
 
@@ -1657,8 +1658,8 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
              while (1)
                {
                  TRANSLATE (ch, inverse_trt, ch);
-                 if (ch > 0400)
-                   j = ((unsigned char) ch) | 0200;
+                 if (ch > 0200)
+                   j = (ch & 0x3F) | 0200;
                  else
                    j = (unsigned char) ch;