emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master e17d6e2 1/2: primitive-undo: Update only the curren


From: Dmitry Gutov
Subject: [Emacs-diffs] master e17d6e2 1/2: primitive-undo: Update only the currently valid markers
Date: Fri, 16 Jun 2017 21:05:31 -0400 (EDT)

branch: master
commit e17d6e2f6f0b7e33f16884bcb29b4d5f4433941b
Author: Nitish Chandra <address@hidden>
Commit: Dmitry Gutov <address@hidden>

    primitive-undo: Update only the currently valid markers
    
    * lisp/simple.el (primitive-undo):
    Update only the currently valid markers (bug#25599).
    
    Copyright-paperwork-exempt: yes
---
 lisp/simple.el | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lisp/simple.el b/lisp/simple.el
index df664fc..a5565ab 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2589,8 +2589,12 @@ Return what remains of the list."
                (goto-char pos))
              ;; Adjust the valid marker adjustments
              (dolist (adj valid-marker-adjustments)
-               (set-marker (car adj)
-                           (- (car adj) (cdr adj))))))
+               ;; Insert might have invalidated some of the markers
+               ;; via modification hooks.  Update only the currently
+               ;; valid ones (bug#25599).
+               (if (marker-buffer (car adj))
+                   (set-marker (car adj)
+                               (- (car adj) (cdr adj)))))))
           ;; (MARKER . OFFSET) means a marker MARKER was adjusted by OFFSET.
           (`(,(and marker (pred markerp)) . ,(and offset (pred integerp)))
            (warn "Encountered %S entry in undo list with no matching (TEXT . 
POS) entry"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]