# HG changeset patch # User Kenichi Handa # Date 1018338126 0 # Node ID 51e9e2d876e1926614e64f9b9cb682a73f434c9f # Parent 826a144efb7e8744850f396b3408a80da6ed56e4 (Finsert_file_contents): Fix calculation of `inserted'. Fix arguments to insert_from_buffer. diff -r 826a144efb7e -r 51e9e2d876e1 src/fileio.c --- a/src/fileio.c Tue Apr 09 07:39:44 2002 +0000 +++ b/src/fileio.c Tue Apr 09 07:42:06 2002 +0000 @@ -4025,6 +4025,8 @@ { 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 @@ } 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 @@ } /* 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;