comparison lisp/emacs-lisp/autoload.el @ 26552:88324520c7fc

(make-autoload): Recognize the new `define-minor-mode'. (define-minor-mode): Specify `doc-string-elt'.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 23 Nov 1999 09:26:55 +0000
parents 297c943363ed
children 206604013d7f
comparison
equal deleted inserted replaced
26551:271f77895660 26552:88324520c7fc
61 "String to add on each continuation of the section header form.") 61 "String to add on each continuation of the section header form.")
62 62
63 (defun make-autoload (form file) 63 (defun make-autoload (form file)
64 "Turn FORM into an autoload or defvar for source file FILE. 64 "Turn FORM into an autoload or defvar for source file FILE.
65 Returns nil if FORM is not a `defun', `define-skeleton', 65 Returns nil if FORM is not a `defun', `define-skeleton',
66 `define-derived-mode', `define-generic-mode', `defmacro', `defcustom' 66 `define-derived-mode', `define-generic-mode', `defmacro', `defcustom',
67 or `easy-mmode-define-minor-mode'." 67 `define-minor-mode' or `easy-mmode-define-minor-mode'."
68 (let ((car (car-safe form))) 68 (let ((car (car-safe form)))
69 (if (memq car '(defun define-skeleton defmacro define-derived-mode 69 (if (memq car '(defun define-skeleton defmacro define-derived-mode
70 define-generic-mode easy-mmode-define-minor-mode 70 define-generic-mode easy-mmode-define-minor-mode
71 defun*)) 71 define-minor-mode defun*))
72 (let ((macrop (eq car 'defmacro)) 72 (let ((macrop (eq car 'defmacro))
73 name doc) 73 name doc)
74 (setq form (cdr form) 74 (setq form (cdr form)
75 name (car form) 75 name (car form)
76 ;; Ignore the arguments. 76 ;; Ignore the arguments.
77 form (cdr (cond 77 form (cdr (cond
78 ((memq car '(define-skeleton 78 ((memq car '(define-skeleton define-minor-mode
79 easy-mmode-define-minor-mode)) form) 79 easy-mmode-define-minor-mode)) form)
80 ((eq car 'define-derived-mode) (cdr (cdr form))) 80 ((eq car 'define-derived-mode) (cdr (cdr form)))
81 ((eq car 'define-generic-mode) 81 ((eq car 'define-generic-mode)
82 (cdr (cdr (cdr (cdr (cdr form)))))) 82 (cdr (cdr (cdr (cdr (cdr form))))))
83 (t (cdr form)))) 83 (t (cdr form))))
88 ;; `define-generic-mode' quotes the name, so take care of that 88 ;; `define-generic-mode' quotes the name, so take care of that
89 (list 'autoload (if (listp name) name (list 'quote name)) file doc 89 (list 'autoload (if (listp name) name (list 'quote name)) file doc
90 (or (eq car 'define-skeleton) (eq car 'define-derived-mode) 90 (or (eq car 'define-skeleton) (eq car 'define-derived-mode)
91 (eq car 'define-generic-mode) 91 (eq car 'define-generic-mode)
92 (eq car 'easy-mmode-define-minor-mode) 92 (eq car 'easy-mmode-define-minor-mode)
93 (eq car 'define-minor-mode)
93 (eq (car-safe (car form)) 'interactive)) 94 (eq (car-safe (car form)) 'interactive))
94 (if macrop (list 'quote 'macro) nil))) 95 (if macrop (list 'quote 'macro) nil)))
95 ;; Convert defcustom to a simpler (and less space-consuming) defvar, 96 ;; Convert defcustom to a simpler (and less space-consuming) defvar,
96 ;; but add some extra stuff if it uses :require. 97 ;; but add some extra stuff if it uses :require.
97 (if (eq car 'defcustom) 98 (if (eq car 'defcustom)
134 (put 'defconst 'doc-string-elt 3) 135 (put 'defconst 'doc-string-elt 3)
135 (put 'defmacro 'doc-string-elt 3) 136 (put 'defmacro 'doc-string-elt 3)
136 (put 'define-skeleton 'doc-string-elt 3) 137 (put 'define-skeleton 'doc-string-elt 3)
137 (put 'define-derived-mode 'doc-string-elt 3) 138 (put 'define-derived-mode 'doc-string-elt 3)
138 (put 'easy-mmode-define-minor-mode 'doc-string-elt 3) 139 (put 'easy-mmode-define-minor-mode 'doc-string-elt 3)
140 (put 'define-minor-mode 'doc-string-elt 3)
139 (put 'define-generic-mode 'doc-string-elt 3) 141 (put 'define-generic-mode 'doc-string-elt 3)
140 142
141 143
142 (defun autoload-trim-file-name (file) 144 (defun autoload-trim-file-name (file)
143 ;; Returns a relative pathname of FILE 145 ;; Returns a relative pathname of FILE