# HG changeset patch # User Chong Yidong # Date 1254093903 0 # Node ID f2e56d1eff323a4f09a3cc0e2ed8be2428c2af6b # Parent bb13a70d9c321b7b2d58ecea6b013daea6eb4fd7 * 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. diff -r bb13a70d9c32 -r f2e56d1eff32 lisp/ChangeLog --- a/lisp/ChangeLog Sun Sep 27 19:11:13 2009 +0000 +++ b/lisp/ChangeLog Sun Sep 27 23:25:03 2009 +0000 @@ -1,3 +1,27 @@ +2009-09-27 Chong Yidong + + * 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. + 2009-09-27 Adrian Robert * term/ns-win.el: Don't set the region face background. (Bug#4381) diff -r bb13a70d9c32 -r f2e56d1eff32 lisp/Makefile.in --- a/lisp/Makefile.in Sun Sep 27 19:11:13 2009 +0000 +++ b/lisp/Makefile.in Sun Sep 27 23:25:03 2009 +0000 @@ -91,6 +91,15 @@ esac; \ done +# Find all subdirectories in which we might want to create subdirs.el + +setwins_for_subdirs=subdirs=`(cd $$wd; find . -type d -print)`; \ + for file in $$subdirs; do \ + case $$file in */Old | */RCS | */CVS | */CVS/* | */.* | */.*/* | */=* | */cedet* ) ;; \ + *) wins="$$wins $$wd/$$file" ;; \ + esac; \ + done + # `compile-main' tends to be slower than `recompile' but can be parallelized # with "make -j" and results in more deterministic compilation warnings. # cus-load and finder-inf are not explicitly requested by anything, so @@ -144,7 +153,7 @@ $(lisp)/subdirs.el: $(MAKE) $(MFLAGS) update-subdirs update-subdirs: doit - wd=$(lisp); $(setwins); \ + wd=$(lisp); $(setwins_for_subdirs); \ for file in $$wins; do \ $(srcdir)/update-subdirs $$file; \ done; diff -r bb13a70d9c32 -r f2e56d1eff32 lisp/ediff-hook.el --- a/lisp/ediff-hook.el Sun Sep 27 19:11:13 2009 +0000 +++ b/lisp/ediff-hook.el Sun Sep 27 23:25:03 2009 +0000 @@ -123,7 +123,7 @@ :style toggle :selected (if (featurep 'ediff-tbar) (ediff-use-toolbar-p))])) - + ;; put these menus before Object-Oriented-Browser in Tools menu (if (and (featurep 'menubar) (not (featurep 'infodock)) (not (featurep 'ediff-hook))) @@ -141,8 +141,11 @@ (symbol-value 'menu-bar-ediff-merge-menu)) (defvar menu-bar-ediff-menu (make-sparse-keymap "Compare")) (fset 'menu-bar-ediff-menu (symbol-value 'menu-bar-ediff-menu)) - + ;; define ediff compare menu + (define-key menu-bar-ediff-menu [ediff-misc] + (list 'menu-item "Ediff Miscellanea" menu-bar-ediff-misc-menu)) + (define-key menu-bar-ediff-menu [separator-ediff-misc] '("--")) (define-key menu-bar-ediff-menu [window] `(menu-item ,(purecopy "This Window and Next Window") compare-windows :help ,(purecopy "Compare the current window and the next window"))) diff -r bb13a70d9c32 -r f2e56d1eff32 lisp/emacs-lisp/autoload.el --- 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) diff -r bb13a70d9c32 -r f2e56d1eff32 lisp/emacs-lisp/cl-macs.el --- a/lisp/emacs-lisp/cl-macs.el Sun Sep 27 19:11:13 2009 +0000 +++ b/lisp/emacs-lisp/cl-macs.el Sun Sep 27 23:25:03 2009 +0000 @@ -2438,6 +2438,7 @@ ;;; 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 -r bb13a70d9c32 -r f2e56d1eff32 lisp/emacs-lisp/lisp-mode.el --- a/lisp/emacs-lisp/lisp-mode.el Sun Sep 27 19:11:13 2009 +0000 +++ b/lisp/emacs-lisp/lisp-mode.el Sun Sep 27 23:25:03 2009 +0000 @@ -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.") diff -r bb13a70d9c32 -r f2e56d1eff32 lisp/menu-bar.el --- a/lisp/menu-bar.el Sun Sep 27 19:11:13 2009 +0000 +++ b/lisp/menu-bar.el Sun Sep 27 23:25:03 2009 +0000 @@ -1307,8 +1307,6 @@ (define-key menu-bar-tools-menu [separator-compare] '("--")) -(define-key menu-bar-tools-menu [ediff-misc] - `(menu-item ,(purecopy "Ediff Miscellanea") menu-bar-ediff-misc-menu)) (define-key menu-bar-tools-menu [epatch] `(menu-item ,(purecopy "Apply Patch") menu-bar-epatch-menu)) (define-key menu-bar-tools-menu [ediff-merge] diff -r bb13a70d9c32 -r f2e56d1eff32 lisp/progmodes/autoconf.el --- a/lisp/progmodes/autoconf.el Sun Sep 27 19:11:13 2009 +0000 +++ b/lisp/progmodes/autoconf.el Sun Sep 27 23:25:03 2009 +0000 @@ -107,6 +107,7 @@ (run-mode-hooks 'autoconf-mode-hook)) (provide 'autoconf-mode) +(provide 'autoconf) ;; arch-tag: 4f44778f-2ab3-49a1-a103-f0acb9df2de4 ;;; autoconf.el ends here