From: Kenichi Handa Date: Tue, 20 Aug 2002 08:32:34 +0000 (+0000) Subject: (Freplace_match): Fix for the unibyte case. X-Git-Tag: emacs-pretest-23.0.90~8295^2~1864^2~412 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=096a353dd1c93a24e64c76b8b8487bca8312541c;p=emacs.git (Freplace_match): Fix for the unibyte case. --- diff --git a/src/search.c b/src/search.c index 5ce999ef4d7..efc1c35bdc2 100644 --- a/src/search.c +++ b/src/search.c @@ -2245,14 +2245,20 @@ since only regular expressions have distinguished subexpressions. */) { /* Decide how to casify by examining the matched text. */ int last; + int multibyte; pos = search_regs.start[sub]; last = search_regs.end[sub]; if (NILP (string)) - pos_byte = CHAR_TO_BYTE (pos); + { + pos_byte = CHAR_TO_BYTE (pos); + multibyte = ! NILP (current_buffer->enable_multibyte_characters); else - pos_byte = string_char_to_byte (string, pos); + { + pos_byte = string_char_to_byte (string, pos); + multibyte = STRING_MULTIBYTE (string); + } prevc = '\n'; case_action = all_caps; @@ -2273,6 +2279,10 @@ since only regular expressions have distinguished subexpressions. */) } else FETCH_STRING_CHAR_ADVANCE (c, string, pos, pos_byte); + if (! multibyte) + { + MAKE_CHAR_MULTIBYTE (c); + } if (LOWERCASEP (c)) {