changeset 21138:d10664297ed2

(Finsert_file_contents): Don't do position adjustments and handling post-read-conversion here, they are done in code_convert_region. Even if a file is read by no-conversion, call adjust_after_replace to adjust positions.
author Kenichi Handa <handa@m17n.org>
date Thu, 12 Mar 1998 00:38:28 +0000
parents f4df45f5a0e2
children 48b83e612b06
files src/fileio.c
diffstat 1 files changed, 19 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/src/fileio.c	Wed Mar 11 22:08:24 1998 +0000
+++ b/src/fileio.c	Thu Mar 12 00:38:28 1998 +0000
@@ -3776,6 +3776,25 @@
 	  inserted = (NILP (current_buffer->enable_multibyte_characters)
 		      ? coding.produced : coding.produced_char);
 	}
+      else if (!NILP (current_buffer->enable_multibyte_characters))
+	{
+	  int inserted_byte = inserted;
+
+	  /* At first, reset positions to the state of before
+             insertion.  */
+	  GAP_SIZE += inserted;
+	  GPT_BYTE -= inserted;
+	  ZV_BYTE -= inserted;
+	  Z_BYTE -= inserted;
+	  GPT -= inserted;
+	  ZV -= inserted;
+	  Z -= inserted;
+
+	  /* Then adjust positions.  */
+	  inserted = multibyte_chars_in_text (GPT_ADDR, inserted);
+	  adjust_after_replace (PT, PT_BYTE, PT, PT_BYTE,
+				inserted, inserted_byte);
+	}
 
 #ifdef DOS_NT
       /* Use the conversion type to determine buffer-file-type
@@ -3787,24 +3806,6 @@
       else
 	current_buffer->buffer_file_type = Qt;
 #endif
-
-      record_insert (PT, inserted);
-
-      /* Only defined if Emacs is compiled with USE_TEXT_PROPERTIES */
-      offset_intervals (current_buffer, PT, inserted);
-      MODIFF++;
-
-      if (! NILP (coding.post_read_conversion))
-	{
-	  Lisp_Object val;
-
-	  val = call1 (coding.post_read_conversion, make_number (inserted));
-	  if (!NILP (val))
-	    {
-	      CHECK_NUMBER (val, 0);
-	      inserted = XFASTINT (val);
-	    }
-	}
     }
 
   set_coding_system = 1;