diff options
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/search.c | 4 |
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; |