# HG changeset patch # User Kenichi Handa # Date 1033995509 0 # Node ID 729d852f7419cb55351627276a0c558fe961c467 # Parent adc5b06c67227e76f2b22836c66031ade8172f51 (re_search_2): Fix for the case of unibyte buffer. diff -r adc5b06c6722 -r 729d852f7419 src/regex.c --- a/src/regex.c Mon Oct 07 12:57:40 2002 +0000 +++ b/src/regex.c Mon Oct 07 12:58:29 2002 +0000 @@ -4099,13 +4099,26 @@ 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; + } } }