summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuri Linkov <juri@linkov.net>2021-04-08 21:46:57 +0300
committerJuri Linkov <juri@linkov.net>2021-04-08 21:54:43 +0300
commitb4eb84d4afd1b847f6f4c272d04ffa1f4b36dc98 (patch)
tree0cbec6495f893d232ad9aae380d966eca932faaf
parent580c4c6510fca918610c9c0f440a7d21c4702f16 (diff)
downloademacs-b4eb84d4afd1b847f6f4c272d04ffa1f4b36dc98.tar.gz
* 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.
-rw-r--r--lisp/repeat.el17
1 files 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))