diff options
author | Richard M. Stallman <rms@gnu.org> | 1999-02-18 05:40:34 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1999-02-18 05:40:34 +0000 |
commit | c8a3c7eb277385a63813a356216d05087eb77f1c (patch) | |
tree | c5a81b53899763bd5d9c9fd7c09770701c1acf30 /src/insdel.c | |
parent | 3373a131dbf45da9ad119fd2bc9ea6522e7369c5 (diff) | |
download | emacs-c8a3c7eb277385a63813a356216d05087eb77f1c.tar.gz |
(adjust_markers_for_replace): When doing an insertion
(replacing a region of zero length), handle markers at the
insertion point properly.
Diffstat (limited to 'src/insdel.c')
-rw-r--r-- | src/insdel.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/insdel.c b/src/insdel.c index 87f0a7898dc..f2aaa84a8b9 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -578,7 +578,12 @@ adjust_markers_for_replace (from, from_byte, old_chars, old_bytes, { register struct Lisp_Marker *m = XMARKER (marker); - if (m->bytepos >= prev_to_byte) + if (m->bytepos >= prev_to_byte + && (old_bytes != 0 + /* If this is an insertion (replacing 0 chars), + reject the case of a marker that is at the + insertion point and should stay before the insertion. */ + || m->bytepos > from_byte || m->insertion_type)) { if (m->bytepos < prev_to_byte + combined_after_bytes) { |