diff options
author | Karoly Lorentey <lorentey@elte.hu> | 2005-11-07 14:56:19 +0000 |
---|---|---|
committer | Karoly Lorentey <lorentey@elte.hu> | 2005-11-07 14:56:19 +0000 |
commit | 79c3172f78d56cf88c927fb0ff5c3b30fd676686 (patch) | |
tree | 20932caaa9695f3bb29b543f46107319a687308d /lisp/emacs-lisp/easy-mmode.el | |
parent | 9684e4c92f12f7c31f5e6fda7742960b403395f6 (diff) | |
parent | fab0d3087eb5215a5d08379ac765af27abc28842 (diff) | |
download | emacs-79c3172f78d56cf88c927fb0ff5c3b30fd676686.tar.gz emacs-79c3172f78d56cf88c927fb0ff5c3b30fd676686.tar.bz2 emacs-79c3172f78d56cf88c927fb0ff5c3b30fd676686.zip |
Merged from miles@gnu.org--gnu-2005 (patch 149-151, 629-641)
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-629
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-630
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-631
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-632
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-633
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-634
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-635
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-636
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-637
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-638
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-639
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-640
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-641
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-149
Merge from emacs--cvs-trunk--0
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-150
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-151
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-437
Diffstat (limited to 'lisp/emacs-lisp/easy-mmode.el')
-rw-r--r-- | lisp/emacs-lisp/easy-mmode.el | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index da0ca735efd..710c26e0c6c 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -272,8 +272,14 @@ With zero or negative ARG turn mode off. "Make GLOBAL-MODE out of the buffer-local minor MODE. TURN-ON is a function that will be called with no args in every buffer and that should try to turn MODE on if applicable for that buffer. -KEYS is a list of CL-style keyword arguments: -:group to specify the custom group. +KEYS is a list of CL-style keyword arguments. As the minor mode + defined by this function is always global, any :global keyword is + ignored. Other keywords have the same meaning as in `define-minor-mode', + which see. In particular, :group specifies the custom group. + The most useful keywords are those that are passed on to the + `defcustom'. It normally makes no sense to pass the :lighter + or :keymap keywords to `define-global-minor-mode', since these + are usually passed to the buffer-local version of the minor mode. If MODE's set-up depends on the major mode in effect when it was enabled, then disabling and reenabling MODE should make MODE work @@ -285,21 +291,23 @@ call another major mode in their body." (pretty-name (easy-mmode-pretty-mode-name mode)) (pretty-global-name (easy-mmode-pretty-mode-name global-mode)) (group nil) - (extra-args nil) + (extra-keywords nil) (MODE-buffers (intern (concat global-mode-name "-buffers"))) (MODE-enable-in-buffers (intern (concat global-mode-name "-enable-in-buffers"))) (MODE-check-buffers (intern (concat global-mode-name "-check-buffers"))) (MODE-cmhh (intern (concat global-mode-name "-cmhh"))) - (MODE-major-mode (intern (concat (symbol-name mode) "-major-mode")))) + (MODE-major-mode (intern (concat (symbol-name mode) "-major-mode"))) + keyw) ;; Check keys. - (while (keywordp (car keys)) - (case (pop keys) - (:extra-args (setq extra-args (pop keys))) + (while (keywordp (setq keyw (car keys))) + (setq keys (cdr keys)) + (case keyw (:group (setq group (nconc group (list :group (pop keys))))) - (t (setq keys (cdr keys))))) + (:global (setq keys (cdr keys))) + (t (push keyw extra-keywords) (push (pop keys) extra-keywords)))) (unless group ;; We might as well provide a best-guess default group. @@ -317,7 +325,7 @@ With prefix ARG, turn %s on if and only if ARG is positive. %s is actually not turned on in every buffer but only in those in which `%s' turns it on." pretty-name pretty-global-name pretty-name turn-on) - :global t :extra-args ,extra-args ,@group + :global t ,@group ,@(nreverse extra-keywords) ;; Setup hook to handle future mode changes and new buffers. (if ,global-mode |