changeset 5935:a2b7fc4645d9

(undo, yank): Set this-command to t at start, and set it correctly at the end.
author Richard M. Stallman <rms@gnu.org>
date Sun, 13 Feb 1994 00:16:23 +0000
parents 9699f3d409e5
children 18c152c31e66
files lisp/simple.el
diffstat 1 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/simple.el	Sun Feb 13 00:15:20 1994 +0000
+++ b/lisp/simple.el	Sun Feb 13 00:16:23 1994 +0000
@@ -604,6 +604,9 @@
 Repeat this command to undo more changes.
 A numeric argument serves as a repeat count."
   (interactive "*p")
+  ;; If we don't get all the way thru, make last-command indicate that
+  ;; for the following command.
+  (setq this-command t)
   (let ((modified (buffer-modified-p))
 	(recent-save (recent-auto-save-p)))
     (or (eq (selected-window) (minibuffer-window))
@@ -611,10 +614,11 @@
     (or (eq last-command 'undo)
 	(progn (undo-start)
 	       (undo-more 1)))
-    (setq this-command 'undo)
     (undo-more (or arg 1))
     (and modified (not (buffer-modified-p))
-	 (delete-auto-save-file-if-necessary recent-save))))
+	 (delete-auto-save-file-if-necessary recent-save)))
+  ;; If we do get all the way thru, make this-command indicate that.
+  (setq this-command 'undo))
 
 (defvar pending-undo-list nil
   "Within a run of consecutive undo commands, list remaining to be undone.")
@@ -1165,6 +1169,9 @@
 text.
 See also the command \\[yank-pop]."
   (interactive "*P")
+  ;; If we don't get all the way thru, make last-command indicate that
+  ;; for the following command.
+  (setq this-command t)
   (push-mark (point))
   (insert (current-kill (cond
 			 ((listp arg) 0)
@@ -1176,6 +1183,8 @@
       ;; loop would deactivate the mark because we inserted text.
       (goto-char (prog1 (mark t)
 		   (set-marker (mark-marker) (point) (current-buffer)))))
+  ;; If we do get all the way thru, make this-command indicate that.
+  (setq this-command 'yank)
   nil)
 
 (defun rotate-yank-pointer (arg)