diff options
| author | Kim F. Storm | 2002-06-13 22:07:13 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2002-06-13 22:07:13 +0000 |
| commit | 9dde4e0c8f89a33195cdbe33fe18ce8b89e07a92 (patch) | |
| tree | b4883f7f77e0ceba8ffef33d88c281a45a9c3fc3 | |
| parent | e4f10c83edb0dd081a91cceb50164188793ac7c4 (diff) | |
| download | emacs-9dde4e0c8f89a33195cdbe33fe18ce8b89e07a92.tar.gz emacs-9dde4e0c8f89a33195cdbe33fe18ce8b89e07a92.zip | |
(insert_1_both, insert_from_string_1)
(insert_from_buffer_1): Recalculate END_UNCHANGED in case the
insert happened in the end_unchanged region. Otherwise, the
redisplay may be confused and duplicate the last line in the
buffer [seen after save-buffer when require-final-newline==t].
| -rw-r--r-- | src/insdel.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/insdel.c b/src/insdel.c index 365819b2cff..5bec29ea926 100644 --- a/src/insdel.c +++ b/src/insdel.c | |||
| @@ -1031,6 +1031,10 @@ insert_1_both (string, nchars, nbytes, inherit, prepare, before_markers) | |||
| 1031 | if (GPT_BYTE < GPT) | 1031 | if (GPT_BYTE < GPT) |
| 1032 | abort (); | 1032 | abort (); |
| 1033 | 1033 | ||
| 1034 | /* The insert may have been in the unchanged region, so check again. */ | ||
| 1035 | if (Z - GPT < END_UNCHANGED) | ||
| 1036 | END_UNCHANGED = Z - GPT; | ||
| 1037 | |||
| 1034 | adjust_overlays_for_insert (PT, nchars); | 1038 | adjust_overlays_for_insert (PT, nchars); |
| 1035 | adjust_markers_for_insert (PT, PT_BYTE, | 1039 | adjust_markers_for_insert (PT, PT_BYTE, |
| 1036 | PT + nchars, PT_BYTE + nbytes, | 1040 | PT + nchars, PT_BYTE + nbytes, |
| @@ -1154,6 +1158,10 @@ insert_from_string_1 (string, pos, pos_byte, nchars, nbytes, | |||
| 1154 | if (GPT_BYTE < GPT) | 1158 | if (GPT_BYTE < GPT) |
| 1155 | abort (); | 1159 | abort (); |
| 1156 | 1160 | ||
| 1161 | /* The insert may have been in the unchanged region, so check again. */ | ||
| 1162 | if (Z - GPT < END_UNCHANGED) | ||
| 1163 | END_UNCHANGED = Z - GPT; | ||
| 1164 | |||
| 1157 | adjust_overlays_for_insert (PT, nchars); | 1165 | adjust_overlays_for_insert (PT, nchars); |
| 1158 | adjust_markers_for_insert (PT, PT_BYTE, PT + nchars, | 1166 | adjust_markers_for_insert (PT, PT_BYTE, PT + nchars, |
| 1159 | PT_BYTE + outgoing_nbytes, | 1167 | PT_BYTE + outgoing_nbytes, |
| @@ -1301,6 +1309,10 @@ insert_from_buffer_1 (buf, from, nchars, inherit) | |||
| 1301 | if (GPT_BYTE < GPT) | 1309 | if (GPT_BYTE < GPT) |
| 1302 | abort (); | 1310 | abort (); |
| 1303 | 1311 | ||
| 1312 | /* The insert may have been in the unchanged region, so check again. */ | ||
| 1313 | if (Z - GPT < END_UNCHANGED) | ||
| 1314 | END_UNCHANGED = Z - GPT; | ||
| 1315 | |||
| 1304 | adjust_overlays_for_insert (PT, nchars); | 1316 | adjust_overlays_for_insert (PT, nchars); |
| 1305 | adjust_markers_for_insert (PT, PT_BYTE, PT + nchars, | 1317 | adjust_markers_for_insert (PT, PT_BYTE, PT + nchars, |
| 1306 | PT_BYTE + outgoing_nbytes, | 1318 | PT_BYTE + outgoing_nbytes, |