diff options
| author | Richard M. Stallman | 1997-08-04 06:44:24 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1997-08-04 06:44:24 +0000 |
| commit | 666da7836b0dc32ebf3b78359c51439f217a320b (patch) | |
| tree | 6fdcd62ec225d0ce4522a8327ee942b0e8b0cf32 | |
| parent | 3478257bc133d763eec06903549d4c99a14b1f46 (diff) | |
| download | emacs-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.el | 14 |
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) |