]> git.eshelyaron.com Git - emacs.git/commitdiff
(make-autoload): For a defcustom,
authorRichard M. Stallman <rms@gnu.org>
Mon, 4 Aug 1997 06:44:24 +0000 (06:44 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 4 Aug 1997 06:44:24 +0000 (06:44 +0000)
generate custom-add-to-group and custom-add-load if needed.

lisp/emacs-lisp/autoload.el

index 2eb06766442602ec459b6b73d163e487f3613020..ed90ead9b4f69181e13a6a1aa78f9767533cb8c4 100644 (file)
@@ -52,11 +52,21 @@ Returns nil if FORM is not a defun, define-skeleton, defmacro or defcustom."
                (or (eq car 'define-skeleton)
                    (eq (car-safe (car form)) 'interactive))
                (if macrop (list 'quote 'macro) nil)))
+      ;; Convert defcustom to a simpler (and less space-consuming) defvar,
+      ;; but add some extra stuff if it uses :require.
       (if (eq car 'defcustom)
          (let ((varname (car-safe (cdr-safe form)))
                (init (car-safe (cdr-safe (cdr-safe form))))
-               (doc (car-safe (cdr-safe (cdr-safe (cdr-safe form))))))
-           (list 'defvar varname init doc))
+               (doc (car-safe (cdr-safe (cdr-safe (cdr-safe form)))))
+               (rest (cdr-safe (cdr-safe (cdr-safe (cdr-safe form))))))
+           (if (not (plist-get rest :require))
+               `(defvar ,varname ,init ,doc)
+             `(progn
+                (defvar ,varname ,init ,doc)
+                (custom-add-to-group ,(plist-get rest :group)
+                                     ',varname 'custom-variable)
+                (custom-add-load ',varname
+                                 ,(plist-get rest :require)))))
        nil))))
 
 (put 'define-skeleton 'doc-string-elt 3)