changeset 94692:891cb8f8888f

More decoupling of vc-dispatcher.el from vc.el.
author Eric S. Raymond <esr@snark.thyrsus.com>
date Tue, 06 May 2008 16:00:54 +0000
parents 54ad2e16eccb
children 9276b559433c
files lisp/ChangeLog lisp/vc-dispatcher.el lisp/vc-hooks.el
diffstat 3 files changed, 17 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue May 06 15:54:16 2008 +0000
+++ b/lisp/ChangeLog	Tue May 06 16:00:54 2008 +0000
@@ -1,3 +1,9 @@
+2008-05-06  Eric S. Raymond  <esr@snark.thyrsus.com>
+
+	* vc-hooks.el (vc-find-file-hook), 
+	vc-dispatcher.el (vc-resynch-window): Decouple vc-dispatcher
+	further from vc.el.
+
 2008-05-06 Wilson Snyder <wsnyder@wsnyder.org>
 
 	* verilog-mode.el (verilog-getopt-file): Cleanup warning message format.
--- a/lisp/vc-dispatcher.el	Tue May 06 15:54:16 2008 +0000
+++ b/lisp/vc-dispatcher.el	Tue May 06 16:00:54 2008 +0000
@@ -102,7 +102,13 @@
 ;; (vc-dir) sets up a dispatcher browsing buffer; (vc-dispatcher-selection-set)
 ;; returns a selection set of files, either the marked files in a browsing
 ;; buffer or the singleton set consisting of the file visited by the current
-;; buffer (when that is appropriate).
+;; buffer (when that is appropriate).  It also does what is needed to ensure 
+;; that on-disk files and the contents of their visiting Emacs buffers 
+;; coincide.
+;;
+;; When the client mode adds a local mode-line-hook to a buffer, it
+;; will be called with the buffer file name as argument whenever the
+;; dispatcher resynchs the buffer.
 
 ;; To do:
 ;;
@@ -550,8 +556,7 @@
                     (and (not view-mode)
                          (not (eq (get major-mode 'mode-class) 'special))
                          (view-mode-enter))))
-	     ;; FIXME: Call into vc.el
-	     (vc-mode-line buffer-file-name))
+	     (run-hook-with-args 'modeline-hook buffer-file-name))
 	 (kill-buffer (current-buffer)))))
 
 (defun vc-resynch-buffer (file &optional keep noquery)
@@ -1640,7 +1645,7 @@
 (defun vc-dispatcher-selection-set (eligible
 				   &optional 
 				   allow-directory-wildcard 
-				   allow-inegible
+				   allow-ineligible
 				   include-files-not-directories)
   "Deduce a set of files to which to apply an operation. Return the fileset.
 If we're in VC-dired mode, the fileset is the list of marked files.
@@ -1678,7 +1683,7 @@
 				  (vc-dispatcher-browsing))))
       (progn
 	(set-buffer vc-parent-buffer)
-	(vc-dispatcher-selection-set)))
+	(vc-dispatcher-selection-set eligible)))
      ;; No parent buffer, we may want to select entire directory
      ;;
      ;; This is guarded by an enabling arg so users won't potentially
--- a/lisp/vc-hooks.el	Tue May 06 15:54:16 2008 +0000
+++ b/lisp/vc-hooks.el	Tue May 06 16:00:54 2008 +0000
@@ -901,6 +901,7 @@
       (setq vc-mode nil))
   (when buffer-file-name
     (vc-file-clearprops buffer-file-name)
+    (add-hook 'mode-line-hook 'vc-mode-line nil t)
     (cond
      ((with-demoted-errors (vc-backend buffer-file-name))
       ;; Compute the state and put it in the modeline.