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,