From 24766480cf30e0b283a1929a4aa107f5976981be Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Thu, 30 Aug 2001 08:24:22 +0000 Subject: [PATCH] (Finsert_file_contents): Don't change the multibyteness of the buffer if REPLACE is non-nil. --- src/fileio.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) 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; } -- 2.39.5