diff options
| author | Karl Heuer | 1999-03-30 18:07:16 +0000 |
|---|---|---|
| committer | Karl Heuer | 1999-03-30 18:07:16 +0000 |
| commit | 00ac134b3daa58c5edb70febb6c8c3c9323f916f (patch) | |
| tree | 001b3e2c605b354d5c5877aa2b8f90bff23ddf19 | |
| parent | 80184dac072806f282c0bae51bd0b2569083cdda (diff) | |
| download | emacs-00ac134b3daa58c5edb70febb6c8c3c9323f916f.tar.gz emacs-00ac134b3daa58c5edb70febb6c8c3c9323f916f.zip | |
Don't require advice.
(repeat): Do function-indirection in check for kbd macro.
In self-insert case, use the *last* char in INSERTION.
| -rw-r--r-- | lisp/repeat.el | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lisp/repeat.el b/lisp/repeat.el index cc31a70d937..523ee3ce964 100644 --- a/lisp/repeat.el +++ b/lisp/repeat.el | |||
| @@ -271,16 +271,17 @@ can be modified by the global variable `repeat-on-final-keystroke'." | |||
| 271 | ;; includes that many copies of the same character. | 271 | ;; includes that many copies of the same character. |
| 272 | ;; So use just the first character | 272 | ;; So use just the first character |
| 273 | ;; and repeat it the right number of times. | 273 | ;; and repeat it the right number of times. |
| 274 | (setq insertion (substring insertion 0 1)) | 274 | (setq insertion (substring insertion -1)) |
| 275 | (let ((count (prefix-numeric-value repeat-arg)) | 275 | (let ((count (prefix-numeric-value repeat-arg)) |
| 276 | (i 0)) | 276 | (i 0)) |
| 277 | (while (< i count) | 277 | (while (< i count) |
| 278 | (repeat-self-insert insertion) | 278 | (repeat-self-insert insertion) |
| 279 | (setq i (1+ i))))) | 279 | (setq i (1+ i))))) |
| 280 | (if (or (stringp real-last-command) | 280 | (let ((indirect (indirect-function real-last-command))) |
| 281 | (vectorp real-last-command)) | 281 | (if (or (stringp indirect) |
| 282 | (execute-kbd-macro real-last-command) | 282 | (vectorp indirect)) |
| 283 | (call-interactively real-last-command)))) | 283 | (execute-kbd-macro real-last-command) |
| 284 | (call-interactively real-last-command))))) | ||
| 284 | (when repeat-repeat-char | 285 | (when repeat-repeat-char |
| 285 | ;; A simple recursion here gets into trouble with max-lisp-eval-depth | 286 | ;; A simple recursion here gets into trouble with max-lisp-eval-depth |
| 286 | ;; on long sequences of repetitions of a command like `forward-word' | 287 | ;; on long sequences of repetitions of a command like `forward-word' |