* 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.
This commit is contained in:
parent
580c4c6510
commit
b4eb84d4af
1 changed files with 6 additions and 11 deletions
|
@ -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))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue