From b4eb84d4afd1b847f6f4c272d04ffa1f4b36dc98 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Thu, 8 Apr 2021 21:46:57 +0300 Subject: * lisp/repeat.el (repeat-post-hook): Check for prefix-arg. This is instead of checking for a list of argument-related commands that set prefix-arg anyway. --- lisp/repeat.el | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/lisp/repeat.el b/lisp/repeat.el index 8cbfaa07487..b3c58f2f818 100644 --- a/lisp/repeat.el +++ b/lisp/repeat.el @@ -382,25 +382,17 @@ When Repeat mode is enabled, and the command symbol has the property named (when rep-map (when (boundp rep-map) (setq rep-map (symbol-value rep-map))) - (let ((prefix-command-p (memq this-original-command - '(universal-argument - universal-argument-more - digit-argument - negative-argument))) - (map (copy-keymap rep-map)) + (let ((map (copy-keymap rep-map)) keys) ;; Exit when the last char is not among repeatable keys, ;; so e.g. `C-x u u' repeats undo, whereas `C-/ u' doesn't. (when (and (zerop (minibuffer-depth)) ; avoid remapping in prompts (or (lookup-key map (this-command-keys-vector)) - prefix-command-p)) - - (when (and repeat-keep-prefix (not prefix-command-p)) - (setq prefix-arg current-prefix-arg)) + prefix-arg)) ;; Messaging - (unless prefix-command-p + (unless prefix-arg (map-keymap (lambda (key _) (push key keys)) map) (let ((mess (format-message "Repeat with %s%s" @@ -419,6 +411,9 @@ When Repeat mode is enabled, and the command symbol has the property named (when repeat-exit-key (define-key map repeat-exit-key 'ignore)) + (when (and repeat-keep-prefix (not prefix-arg)) + (setq prefix-arg current-prefix-arg)) + (set-transient-map map)))))) (setq repeat-map nil)) -- cgit v1.2.1