From 7d6a2ca41df02192d9321a712f271a1fbd087646 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Tue, 25 Aug 1998 13:28:44 +0000 Subject: (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. --- lisp/repeat.el | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'lisp/repeat.el') diff --git a/lisp/repeat.el b/lisp/repeat.el index 4418043af4c..628ab90fafe 100644 --- a/lisp/repeat.el +++ b/lisp/repeat.el @@ -201,12 +201,15 @@ this function is always whether the value of `this-command' would've been ;;;;; ******************* 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 @@ can be modified by the global variable `repeat-on-final-keystroke'." ;; "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 -- cgit v1.2.1