From: Richard M. Stallman Date: Fri, 31 Dec 2004 15:13:00 +0000 (+0000) Subject: (undo): Use undo-equiv-table to detect X-Git-Tag: ttn-vms-21-2-B4~3004 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d020fce006f84fb944879d7b2326c0c8c6c24811;p=emacs.git (undo): Use undo-equiv-table to detect unexpected changes since previous undo. (undo-list-saved): Variable deleted. (buffer-disable-undo): Don't alter undo-list-saved. --- diff --git a/lisp/simple.el b/lisp/simple.el index f5bc8a40fa6..735c65948bf 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -1234,10 +1234,6 @@ Return 0 if current buffer is not a mini-buffer." (defvar undo-no-redo nil "If t, `undo' doesn't go through redo entries.") -(defvar undo-list-saved nil - "The value of `buffer-undo-list' saved by the last undo command.") -(make-variable-buffer-local 'undo-list-saved) - (defun undo (&optional arg) "Undo some previous changes. Repeat this command to undo more changes. @@ -1266,7 +1262,9 @@ as an argument limits undo to changes within the current region." (let ((list buffer-undo-list)) (while (eq (car list) nil) (setq list (cdr list))) - (eq undo-list-saved list))) + ;; If the last undo record made was made by undo + ;; it shows nothing else happened in between. + (gethash list undo-equiv-table))) (setq undo-in-region (if transient-mark-mode mark-active (and arg (not (numberp arg))))) (if undo-in-region @@ -1320,7 +1318,6 @@ as an argument limits undo to changes within the current region." (setq prev tail tail (cdr tail)))) ;; Record what the current undo list says, ;; so the next command can tell if the buffer was modified in between. - (setq undo-list-saved buffer-undo-list) (and modified (not (buffer-modified-p)) (delete-auto-save-file-if-necessary recent-save)))) @@ -1329,8 +1326,7 @@ as an argument limits undo to changes within the current region." No argument or nil as argument means do this for the current buffer." (interactive) (with-current-buffer (if buffer (get-buffer buffer) (current-buffer)) - (setq buffer-undo-list t - undo-list-saved nil))) + (setq buffer-undo-list t))) (defun undo-only (&optional arg) "Undo some previous changes.