(Finsert_file_contents): Set coding's dest_multibyte
authorGerd Moellmann <gerd@gnu.org>
Fri, 24 Aug 2001 08:35:09 +0000 (08:35 +0000)
committerGerd Moellmann <gerd@gnu.org>
Fri, 24 Aug 2001 08:35:09 +0000 (08:35 +0000)
to 0 also in the REPLACE case.

src/ChangeLog
src/fileio.c

index 18e0ce0..0cc3e9d 100644 (file)
@@ -1,3 +1,8 @@
+2001-08-24  Gerd Moellmann  <gerd@gnu.org>
+
+       * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
+       to 0 also in the REPLACE case.
+
 2001-08-24  Andrew Choi  <akochoi@cse.cuhk.edu.hk>
 
        * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
index 0b33668..c9fe583 100644 (file)
@@ -4343,16 +4343,18 @@ actually used.")
       && (coding.type == coding_type_no_conversion
          || coding.type == coding_type_raw_text))
     {
-      /* Visiting a file with these coding system always make the buffer
-        unibyte. */
+      /* 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
-       {
-         current_buffer->enable_multibyte_characters = Qnil;
-         coding.dst_multibyte = 0;
-       }
+       current_buffer->enable_multibyte_characters = Qnil;
+      coding.dst_multibyte = 0;
     }
 
   if (inserted > 0 || coding.type == coding_type_ccl)