]> code.delx.au - gnu-emacs/commitdiff
(Finsert_file_contents): In the case of REPALCE, call
authorKenichi Handa <handa@m17n.org>
Tue, 22 Jun 1999 23:25:16 +0000 (23:25 +0000)
committerKenichi Handa <handa@m17n.org>
Tue, 22 Jun 1999 23:25:16 +0000 (23:25 +0000)
del_range_byte instead off del_range_1, set `inserted' to the
number of characters actually inserted.

src/fileio.c

index f5371e6ee38dc83b7225dcb97380ab2037b9312a..893073d9cd777d4764a4254d0a5da771a8134a39 100644 (file)
@@ -3863,7 +3863,8 @@ actually used.")
          close (fd);
          specpdl_ptr--;
          /* Truncate the buffer to the size of the file.  */
-         del_range_1 (same_at_start, same_at_end, 0);
+         del_range_byte (same_at_start, same_at_end, 0);
+         inserted = 0;
          goto handled;
        }
 
@@ -3905,18 +3906,23 @@ actually used.")
         and update INSERTED to equal the number of bytes
         we are taking from the file.  */
       inserted -= (Z_BYTE - same_at_end) + (same_at_start - BEG_BYTE);
-      del_range_byte (same_at_start, same_at_end, 0);
+
       if (same_at_end != same_at_start)
-       SET_PT_BOTH (GPT, GPT_BYTE);
+       {
+         del_range_byte (same_at_start, same_at_end, 0);
+         temp = GPT;
+         same_at_start = GPT_BYTE;
+       }
       else
        {
-         /* Insert from the file at the proper position.  */
          temp = BYTE_TO_CHAR (same_at_start);
-         SET_PT_BOTH (temp, same_at_start);
        }
-
+      /* Insert from the file at the proper position.  */
+      SET_PT_BOTH (temp, same_at_start);
       insert_1 (conversion_buffer + same_at_start - BEG_BYTE, inserted,
                0, 0, 0);
+      /* Set `inserted' to the number of inserted characters.  */
+      inserted = PT - temp;
 
       free (conversion_buffer);
       close (fd);