diff options
Diffstat (limited to 'src/insdel.c')
-rw-r--r-- | src/insdel.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/insdel.c b/src/insdel.c index 05c86616c1d..f9b38602357 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -568,8 +568,9 @@ adjust_markers_for_replace (from, from_byte, old_chars, old_bytes, } else { - m->charpos += diff_chars; - m->bytepos += diff_bytes; + m->charpos = min (from + new_chars, m->charpos + diff_chars); + m->bytepos = min (from_byte + new_bytes, + m->bytepos + diff_bytes); } } else if (m->bytepos >= from_byte) @@ -1188,8 +1189,8 @@ insert_1_both (string, nchars, nbytes, inherit, prepare, before_markers) offset_intervals (current_buffer, PT, nchars); if (!inherit && BUF_INTERVALS (current_buffer) != 0) - Fset_text_properties (make_number (PT), make_number (PT + nchars), - Qnil, Qnil); + set_text_properties (make_number (PT), make_number (PT + nchars), + Qnil, Qnil, Qnil); { int pos = PT, pos_byte = PT_BYTE; |