From edb7b4dc8b089385d8b0d12081227fc416fae23e Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Wed, 7 Sep 2011 18:48:37 +0200 Subject: [PATCH] * src/search.c (boyer_moore): Take unibyte characters from pattern literally. (Bug#9458) --- src/ChangeLog | 5 +++++ 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 + + * search.c (boyer_moore): Take unibyte characters from pattern + literally. (Bug#9458) + 2011-08-30 Chong Yidong * 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; -- 2.11.4.GIT