aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1998-05-26 05:14:52 +0000
committerRichard M. Stallman1998-05-26 05:14:52 +0000
commitfc89daeeaf4b6ceada3750aeaff89a773b5c918c (patch)
treeef56761c98dfb3c34e67108dd8e8e624178c0711
parent2d75b395350d36d126f71085622b696380b2a9a9 (diff)
downloademacs-fc89daeeaf4b6ceada3750aeaff89a773b5c918c.tar.gz
emacs-fc89daeeaf4b6ceada3750aeaff89a773b5c918c.zip
(make-autoload): Add support for define-derived-mode. Update the
doc-string accordingly.
-rw-r--r--lisp/emacs-lisp/autoload.el16
1 files changed, 10 insertions, 6 deletions
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 95a510d1351..d597c087f37 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -61,23 +61,25 @@ that text will be copied verbatim to `generated-autoload-file'.")
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.
64Returns nil if FORM is not a defun, define-skeleton, defmacro or defcustom." 64Returns nil if FORM is not a defun, define-skeleton, define-derived-mode,
65defmacro 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,
@@ -123,6 +125,8 @@ Returns nil if FORM is not a defun, define-skeleton, defmacro or defcustom."
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