# HG changeset patch # User Kenichi Handa # Date 889663108 0 # Node ID d10664297ed2226daf742bee88c7444e2e37b5bb # Parent f4df45f5a0e25696284e10c60f312210fd2b648f (Finsert_file_contents): Don't do position adjustments and handling post-read-conversion here, they are done in code_convert_region. Even if a file is read by no-conversion, call adjust_after_replace to adjust positions. diff -r f4df45f5a0e2 -r d10664297ed2 src/fileio.c --- a/src/fileio.c Wed Mar 11 22:08:24 1998 +0000 +++ b/src/fileio.c Thu Mar 12 00:38:28 1998 +0000 @@ -3776,6 +3776,25 @@ inserted = (NILP (current_buffer->enable_multibyte_characters) ? coding.produced : coding.produced_char); } + else if (!NILP (current_buffer->enable_multibyte_characters)) + { + int inserted_byte = inserted; + + /* At first, reset positions to the state of before + insertion. */ + GAP_SIZE += inserted; + GPT_BYTE -= inserted; + ZV_BYTE -= inserted; + Z_BYTE -= inserted; + GPT -= inserted; + 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); + } #ifdef DOS_NT /* Use the conversion type to determine buffer-file-type @@ -3787,24 +3806,6 @@ else current_buffer->buffer_file_type = Qt; #endif - - record_insert (PT, inserted); - - /* Only defined if Emacs is compiled with USE_TEXT_PROPERTIES */ - offset_intervals (current_buffer, PT, inserted); - MODIFF++; - - if (! NILP (coding.post_read_conversion)) - { - Lisp_Object val; - - val = call1 (coding.post_read_conversion, make_number (inserted)); - if (!NILP (val)) - { - CHECK_NUMBER (val, 0); - inserted = XFASTINT (val); - } - } } set_coding_system = 1;