Mercurial > emacs
changeset 97759:99656f6b55ce
(search_buffer): Set char_base to zero only at the end.
author | Andreas Schwab <schwab@suse.de> |
---|---|
date | Wed, 27 Aug 2008 10:56:15 +0000 |
parents | fe0432f437b6 |
children | 89093acf32a1 |
files | src/ChangeLog src/search.c |
diffstat | 2 files changed, 11 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Wed Aug 27 07:32:00 2008 +0000 +++ b/src/ChangeLog Wed Aug 27 10:56:15 2008 +0000 @@ -1,3 +1,7 @@ +2008-08-27 Andreas Schwab <schwab@suse.de> + + * search.c (search_buffer): Set char_base to zero only at the end. + 2008-08-27 Kenichi Handa <handa@m17n.org> * fileio.c (report_file_error): Fix handling of multibyte error
--- a/src/search.c Wed Aug 27 07:32:00 2008 +0000 +++ b/src/search.c Wed Aug 27 10:56:15 2008 +0000 @@ -1340,11 +1340,7 @@ if (this_char_base > 0) boyer_moore_ok = 0; else - { - this_char_base = 0; - if (char_base < 0) - char_base = this_char_base; - } + this_char_base = 0; } else if (CHAR_BYTE8_P (inverse)) /* Boyer-moore search can't handle a @@ -1356,8 +1352,7 @@ this_char_base = inverse & ~0x3F; if (char_base < 0) char_base = this_char_base; - else if (char_base > 0 - && this_char_base != char_base) + else if (this_char_base != char_base) boyer_moore_ok = 0; } else if ((inverse & ~0x3F) != this_char_base) @@ -1368,8 +1363,6 @@ } } } - if (char_base < 0) - char_base = 0; /* Store this character into the translated pattern. */ bcopy (str, pat, charlen); @@ -1377,6 +1370,11 @@ base_pat += in_charlen; len_byte -= in_charlen; } + + /* If char_base is still negative we didn't find any translated + non-ASCII characters. */ + if (char_base < 0) + char_base = 0; } else {