summaryrefslogtreecommitdiff
path: root/src/search.c
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2002-05-13 00:06:01 +0000
committerKenichi Handa <handa@m17n.org>2002-05-13 00:06:01 +0000
commitd2ac725b65f01ccc03c025eb9673403c4754c1c9 (patch)
tree0d88d16d05505487063f22424f8fe70d1a115a3b /src/search.c
parent4d8ff34d5ca44e0ee1cb8655e1710c17fed9ec0e (diff)
downloademacs-d2ac725b65f01ccc03c025eb9673403c4754c1c9.tar.gz
(search_buffer): Give up boyer moore search if inverse
translation change charset_base.
Diffstat (limited to 'src/search.c')
-rw-r--r--src/search.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/search.c b/src/search.c
index d4d97726375..643a57d59ca 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1229,7 +1229,11 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
/* Keep track of which character set row
contains the characters that need translation. */
int charset_base_code = c & ~CHAR_FIELD3_MASK;
- if (charset_base == -1)
+ int inverse_charset_base = inverse & ~CHAR_FIELD3_MASK;
+
+ if (charset_base_code != inverse_charset_base)
+ boyer_moore_ok = 0;
+ else if (charset_base == -1)
charset_base = charset_base_code;
else if (charset_base != charset_base_code)
/* If two different rows appear, needing translation,