* 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.
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))
(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 '(""))