summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2011-09-07 18:48:37 +0200
committerAndreas Schwab <schwab@linux-m68k.org>2011-09-07 18:48:37 +0200
commitedb7b4dc8b089385d8b0d12081227fc416fae23e (patch)
treebf0462e9bdec371f166b2012220d4f5f06d0ae28
parent6e20a0d47c053a9524edfc6af390bf1e562a5020 (diff)
downloademacs-edb7b4dc8b089385d8b0d12081227fc416fae23e.tar.gz
* src/search.c (boyer_moore): Take unibyte characters from pattern
literally. (Bug#9458)
-rw-r--r--src/ChangeLog5
-rw-r--r--src/search.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 6c8f5a9305a..52f41c4cd73 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2011-09-07 Andreas Schwab <schwab@linux-m68k.org>
+
+ * search.c (boyer_moore): Take unibyte characters from pattern
+ literally. (Bug#9458)
+
2011-08-30 Chong Yidong <cyd@stupidchicken.com>
* syntax.c (find_defun_start): Update all cache variables if
diff --git a/src/search.c b/src/search.c
index 738ddf725af..8f042550af8 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1837,7 +1837,7 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
ch = -1;
}
- if (ch >= 0200)
+ if (ch >= 0200 && multibyte)
j = (ch & 0x3F) | 0200;
else
j = *ptr;
@@ -1856,7 +1856,7 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
while (1)
{
TRANSLATE (ch, inverse_trt, ch);
- if (ch >= 0200)
+ if (ch >= 0200 && multibyte)
j = (ch & 0x3F) | 0200;
else
j = ch;