+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'.
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;
+ }
}
}