From fc164b0c33ea4d65e5d1da2c3925569b032b398d Mon Sep 17 00:00:00 2001 From: Leo Liu Date: Fri, 5 Apr 2013 16:38:06 +0800 Subject: [PATCH] * kmacro.el (kmacro-call-macro): Fix bug#14135. --- lisp/ChangeLog | 4 ++++ lisp/kmacro.el | 12 +++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 015ce23ef8..6da3acf9dd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2013-04-05 Leo Liu + + * kmacro.el (kmacro-call-macro): Fix bug#14135. + 2013-04-05 Jay Belanger * calc/calc-units.el (calc-convert-units): Rewrite conditional. diff --git a/lisp/kmacro.el b/lisp/kmacro.el index c08f49df0a..d6de2feb3f 100644 --- a/lisp/kmacro.el +++ b/lisp/kmacro.el @@ -631,11 +631,11 @@ others, use \\[kmacro-name-last-macro]." (> (length (this-single-command-keys)) 1)) ;; Used when we're in the process of repeating. (eq no-repeat 'repeating)) - last-input-event)) - (last-kbd-macro (or macro last-kbd-macro))) + last-input-event))) (if end-macro - (kmacro-end-macro arg) - (call-last-kbd-macro arg #'kmacro-loop-setup-function)) + (kmacro-end-macro arg) ; modifies last-kbd-macro + (let ((last-kbd-macro (or macro last-kbd-macro))) + (call-last-kbd-macro arg #'kmacro-loop-setup-function))) (when (consp arg) (setq arg (car arg))) (when (and (or (null arg) (> arg 0)) @@ -658,7 +658,9 @@ others, use \\[kmacro-name-last-macro]." (define-key map (vector repeat-key) `(lambda () (interactive) (kmacro-call-macro ,(and kmacro-call-repeat-with-arg arg) - 'repeating nil ,last-kbd-macro))) + 'repeating nil ,(if end-macro + last-kbd-macro + (or macro last-kbd-macro))))) map))))) -- 2.20.1