emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/simple.el


From: Richard M . Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/simple.el
Date: Mon, 11 Apr 2005 14:09:47 -0400

Index: emacs/lisp/simple.el
diff -c emacs/lisp/simple.el:1.708 emacs/lisp/simple.el:1.709
*** emacs/lisp/simple.el:1.708  Thu Apr  7 15:15:15 2005
--- emacs/lisp/simple.el        Mon Apr 11 18:09:45 2005
***************
*** 1279,1285 ****
  (defalias 'advertised-undo 'undo)
  
  (defconst undo-equiv-table (make-hash-table :test 'eq :weakness t)
!   "Table mapping redo records to the corresponding undo one.")
  
  (defvar undo-in-region nil
    "Non-nil if `pending-undo-list' is not just a tail of `buffer-undo-list'.")
--- 1279,1287 ----
  (defalias 'advertised-undo 'undo)
  
  (defconst undo-equiv-table (make-hash-table :test 'eq :weakness t)
!   "Table mapping redo records to the corresponding undo one.
! A redo record for undo-in-region maps to t.
! A redo record for ordinary undo maps to the following (earlier) undo.")
  
  (defvar undo-in-region nil
    "Non-nil if `pending-undo-list' is not just a tail of `buffer-undo-list'.")
***************
*** 1339,1345 ****
          (message (if undo-in-region
                       (if equiv "Redo in region!" "Undo in region!")
                     (if equiv "Redo!" "Undo!"))))
!       (when (and equiv undo-no-redo)
        ;; The equiv entry might point to another redo record if we have done
        ;; undo-redo-undo-redo-... so skip to the very last equiv.
        (while (let ((next (gethash equiv undo-equiv-table)))
--- 1341,1347 ----
          (message (if undo-in-region
                       (if equiv "Redo in region!" "Undo in region!")
                     (if equiv "Redo!" "Undo!"))))
!       (when (and (listp equiv) undo-no-redo)
        ;; The equiv entry might point to another redo record if we have done
        ;; undo-redo-undo-redo-... so skip to the very last equiv.
        (while (let ((next (gethash equiv undo-equiv-table)))
***************
*** 1350,1359 ****
         (prefix-numeric-value arg)
         1))
      ;; Record the fact that the just-generated undo records come from an
!     ;; undo operation, so we can skip them later on.
      ;; I don't know how to do that in the undo-in-region case.
!     (unless undo-in-region
!       (puthash buffer-undo-list pending-undo-list undo-equiv-table))
      ;; Don't specify a position in the undo record for the undo command.
      ;; Instead, undoing this should move point to where the change is.
      (let ((tail buffer-undo-list)
--- 1352,1364 ----
         (prefix-numeric-value arg)
         1))
      ;; Record the fact that the just-generated undo records come from an
!     ;; undo operation--that is, they are redo records.
!     ;; In the ordinary case (not within a region), map the redo
!     ;; record to the following undos.
      ;; I don't know how to do that in the undo-in-region case.
!     (puthash buffer-undo-list
!            (if undo-in-region t pending-undo-list)
!            undo-equiv-table)
      ;; Don't specify a position in the undo record for the undo command.
      ;; Instead, undoing this should move point to where the change is.
      (let ((tail buffer-undo-list)




reply via email to

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