From 50342b352008fb2695ffbd1ae1f98c26c6937878 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Tue, 9 Apr 2002 07:42:06 +0000 Subject: [PATCH 1/1] (Finsert_file_contents): Fix calculation of `inserted'. Fix arguments to insert_from_buffer. --- src/fileio.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/fileio.c b/src/fileio.c index eb12810eea..90856d7555 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -4025,6 +4025,8 @@ actually used. */) { int same_at_start = BEGV_BYTE; int same_at_end = ZV_BYTE; + int same_at_start_charpos; + int inserted_chars; int overlap; int bufpos; unsigned char *decoded; @@ -4103,7 +4105,8 @@ actually used. */) } decoded = BUF_BEG_ADDR (XBUFFER (conversion_buffer)); - inserted = BUF_Z_BYTE (XBUFFER (conversion_buffer)); + inserted = (BUF_Z_BYTE (XBUFFER (conversion_buffer)) + - BUF_BEG_BYTE (XBUFFER (conversion_buffer))); /* Compare the beginning of the converted string with the buffer text. */ @@ -4176,12 +4179,15 @@ actually used. */) } /* Insert from the file at the proper position. */ SET_PT_BOTH (temp, same_at_start); + same_at_start_charpos + = buf_bytepos_to_charpos (XBUFFER (conversion_buffer), + same_at_start); + inserted_chars + = (buf_bytepos_to_charpos (XBUFFER (conversion_buffer), + same_at_start + inserted) + - same_at_start_charpos); insert_from_buffer (XBUFFER (conversion_buffer), - buf_bytepos_to_charpos (XBUFFER (conversion_buffer), - same_at_start), - buf_bytepos_to_charpos (XBUFFER (conversion_buffer), - same_at_start + inserted), - 0); + same_at_start_charpos, inserted_chars, 0); /* Set `inserted' to the number of inserted characters. */ inserted = PT - temp; -- 2.20.1