From: Eric S. Raymond Date: Tue, 6 May 2008 16:00:54 +0000 (+0000) Subject: More decoupling of vc-dispatcher.el from vc.el. X-Git-Tag: emacs-pretest-23.0.90~5770 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c8d4f1a0a6472a109f6f66709b1a4555823b16d4;p=emacs.git More decoupling of vc-dispatcher.el from vc.el. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 67f9174a5bd..69ce6939018 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2008-05-06 Eric S. Raymond + + * 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 * verilog-mode.el (verilog-getopt-file): Cleanup warning message format. diff --git a/lisp/vc-dispatcher.el b/lisp/vc-dispatcher.el index 76801e3abc2..3bfa65f915b 100644 --- a/lisp/vc-dispatcher.el +++ b/lisp/vc-dispatcher.el @@ -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 @@ editing!" (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 @@ NOT-URGENT means it is ok to continue if the user says not to save." (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 @@ Otherwise, throw an error." (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 diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el index 74be3c36742..971c92ef775 100644 --- a/lisp/vc-hooks.el +++ b/lisp/vc-hooks.el @@ -901,6 +901,7 @@ current, and kill the buffer that visits the link." (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.