diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2009-09-27 23:25:03 +0000 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2009-09-27 23:25:03 +0000 |
commit | 15120dec6be0fe4f34133eecf91b3c61b9020c03 (patch) | |
tree | b9dddd977b2786e5be80c49924a22efaf7b1d5f4 /lisp/emacs-lisp | |
parent | 5dc25d59aa9bb7267542c44ec47248f4c679e555 (diff) | |
download | emacs-15120dec6be0fe4f34133eecf91b3c61b9020c03.tar.gz emacs-15120dec6be0fe4f34133eecf91b3c61b9020c03.tar.bz2 emacs-15120dec6be0fe4f34133eecf91b3c61b9020c03.zip |
* 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.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/autoload.el | 38 | ||||
-rw-r--r-- | lisp/emacs-lisp/cl-macs.el | 1 | ||||
-rw-r--r-- | lisp/emacs-lisp/lisp-mode.el | 1 |
3 files changed, 36 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index 2fe333671fe..bf00bbb4420 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el @@ -42,6 +42,18 @@ trailer starting with a FormFeed character.") ;;;###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 @@ or macro definition or a defcustom)." 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 @@ or macro definition or a defcustom)." (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 @@ information contained in FILE." ";;\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 @@ Return non-nil if and only if FILE adds no autoloads to OUTFILE \(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 @@ Return non-nil if and only if FILE adds no autoloads to OUTFILE ;; 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) diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 952c86740f5..a0b0d2e092b 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2438,6 +2438,7 @@ copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors. ;;; Types and assertions. +;;;###autoload (defmacro deftype (name arglist &rest body) "Define NAME as a new data type. The type name can then be used in `typecase', `check-type', etc." diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 10a2b3aa41e..b9b7c6ad8f9 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -156,6 +156,7 @@ (put 'defalias 'doc-string-elt 3) (put 'defvaralias 'doc-string-elt 3) (put 'define-category 'doc-string-elt 2) +(put 'define-overloadable-function 'doc-string-elt 3) (defvar lisp-doc-string-elt-property 'doc-string-elt "The symbol property that holds the docstring position info.") |