Commit 6c9b47ae authored by Glenn Morris's avatar Glenn Morris

Small define-minor-mode fix for variable: keyword.

* lisp/emacs-lisp/easy-mmode.el (define-minor-mode):
Allow named functions to be used as the cdr of variable:.
parent e4070def
......@@ -9,7 +9,9 @@
2012-01-31 Glenn Morris <rgm@gnu.org>
* emacs-lisp/easy-mmode.el (define-minor-mode): Fix :variable case.
* emacs-lisp/easy-mmode.el (define-minor-mode):
Fix :variable handling of mode a symbol not equal to modefun.
Allow named functions to be used as the cdr of variable:.
2012-01-30 Glenn Morris <rgm@gnu.org>
......
......@@ -160,7 +160,7 @@ For example, you could write
(hook (intern (concat mode-name "-hook")))
(hook-on (intern (concat mode-name "-on-hook")))
(hook-off (intern (concat mode-name "-off-hook")))
keyw keymap-sym)
keyw keymap-sym tmp)
;; Check keys.
(while (keywordp (setq keyw (car body)))
......@@ -177,7 +177,15 @@ For example, you could write
(:require (setq require (pop body)))
(:keymap (setq keymap (pop body)))
(:variable (setq variable (pop body))
(if (not (functionp (cdr-safe variable)))
(setq tmp (cdr-safe variable))
(if (not (or (functionp tmp)
(and tmp
(symbolp tmp)
;; Hack to allow for named functions not within
;; eval-when-compile.
;; Cf define-compilation-mode.
(boundp 'byte-compile-function-environment)
(assq tmp byte-compile-function-environment))))
;; PLACE is not of the form (GET . SET).
(setq mode variable)
(setq mode (car variable))
......
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