Mercurial > emacs
comparison lisp/emacs-lisp/autoload.el @ 19131:962be4e083c2
(make-autoload): For a defcustom,
generate custom-add-to-group and custom-add-load if needed.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 04 Aug 1997 06:44:24 +0000 |
parents | 65f371a2cf00 |
children | ecc4375537e3 |
comparison
equal
deleted
inserted
replaced
19130:0c228cae75b5 | 19131:962be4e083c2 |
---|---|
50 (setq doc nil)) | 50 (setq doc nil)) |
51 (list 'autoload (list 'quote name) file doc | 51 (list 'autoload (list 'quote name) file doc |
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) |
63 | 73 |
64 (defconst generate-autoload-cookie ";;;###autoload" | 74 (defconst generate-autoload-cookie ";;;###autoload" |