(make-autoload): Add support for define-derived-mode. Update the

doc-string accordingly.
This commit is contained in:
Richard M. Stallman 1998-05-26 05:14:52 +00:00
parent 2d75b39535
commit fc89daeeaf

View file

@ -61,23 +61,25 @@ that text will be copied verbatim to `generated-autoload-file'.")
(defun make-autoload (form file) (defun make-autoload (form file)
"Turn FORM into an autoload or defvar for source file FILE. "Turn FORM into an autoload or defvar for source file FILE.
Returns nil if FORM is not a defun, define-skeleton, defmacro or defcustom." Returns nil if FORM is not a defun, define-skeleton, define-derived-mode,
defmacro or defcustom."
(let ((car (car-safe form))) (let ((car (car-safe form)))
(if (memq car '(defun define-skeleton defmacro)) (if (memq car '(defun define-skeleton defmacro define-derived-mode))
(let ((macrop (eq car 'defmacro)) (let ((macrop (eq car 'defmacro))
name doc) name doc)
(setq form (cdr form) (setq form (cdr form)
name (car form) name (car form)
;; Ignore the arguments. ;; Ignore the arguments.
form (cdr (if (eq car 'define-skeleton) form (cdr (cond
form ((eq car 'define-skeleton) form)
(cdr form))) ((eq car 'define-derived-mode) (cdr (cdr form)))
(t (cdr form))))
doc (car form)) doc (car form))
(if (stringp doc) (if (stringp doc)
(setq form (cdr form)) (setq form (cdr form))
(setq doc nil)) (setq doc nil))
(list 'autoload (list 'quote name) file doc (list 'autoload (list 'quote name) file doc
(or (eq car 'define-skeleton) (or (eq car 'define-skeleton) (eq car 'define-derived-mode)
(eq (car-safe (car form)) 'interactive)) (eq (car-safe (car form)) 'interactive))
(if macrop (list 'quote 'macro) nil))) (if macrop (list 'quote 'macro) nil)))
;; Convert defcustom to a simpler (and less space-consuming) defvar, ;; Convert defcustom to a simpler (and less space-consuming) defvar,
@ -123,6 +125,8 @@ Returns nil if FORM is not a defun, define-skeleton, defmacro or defcustom."
(put 'defcustom 'doc-string-elt 3) (put 'defcustom 'doc-string-elt 3)
(put 'defconst 'doc-string-elt 3) (put 'defconst 'doc-string-elt 3)
(put 'defmacro 'doc-string-elt 3) (put 'defmacro 'doc-string-elt 3)
(put 'define-derived-mode 'doc-string-elt 4)
(defun autoload-trim-file-name (file) (defun autoload-trim-file-name (file)
;; Returns a relative pathname of FILE ;; Returns a relative pathname of FILE