From: Kenichi Handa Date: Tue, 22 Jun 1999 23:25:16 +0000 (+0000) Subject: (Finsert_file_contents): In the case of REPALCE, call X-Git-Tag: emacs-20.4~72 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=427f5aab9d1831bbb16fa051a4210a85fdccc406;p=emacs.git (Finsert_file_contents): In the case of REPALCE, call del_range_byte instead off del_range_1, set `inserted' to the number of characters actually inserted. --- diff --git a/src/fileio.c b/src/fileio.c index f5371e6ee38..893073d9cd7 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -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);