diff options
author | Kenichi Handa <handa@m17n.org> | 2002-08-20 08:32:34 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2002-08-20 08:32:34 +0000 |
commit | 096a353dd1c93a24e64c76b8b8487bca8312541c (patch) | |
tree | 43033fef55659f7450445176bc8adb6d1dfe34de /src | |
parent | 16747e037d9e305a19b790ceddf3618e86fd8a4c (diff) | |
download | emacs-096a353dd1c93a24e64c76b8b8487bca8312541c.tar.gz |
(Freplace_match): Fix for the unibyte case.
Diffstat (limited to 'src')
-rw-r--r-- | src/search.c | 14 |
1 files changed, 12 insertions, 2 deletions
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)) { |