(make-autoload): Generate custom-autoload for autoloaded defcustoms.

This commit is contained in:
Markus Rost 2003-01-07 18:39:14 +00:00
parent 1669290db3
commit d49298d9d7

View file

@ -108,21 +108,16 @@ or macro definition or a defcustom)."
(eq (car-safe (car body)) '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.
;; Convert defcustom to less space-consuming data.
((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)))))
(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))))))
;; (rest (cdr-safe (cdr-safe (cdr-safe (cdr-safe form)))))
)
`(progn
(defvar ,varname ,init ,doc)
(custom-autoload ',varname ,file))))
;; nil here indicates that this is not a special autoload form.
(t nil))))