]> git.eshelyaron.com Git - emacs.git/commitdiff
(define-minor-mode): Avoid constructing a defcustom with two :set or
authorLuc Teirlinck <teirllm@auburn.edu>
Sat, 16 Jul 2005 02:25:48 +0000 (02:25 +0000)
committerLuc Teirlinck <teirllm@auburn.edu>
Sat, 16 Jul 2005 02:25:48 +0000 (02:25 +0000)
:type keywords.

lisp/emacs-lisp/easy-mmode.el

index 3b4662277b641838091bacc42ad5b7238837daaf..87f3e7249aa4c3f927b1601ec9ed6ecb8e3ff3b8 100644 (file)
@@ -142,8 +142,10 @@ For example, you could write
   (let* ((mode-name (symbol-name mode))
         (pretty-name (easy-mmode-pretty-mode-name mode lighter))
         (globalp nil)
+        (set nil)
         (initialize nil)
         (group nil)
+        (type nil)
         (extra-args nil)
         (extra-keywords nil)
         (require t)
@@ -160,8 +162,10 @@ For example, you could write
        (:lighter (setq lighter (pop body)))
        (:global (setq globalp (pop body)))
        (:extra-args (setq extra-args (pop body)))
+       (:set (setq set (list :set (pop body))))
        (:initialize (setq initialize (list :initialize (pop body))))
        (:group (setq group (nconc group (list :group (pop body)))))
+       (:type (setq type (list :type (pop body))))
        (:require (setq require (pop body)))
        (:keymap (setq keymap (pop body)))
        (t (push keyw extra-keywords) (push (pop body) extra-keywords))))
@@ -169,9 +173,10 @@ For example, you could write
     (setq keymap-sym (if (and keymap (symbolp keymap)) keymap
                       (intern (concat mode-name "-map"))))
 
+    (unless set (setq set '(:set 'custom-set-minor-mode)))
+
     (unless initialize
-      (setq initialize
-           '(:initialize 'custom-initialize-default)))
+      (setq initialize '(:initialize 'custom-initialize-default)))
 
     (unless group
       ;; We might as well provide a best-guess default group.
@@ -179,6 +184,8 @@ For example, you could write
            `(:group ',(intern (replace-regexp-in-string
                                "-mode\\'" "" mode-name)))))
 
+    (unless type (setq type '(:type 'boolean)))
+
     `(progn
        ;; Define the variable to enable or disable the mode.
        ,(if (not globalp)
@@ -201,10 +208,10 @@ See the command `%s' for a description of this minor-mode."))
 
            `(defcustom ,mode ,init-value
               ,(format base-doc-string pretty-name mode mode)
-              :set 'custom-set-minor-mode
+              ,@set
               ,@initialize
               ,@group
-              :type 'boolean
+              ,@type
               ,@(cond
                  ((not (and curfile require)) nil)
                  ((not (eq require t)) `(:require ,require)))