From 312c5655669a882186884626f0cf361de70e679d Mon Sep 17 00:00:00 2001 From: Gemini Lasswell Date: Mon, 18 Dec 2017 10:08:59 -0800 Subject: [PATCH] Don't add empty keyboard macro to macro ring (Bug#24992) * lisp/kmacro.el (kmacro-end-call-mouse): Don't save a newly defined macro if it is empty. * test/lisp/kmacro-tests.el (kmacro-tests-end-and-call-macro-mouse): Remove expected failure tag. --- lisp/kmacro.el | 8 +++++++- test/lisp/kmacro-tests.el | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/kmacro.el b/lisp/kmacro.el index 5729f2fc8d3..beb52e56351 100644 --- a/lisp/kmacro.el +++ b/lisp/kmacro.el @@ -746,7 +746,13 @@ macros, use \\[kmacro-name-last-macro]." If kbd macro currently being defined end it before activating it." (interactive "e") (when defining-kbd-macro - (end-kbd-macro)) + (end-kbd-macro) + (when (and last-kbd-macro (= (length last-kbd-macro) 0)) + (setq last-kbd-macro nil) + (message "Ignore empty macro") + ;; Don't call `kmacro-ring-empty-p' to avoid its messages. + (while (and (null last-kbd-macro) kmacro-ring) + (kmacro-pop-ring1)))) (mouse-set-point event) (kmacro-call-macro nil t)) diff --git a/test/lisp/kmacro-tests.el b/test/lisp/kmacro-tests.el index 690d5029231..c0180e32e5a 100644 --- a/test/lisp/kmacro-tests.el +++ b/test/lisp/kmacro-tests.el @@ -312,7 +312,6 @@ cause the current test to fail." (kmacro-tests-deftest kmacro-tests-end-and-call-macro-mouse () "Commands to end and call macro work under various conditions. This is a regression test for Bug#24992." - (:expected-result :failed) (cl-letf (((symbol-function #'mouse-set-point) #'ignore)) ;; First, try it with no macro to record. (setq kmacro-tests-macros '("")) -- 2.39.2