Mercurial > emacs
changeset 21138:d10664297ed2
(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.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Thu, 12 Mar 1998 00:38:28 +0000 |
parents | f4df45f5a0e2 |
children | 48b83e612b06 |
files | src/fileio.c |
diffstat | 1 files changed, 19 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- 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;