From: Gerd Moellmann Date: Thu, 30 Aug 2001 08:24:22 +0000 (+0000) Subject: (Finsert_file_contents): Don't change the multibyteness X-Git-Tag: emacs-pretest-21.0.105~29 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=24766480cf30e0b283a1929a4aa107f5976981be;p=emacs.git (Finsert_file_contents): Don't change the multibyteness of the buffer if REPLACE is non-nil. --- diff --git a/src/fileio.c b/src/fileio.c index 0bd3d0221b5..1a90e511322 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -4346,25 +4346,14 @@ actually used.") } if (!NILP (visit) + /* Can't do this if part of the buffer might be preserved. */ + && NILP (replace) && (coding.type == coding_type_no_conversion || coding.type == coding_type_raw_text)) { - /* Visiting a file with these coding systems should always make - the buffer unibyte. If we happen to be replacing text in a - multibyte buffer (this happens when reverting an RMAIL - buffer), positions in the buffer, markers etc. may have byte - positions != character positions, so just setting - enable_multibyte_characters to nil doesn't suffice. */ - if (!NILP (replace) - && !NILP (current_buffer->enable_multibyte_characters)) - Fset_buffer_multibyte (Qnil); - else - /* We cannot Fset_buffer_multibyte(nil) here. When we visit a - file literally in a multibyte buffer, a call to - Fset_buffer_multibyte would change character positions, - although the buffer has unibyte contents, and that's wrong, - of course. */ - current_buffer->enable_multibyte_characters = Qnil; + /* Visiting a file with these coding system makes the buffer + unibyte. */ + current_buffer->enable_multibyte_characters = Qnil; coding.dst_multibyte = 0; }