diff options
| -rw-r--r-- | lisp/emacs-lisp/autoload.el | 16 |
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. |
| 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, |
| @@ -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 |