changeset 21189:14e52c1a5d68

(Finsert_file_contents): Comment modified. Give adjust_after_replace the new arg REPLACE as 0.
author Kenichi Handa <handa@m17n.org>
date Mon, 16 Mar 1998 05:51:07 +0000
parents 607ce9d7cf53
children d704dd953837
files src/fileio.c
diffstat 1 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/fileio.c	Mon Mar 16 04:10:19 1998 +0000
+++ b/src/fileio.c	Mon Mar 16 05:51:07 1998 +0000
@@ -3771,6 +3771,9 @@
     {
       if (CODING_MAY_REQUIRE_DECODING (&coding))
 	{
+	  /* Here, we don't have to consider byte combining (see the
+             comment below) because code_convert_region takes care of
+             it.  */
 	  code_convert_region (PT, PT_BYTE, PT + inserted, PT_BYTE + inserted,
 			       &coding, 0, 0);
 	  inserted = (NILP (current_buffer->enable_multibyte_characters)
@@ -3780,8 +3783,11 @@
 	{
 	  int inserted_byte = inserted;
 
-	  /* At first, reset positions to the state of before
-             insertion.  */
+	  /* There's a possibility that we must combine bytes at the
+	     head (resp. the tail) of the just inserted text with the
+	     bytes before (resp. after) the gap to form a single
+	     character.  Thus, we, at first, rewind the adjusted
+	     character positions (GPT, ZV, Z), then adjust them again.  */
 	  GAP_SIZE += inserted;
 	  GPT_BYTE -= inserted;
 	  ZV_BYTE -= inserted;
@@ -3790,10 +3796,9 @@
 	  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);
+				inserted, inserted_byte, 0);
 	}
 
 #ifdef DOS_NT