]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't add empty keyboard macro to macro ring (Bug#24992)
authorGemini Lasswell <gazally@runbox.com>
Mon, 18 Dec 2017 18:08:59 +0000 (10:08 -0800)
committerGemini Lasswell <gazally@runbox.com>
Sun, 31 Dec 2017 19:10:26 +0000 (11:10 -0800)
* 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
test/lisp/kmacro-tests.el

index 5729f2fc8d3ae3e9f829568384887f3d54dadf70..beb52e5635112af47722096426e700949a8e3940 100644 (file)
@@ -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))
 
index 690d5029231153caa7f568227872d37fa287de21..c0180e32e5a451c96ed0b6ba0181ed036b280d75 100644 (file)
@@ -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 '(""))