diff --git a/lisp/repeat.el b/lisp/repeat.el index a2b04b81b0..5ae2ec2967 100644 --- a/lisp/repeat.el +++ b/lisp/repeat.el @@ -342,6 +342,8 @@ repeat-exit-key :group 'convenience :version "28.1") +;;;###autoload (defvar repeat-map nil) + ;;;###autoload (define-minor-mode repeat-mode "Toggle Repeat mode. @@ -364,8 +366,9 @@ repeat-mode (defun repeat-post-hook () "Function run after commands to set transient keymap for repeatable keys." (when repeat-mode - (let ((repeat-map (and (symbolp this-command) - (get this-command 'repeat-map)))) + (let ((repeat-map (or (and (symbolp this-command) + (get this-command 'repeat-map)) + repeat-map))) (when repeat-map (when (boundp repeat-map) (setq repeat-map (symbol-value repeat-map))) @@ -398,7 +401,8 @@ repeat-post-hook (when repeat-exit-key (define-key map repeat-exit-key 'ignore)) - (set-transient-map map))))))) + (set-transient-map map)))))) + (setq repeat-map nil)) (provide 'repeat)