Mercurial > emacs
diff lisp/emacs-lisp/autoload.el @ 105235:f2e56d1eff32
* menu-bar.el: Remove menu-bar-ediff-misc-menu from the Tools
menu.
* ediff-hook.el: Move menu-bar-ediff-misc-menu into
menu-bar-ediff-menu.
* emacs-lisp/lisp-mode.el: Add doc-string-elt property to
define-overloadable-function.
* progmodes/autoconf.el: Provide autoconf as well, so that this
file can be `require'd.
* emacs-lisp/cl-macs.el (deftype): Add to cl-loaddefs.
* emacs-lisp/autoload.el (generated-autoload-feature)
(generated-autoload-load-name): New vars.
(autoload-rubric, autoload-generate-file-autoloads): Use them.
(make-autoload): Recognize define-overloadable-function and
defclass forms (for EIEIO).
* Makefile.in (update-subdirs): Exclude cedet directory.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sun, 27 Sep 2009 23:25:03 +0000 |
parents | a9dc0e7c3f2b |
children | bd2966850aac |
line wrap: on
line diff
--- a/lisp/emacs-lisp/autoload.el Sun Sep 27 19:11:13 2009 +0000 +++ b/lisp/emacs-lisp/autoload.el Sun Sep 27 23:25:03 2009 +0000 @@ -42,6 +42,18 @@ ;;;###autoload (put 'generated-autoload-file 'safe-local-variable 'stringp) +(defvar generated-autoload-feature nil + "Feature for `generated-autoload-file' to provide. +If nil, this defaults to `generated-autoload-file', sans extension.") +;;;###autoload +(put 'generated-autoload-feature 'safe-local-variable 'symbolp) + +(defvar generated-autoload-load-name nil + "Load name for `autoload' statements generated from autoload cookies. +If nil, this defaults to the file name, sans extension.") +;;;###autoload +(put 'generated-autoload-load-name 'safe-local-variable 'stringp) + ;; This feels like it should be a defconst, but MH-E sets it to ;; ";;;###mh-autoload" for the autoloads that are to go into mh-loaddefs.el. (defvar generate-autoload-cookie ";;;###autoload" @@ -95,11 +107,12 @@ easy-mmode-define-global-mode define-global-minor-mode define-globalized-minor-mode easy-mmode-define-minor-mode define-minor-mode - defun* defmacro*)) + defun* defmacro* define-overloadable-function)) (let* ((macrop (memq car '(defmacro defmacro*))) (name (nth 1 form)) (args (case car - ((defun defmacro defun* defmacro*) (nth 2 form)) + ((defun defmacro defun* defmacro* + define-overloadable-function) (nth 2 form)) ((define-skeleton) '(&optional str arg)) ((define-generic-mode define-derived-mode define-compilation-mode) nil) @@ -122,6 +135,14 @@ (eq (car-safe (car body)) 'interactive)) (if macrop (list 'quote 'macro) nil)))) + ;; For defclass forms, use `eieio-defclass-autoload'. + ((eq car 'defclass) + (let ((name (nth 1 form)) + (superclasses (nth 2 form)) + (doc (nth 4 form))) + (list 'eieio-defclass-autoload (list 'quote name) + (list 'quote superclasses) file doc))) + ;; Convert defcustom to less space-consuming data. ((eq car 'defcustom) (let ((varname (car-safe (cdr-safe form))) @@ -245,7 +266,12 @@ ";;\n" ";;; Code:\n\n" "\n" - "(provide '" (file-name-sans-extension basename) ")\n" + "(provide '" + (if (and generated-autoload-feature + (symbolp generated-autoload-feature)) + (format "%s" generated-autoload-feature) + (file-name-sans-extension basename)) + ")\n" ";; Local Variables:\n" ";; version-control: never\n" ";; no-byte-compile: t\n" @@ -336,7 +362,7 @@ \(or OUTBUF if OUTFILE is nil)." (catch 'done (let ((autoloads-done '()) - (load-name (autoload-file-load-name file)) + load-name (print-length nil) (print-level nil) (print-readably t) ; This does something in Lucid Emacs. @@ -354,6 +380,10 @@ ;; Obey the no-update-autoloads file local variable. (unless no-update-autoloads (message "Generating autoloads for %s..." file) + (setq load-name + (if (stringp generated-autoload-load-name) + generated-autoload-load-name + (autoload-file-load-name file))) (save-excursion (save-restriction (widen)