summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2012-01-30 20:52:29 -0800
committerGlenn Morris <rgm@gnu.org>2012-01-30 20:52:29 -0800
commit60dc2671917d86ac95d767b5e8e385878f00f948 (patch)
treea13e5e780149f03018d04fe9ee4fe7c835adcfbe
parent6c9b47ae84ee5e2f4c7e388d8b1b6fd67daeb61b (diff)
downloademacs-60dc2671917d86ac95d767b5e8e385878f00f948.tar.gz
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix.
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/emacs-lisp/easy-mmode.el19
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 <rgm@gnu.org>
- * 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 <rgm@gnu.org>
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!\"