summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2009-09-27 23:25:03 +0000
committerChong Yidong <cyd@stupidchicken.com>2009-09-27 23:25:03 +0000
commit15120dec6be0fe4f34133eecf91b3c61b9020c03 (patch)
treeb9dddd977b2786e5be80c49924a22efaf7b1d5f4
parent5dc25d59aa9bb7267542c44ec47248f4c679e555 (diff)
downloademacs-15120dec6be0fe4f34133eecf91b3c61b9020c03.tar.gz
* 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.
-rw-r--r--lisp/ChangeLog24
-rw-r--r--lisp/Makefile.in11
-rw-r--r--lisp/ediff-hook.el7
-rw-r--r--lisp/emacs-lisp/autoload.el38
-rw-r--r--lisp/emacs-lisp/cl-macs.el1
-rw-r--r--lisp/emacs-lisp/lisp-mode.el1
-rw-r--r--lisp/menu-bar.el2
-rw-r--r--lisp/progmodes/autoconf.el1
8 files changed, 76 insertions, 9 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ccb7bc72cf3..67d4ca6656b 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,27 @@
+2009-09-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * 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 <Adrian.B.Robert@gmail.com>
* term/ns-win.el: Don't set the region face background. (Bug#4381)
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 2011f117135..103bd395bee 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -91,6 +91,15 @@ setwins_almost=subdirs=`(cd $$wd; find . -type d -print)`; \
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 @@ autoloads: $(LOADDEFS) doit
$(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 --git a/lisp/ediff-hook.el b/lisp/ediff-hook.el
index 6576757d706..92afb838b85 100644
--- a/lisp/ediff-hook.el
+++ b/lisp/ediff-hook.el
@@ -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 --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.")
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 362613bfd18..b94faa390ef 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1307,8 +1307,6 @@ mail status in mode line"))
(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 --git a/lisp/progmodes/autoconf.el b/lisp/progmodes/autoconf.el
index 2b7e885c58b..734ae8c4e44 100644
--- a/lisp/progmodes/autoconf.el
+++ b/lisp/progmodes/autoconf.el
@@ -107,6 +107,7 @@ searching backwards at another AC_... command."
(run-mode-hooks 'autoconf-mode-hook))
(provide 'autoconf-mode)
+(provide 'autoconf)
;; arch-tag: 4f44778f-2ab3-49a1-a103-f0acb9df2de4
;;; autoconf.el ends here