Mercurial > emacs
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