emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs-26 1faade8: Fix marker adjustment for undo (Bug#2911


From: Noam Postavsky
Subject: [Emacs-diffs] emacs-26 1faade8: Fix marker adjustment for undo (Bug#29118)
Date: Wed, 15 Nov 2017 08:04:25 -0500 (EST)

branch: emacs-26
commit 1faade882165de2e9bd63702c59c8f26531c18ed
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Fix marker adjustment for undo (Bug#29118)
    
    * lisp/simple.el (primitive-undo): Compare marker against absolute
    value of POS, because the sign of POS is irrelevant to markers.
---
 lisp/simple.el | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/lisp/simple.el b/lisp/simple.el
index 4db8107..65906c8 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2565,10 +2565,10 @@ Return what remains of the list."
              (setq did-apply t)))
           ;; Element (STRING . POS) means STRING was deleted.
           (`(,(and string (pred stringp)) . ,(and pos (pred integerp)))
-           (when (let ((apos (abs pos)))
-                   (or (< apos (point-min)) (> apos (point-max))))
-             (error "Changes to be undone are outside visible portion of 
buffer"))
-           (let (valid-marker-adjustments)
+           (let ((valid-marker-adjustments nil)
+                 (apos (abs pos)))
+             (when (or (< apos (point-min)) (> apos (point-max)))
+               (error "Changes to be undone are outside visible portion of 
buffer"))
              ;; Check that marker adjustments which were recorded
              ;; with the (STRING . POS) record are still valid, ie
              ;; the markers haven't moved.  We check their validity
@@ -2579,7 +2579,7 @@ Return what remains of the list."
                (let* ((marker-adj (pop list))
                       (m (car marker-adj)))
                  (and (eq (marker-buffer m) (current-buffer))
-                      (= pos m)
+                      (= apos m)
                       (push marker-adj valid-marker-adjustments))))
              ;; Insert string and adjust point
              (if (< pos 0)



reply via email to

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