changeset 23098:7fd17414e625

(repeat): Doc fix. [From rms:] (repeat-previous-repeated-command): New variable. (repeat): Check for real-last-command being null or repeat. Set repeat-previous-repeated-command.
author Dave Love <fx@gnu.org>
date Tue, 25 Aug 1998 13:28:44 +0000
parents 86a92272892c
children ad057569785d
files lisp/repeat.el
diffstat 1 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/repeat.el	Tue Aug 25 13:16:35 1998 +0000
+++ b/lisp/repeat.el	Tue Aug 25 13:28:44 1998 +0000
@@ -201,12 +201,15 @@
 
 ;;;;; ******************* THE REPEAT COMMAND ITSELF ******************* ;;;;;
 
+(defvar repeat-previous-repeated-command nil
+  "The previous repeated command.")
+
 ;;;###autoload
 (defun repeat (repeat-arg)
   "Repeat most recently executed command.
 With prefix arg, apply new prefix arg to that command; otherwise, maintain
 prefix arg of most recently executed command if it had one.
-This command is named after the `.' command in the vi editor.
+This command is like the `.' command in the vi editor.
 
 If this command is invoked by a multi-character key sequence, it can then
 be repeated by repeating the final character of that sequence.  This behavior
@@ -220,12 +223,17 @@
   ;; "repeat-" prefix, reserved by this package, for *local* variables that
   ;; might be visible to re-executed commands, including this function's arg.
   (interactive "P")
-  (setq this-command                      real-last-command
-        repeat-num-input-keys-at-repeat   num-input-keys)
+  (when (eq real-last-command 'repeat)
+    (setq real-last-command repeat-previous-repeated-command))
+  (when (null real-last-command)
+    (error "There is nothing to repeat"))
   (when (eq real-last-command 'mode-exit)
     (error "real-last-command is mode-exit & can't be repeated"))
   (when (memq real-last-command repeat-too-dangerous)
     (error "Command %S too dangerous to repeat automatically" real-last-command))
+  (setq this-command                      real-last-command
+        repeat-num-input-keys-at-repeat   num-input-keys)
+  (setq repeat-previous-repeated-command this-command)
   (when (null repeat-arg)
     (setq repeat-arg last-prefix-arg))
   ;; Now determine whether to loop on repeated taps of the final character