summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2006-05-08 15:12:25 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2006-05-08 15:12:25 +0000
commit8c87a72c22623843fea4af61601b7710579c9cc2 (patch)
treef645e889c31e395a855673af754febb2d6ab9195 /lisp/emacs-lisp
parent6e7c574fd8d71502741d36a2156fa39923b9ee88 (diff)
downloademacs-8c87a72c22623843fea4af61601b7710579c9cc2.tar.gz
(define-minor-mode): Only preserve messages output during execution of the body.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/easy-mmode.el8
1 files changed, 6 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index caac02c2ee3..5475ed530d3 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -139,7 +139,8 @@ For example, you could write
(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 @@ With zero or negative ARG turn mode off.
(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)