aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1997-08-04 06:44:24 +0000
committerRichard M. Stallman1997-08-04 06:44:24 +0000
commit666da7836b0dc32ebf3b78359c51439f217a320b (patch)
tree6fdcd62ec225d0ce4522a8327ee942b0e8b0cf32
parent3478257bc133d763eec06903549d4c99a14b1f46 (diff)
downloademacs-666da7836b0dc32ebf3b78359c51439f217a320b.tar.gz
emacs-666da7836b0dc32ebf3b78359c51439f217a320b.zip
(make-autoload): For a defcustom,
generate custom-add-to-group and custom-add-load if needed.
-rw-r--r--lisp/emacs-lisp/autoload.el14
1 files changed, 12 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 2eb06766442..ed90ead9b4f 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -52,11 +52,21 @@ Returns nil if FORM is not a defun, define-skeleton, defmacro or defcustom."
52 (or (eq car 'define-skeleton) 52 (or (eq car 'define-skeleton)
53 (eq (car-safe (car form)) 'interactive)) 53 (eq (car-safe (car form)) 'interactive))
54 (if macrop (list 'quote 'macro) nil))) 54 (if macrop (list 'quote 'macro) nil)))
55 ;; Convert defcustom to a simpler (and less space-consuming) defvar,
56 ;; but add some extra stuff if it uses :require.
55 (if (eq car 'defcustom) 57 (if (eq car 'defcustom)
56 (let ((varname (car-safe (cdr-safe form))) 58 (let ((varname (car-safe (cdr-safe form)))
57 (init (car-safe (cdr-safe (cdr-safe form)))) 59 (init (car-safe (cdr-safe (cdr-safe form))))
58 (doc (car-safe (cdr-safe (cdr-safe (cdr-safe form)))))) 60 (doc (car-safe (cdr-safe (cdr-safe (cdr-safe form)))))
59 (list 'defvar varname init doc)) 61 (rest (cdr-safe (cdr-safe (cdr-safe (cdr-safe form))))))
62 (if (not (plist-get rest :require))
63 `(defvar ,varname ,init ,doc)
64 `(progn
65 (defvar ,varname ,init ,doc)
66 (custom-add-to-group ,(plist-get rest :group)
67 ',varname 'custom-variable)
68 (custom-add-load ',varname
69 ,(plist-get rest :require)))))
60 nil)))) 70 nil))))
61 71
62(put 'define-skeleton 'doc-string-elt 3) 72(put 'define-skeleton 'doc-string-elt 3)