summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;