# HG changeset patch # User Stefan Monnier # Date 1147101145 0 # Node ID 4fc3abab0f1713fed8daf3f2365c3c15e8c65bc2 # Parent 0c5d2102f71abb158bfbbdcb3317a0c1347dd03c (define-minor-mode): Only preserve messages output during execution of the body. diff -r 0c5d2102f71a -r 4fc3abab0f17 lisp/emacs-lisp/easy-mmode.el --- a/lisp/emacs-lisp/easy-mmode.el Mon May 08 10:26:30 2006 +0000 +++ b/lisp/emacs-lisp/easy-mmode.el Mon May 08 15:12:25 2006 +0000 @@ -139,7 +139,8 @@ (setq body (list* lighter keymap body) lighter nil keymap nil)) ((keywordp keymap) (push keymap body) (setq keymap nil))) - (let* ((mode-name (symbol-name mode)) + (let* ((last-message (current-message)) + (mode-name (symbol-name mode)) (pretty-name (easy-mmode-pretty-mode-name mode lighter)) (globalp nil) (set nil) @@ -236,7 +237,10 @@ (if (called-interactively-p) (progn ,(if globalp `(customize-mark-as-set ',mode)) - (unless (current-message) + ;; Avoid overwriting a message shown by the body, + ;; but do overwrite previous messages. + (unless ,(and (current-message) + (not (equal last-message (current-message)))) (message ,(format "%s %%sabled" pretty-name) (if ,mode "en" "dis"))))) (force-mode-line-update)