(search_buffer): Set char_base to zero only at the end.
This commit is contained in:
parent
ff37360cdc
commit
dafaabd183
2 changed files with 11 additions and 9 deletions
|
@ -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
|
||||
|
|
16
src/search.c
16
src/search.c
|
@ -1340,11 +1340,7 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
|
|||
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 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
|
|||
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 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
|
|||
}
|
||||
}
|
||||
}
|
||||
if (char_base < 0)
|
||||
char_base = 0;
|
||||
|
||||
/* Store this character into the translated pattern. */
|
||||
bcopy (str, pat, charlen);
|
||||
|
@ -1377,6 +1370,11 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
|
|||
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
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue