Commit dae157b7 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(define-minor-mode): Fix staging brain damage.

parent e243eb1f
2007-09-21 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/easy-mmode.el (define-minor-mode): Fix staging brain damage.
2007-09-21 Kevin Ryde <user42@zip.com.au>
 
* international/mule.el (sgml-html-meta-auto-coding-function):
......@@ -139,8 +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* ((last-message (current-message))
(mode-name (symbol-name mode))
(let* ((last-message (make-symbol "last-message"))
(mode-name (symbol-name mode))
(pretty-name (easy-mmode-pretty-mode-name mode lighter))
(globalp nil)
(set nil)
......@@ -222,28 +222,30 @@ With zero or negative ARG turn mode off.
;; Use `toggle' rather than (if ,mode 0 1) so that using
;; repeat-command still does the toggling correctly.
(interactive (list (or current-prefix-arg 'toggle)))
(setq ,mode
(cond
((eq arg 'toggle) (not ,mode))
(arg (> (prefix-numeric-value arg) 0))
(t
(if (null ,mode) t
(message
"Toggling %s off; better pass an explicit argument."
',mode)
nil))))
,@body
;; The on/off hooks are here for backward compatibility only.
(run-hooks ',hook (if ,mode ',hook-on ',hook-off))
(if (called-interactively-p)
(progn
,(if globalp `(customize-mark-as-set ',mode))
;; 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")))))
(let ((,last-message (current-message)))
(setq ,mode
(cond
((eq arg 'toggle) (not ,mode))
(arg (> (prefix-numeric-value arg) 0))
(t
(if (null ,mode) t
(message
"Toggling %s off; better pass an explicit argument."
',mode)
nil))))
,@body
;; The on/off hooks are here for backward compatibility only.
(run-hooks ',hook (if ,mode ',hook-on ',hook-off))
(if (called-interactively-p)
(progn
,(if globalp `(customize-mark-as-set ',mode))
;; 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)
;; Return the new setting.
,mode)
......@@ -539,5 +541,5 @@ found, do `widen' first and then call NARROWFUN with no args after moving."
(provide 'easy-mmode)
;;; arch-tag: d48a5250-6961-4528-9cb0-3c9ea042a66a
;; arch-tag: d48a5250-6961-4528-9cb0-3c9ea042a66a
;;; easy-mmode.el ends here
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment