1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-29 07:58:28 +00:00

(re_search_2): Fix for the case of unibyte buffer.

This commit is contained in:
Kenichi Handa 2002-10-07 12:59:21 +00:00
parent c01bb36f11
commit ba5e343cad
2 changed files with 26 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2002-10-07 Kenichi Handa <handa@m17n.org>
* keymap.c (push_key_description): Pay attention to
force_multibyte.
* regex.c (re_search_2): Fix for the case of unibyte buffer.
2002-10-06 Dave Love <fx@gnu.org>
* charset.c (define_charset_internal): Rename `supprementary'.

View File

@ -4099,13 +4099,26 @@ re_search_2 (bufp, str1, size1, str2, size2, startpos, range, regs, stop)
int room = (startpos >= size1
? size2 + size1 - startpos
: size1 - startpos);
buf_ch = RE_STRING_CHAR (d, room);
if (! target_multibyte)
MAKE_CHAR_MULTIBYTE (buf_ch);
buf_ch = TRANSLATE (buf_ch);
if (! fastmap[CHAR_LEADING_CODE (buf_ch)])
goto advance;
if (multibyte)
{
/* Case of Emacs. */
if (target_multibyte)
buf_ch = RE_STRING_CHAR (d, room);
else
{
buf_ch = *d;
MAKE_CHAR_MULTIBYTE (buf_ch);
}
buf_ch = TRANSLATE (buf_ch);
if (! fastmap[CHAR_LEADING_CODE (buf_ch)])
goto advance;
}
else
{
if (! fastmap[TRANSLATE (*d)])
goto advance;
}
}
}