Don't require advice.
(repeat): Do function-indirection in check for kbd macro. In self-insert case, use the *last* char in INSERTION.
This commit is contained in:
parent
80184dac07
commit
00ac134b3d
1 changed files with 6 additions and 5 deletions
|
@ -271,16 +271,17 @@ can be modified by the global variable `repeat-on-final-keystroke'."
|
|||
;; includes that many copies of the same character.
|
||||
;; So use just the first character
|
||||
;; and repeat it the right number of times.
|
||||
(setq insertion (substring insertion 0 1))
|
||||
(setq insertion (substring insertion -1))
|
||||
(let ((count (prefix-numeric-value repeat-arg))
|
||||
(i 0))
|
||||
(while (< i count)
|
||||
(repeat-self-insert insertion)
|
||||
(setq i (1+ i)))))
|
||||
(if (or (stringp real-last-command)
|
||||
(vectorp real-last-command))
|
||||
(execute-kbd-macro real-last-command)
|
||||
(call-interactively real-last-command))))
|
||||
(let ((indirect (indirect-function real-last-command)))
|
||||
(if (or (stringp indirect)
|
||||
(vectorp indirect))
|
||||
(execute-kbd-macro real-last-command)
|
||||
(call-interactively real-last-command)))))
|
||||
(when repeat-repeat-char
|
||||
;; A simple recursion here gets into trouble with max-lisp-eval-depth
|
||||
;; on long sequences of repetitions of a command like `forward-word'
|
||||
|
|
Loading…
Add table
Reference in a new issue