From 60dc2671917d86ac95d767b5e8e385878f00f948 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 30 Jan 2012 20:52:29 -0800 Subject: [PATCH] * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix. --- lisp/ChangeLog | 4 ++-- lisp/emacs-lisp/easy-mmode.el | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 865bd7c36fb..9ba62b56449 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -9,9 +9,9 @@ 2012-01-31 Glenn Morris - * emacs-lisp/easy-mmode.el (define-minor-mode): + * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix. Fix :variable handling of mode a symbol not equal to modefun. - Allow named functions to be used as the cdr of variable:. + Allow named functions to be used as the cdr of :variable. 2012-01-30 Glenn Morris diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index 9e1a079df5c..efd5ee45d9b 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -86,7 +86,8 @@ replacing its case-insensitive matches with the literal string in LIGHTER." ;;;###autoload (defmacro define-minor-mode (mode doc &optional init-value lighter keymap &rest body) "Define a new minor mode MODE. -This defines the control variable MODE and the toggle command MODE. +This defines the toggle command MODE and (by default) a control variable +MODE (you can override this with the :variable keyword, see below). DOC is the documentation for the mode toggle command. Optional INIT-VALUE is the initial value of the mode's variable. @@ -113,15 +114,19 @@ BODY contains code to execute each time the mode is enabled or disabled. buffer-local, so don't make the variable MODE buffer-local. By default, the mode is buffer-local. :init-value VAL Same as the INIT-VALUE argument. + Not used if you also specify :variable. :lighter SPEC Same as the LIGHTER argument. :keymap MAP Same as the KEYMAP argument. :require SYM Same as in `defcustom'. -:variable PLACE The location (as can be used with `setf') to use instead - of the variable MODE to store the state of the mode. PLACE - can also be of the form (GET . SET) where GET is an expression - that returns the current state and SET is a function that takes - a new state and sets it. If you specify a :variable, this - function assumes it is defined elsewhere. +:variable PLACE The location to use instead of the variable MODE to store + the state of the mode. This can be simply a different + named variable, or more generally anything that can be used + with the CL macro `setf'. PLACE can also be of the form + \(GET . SET), where GET is an expression that returns the + current state, and SET is a function that takes one argument, + the new state, and sets it. If you specify a :variable, + this function does not define a MODE variable (nor any of + the terms used in :variable). For example, you could write (define-minor-mode foo-mode \"If enabled, foo on you!\" -- 2.39.2