Mercurial > emacs
comparison lisp/emacs-lisp/autoload.el @ 22247:7db7ffb27feb
(make-autoload): Add support for define-derived-mode. Update the
doc-string accordingly.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 26 May 1998 05:14:52 +0000 |
parents | 00ce0bf9b723 |
children | 9a8adf8f1efa |
comparison
equal
deleted
inserted
replaced
22246:afacb0a7e251 | 22247:7db7ffb27feb |
---|---|
59 (defconst generate-autoload-section-continuation ";;;;;; " | 59 (defconst generate-autoload-section-continuation ";;;;;; " |
60 "String to add on each continuation of the section header form.") | 60 "String to add on each continuation of the section header form.") |
61 | 61 |
62 (defun make-autoload (form file) | 62 (defun make-autoload (form file) |
63 "Turn FORM into an autoload or defvar for source file FILE. | 63 "Turn FORM into an autoload or defvar for source file FILE. |
64 Returns nil if FORM is not a defun, define-skeleton, defmacro or defcustom." | 64 Returns nil if FORM is not a defun, define-skeleton, define-derived-mode, |
65 defmacro or defcustom." | |
65 (let ((car (car-safe form))) | 66 (let ((car (car-safe form))) |
66 (if (memq car '(defun define-skeleton defmacro)) | 67 (if (memq car '(defun define-skeleton defmacro define-derived-mode)) |
67 (let ((macrop (eq car 'defmacro)) | 68 (let ((macrop (eq car 'defmacro)) |
68 name doc) | 69 name doc) |
69 (setq form (cdr form) | 70 (setq form (cdr form) |
70 name (car form) | 71 name (car form) |
71 ;; Ignore the arguments. | 72 ;; Ignore the arguments. |
72 form (cdr (if (eq car 'define-skeleton) | 73 form (cdr (cond |
73 form | 74 ((eq car 'define-skeleton) form) |
74 (cdr form))) | 75 ((eq car 'define-derived-mode) (cdr (cdr form))) |
76 (t (cdr form)))) | |
75 doc (car form)) | 77 doc (car form)) |
76 (if (stringp doc) | 78 (if (stringp doc) |
77 (setq form (cdr form)) | 79 (setq form (cdr form)) |
78 (setq doc nil)) | 80 (setq doc nil)) |
79 (list 'autoload (list 'quote name) file doc | 81 (list 'autoload (list 'quote name) file doc |
80 (or (eq car 'define-skeleton) | 82 (or (eq car 'define-skeleton) (eq car 'define-derived-mode) |
81 (eq (car-safe (car form)) 'interactive)) | 83 (eq (car-safe (car form)) 'interactive)) |
82 (if macrop (list 'quote 'macro) nil))) | 84 (if macrop (list 'quote 'macro) nil))) |
83 ;; Convert defcustom to a simpler (and less space-consuming) defvar, | 85 ;; Convert defcustom to a simpler (and less space-consuming) defvar, |
84 ;; but add some extra stuff if it uses :require. | 86 ;; but add some extra stuff if it uses :require. |
85 (if (eq car 'defcustom) | 87 (if (eq car 'defcustom) |
121 (put 'defun 'doc-string-elt 3) | 123 (put 'defun 'doc-string-elt 3) |
122 (put 'defvar 'doc-string-elt 3) | 124 (put 'defvar 'doc-string-elt 3) |
123 (put 'defcustom 'doc-string-elt 3) | 125 (put 'defcustom 'doc-string-elt 3) |
124 (put 'defconst 'doc-string-elt 3) | 126 (put 'defconst 'doc-string-elt 3) |
125 (put 'defmacro 'doc-string-elt 3) | 127 (put 'defmacro 'doc-string-elt 3) |
128 (put 'define-derived-mode 'doc-string-elt 4) | |
129 | |
126 | 130 |
127 (defun autoload-trim-file-name (file) | 131 (defun autoload-trim-file-name (file) |
128 ;; Returns a relative pathname of FILE | 132 ;; Returns a relative pathname of FILE |
129 ;; starting from the directory that loaddefs.el is in. | 133 ;; starting from the directory that loaddefs.el is in. |
130 ;; That is normally a directory in load-path, | 134 ;; That is normally a directory in load-path, |