changeset 94620:070ce953fab4

Correct buggy dispatch logic.
author Eric S. Raymond <esr@snark.thyrsus.com>
date Sun, 04 May 2008 23:24:49 +0000
parents cc6aa752e662
children 97585dd63d91
files lisp/vc.el
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/vc.el	Sun May 04 23:20:35 2008 +0000
+++ b/lisp/vc.el	Sun May 04 23:24:49 2008 +0000
@@ -2180,8 +2180,9 @@
 ;; FIXME: Replace these with a more efficient dispatch
 
 (defun vc-generic-status-printer (fileentry)
-  (let ((backend (vc-responsible-backend (vc-dir-fileinfo->name fileentry))))
-    (vc-call-backend backend 'status-printer fileentry)))
+  (let* ((file (vc-dir-fileinfo->name fileentry))
+	 ((backend (vc-responsible-backend file))))
+    (vc-call-backend backend 'status-printer file)))
   
 (defun vc-generic-state (file)
   (let ((backend (vc-responsible-backend file)))
@@ -2196,6 +2197,7 @@
     (vc-dir-headers backend dir)))
 
 (defun vc-make-backend-object (file-or-dir)
+  "Create the backend capability object needed by vc-dispatcher."
   (vc-create-client-object 
    "VC status"
    (let ((backend (vc-responsible-backend file-or-dir)))
@@ -2210,7 +2212,7 @@
   "Show the VC status for DIR."
   (interactive "DVC status for directory: ")
   (pop-to-buffer (vc-dir-prepare-status-buffer dir))
-  (if (eq major-mode 'vc-dir-mode)
+  (if (and (eq major-mode 'vc-dir-mode) (boundp 'client-object))
       (vc-dir-refresh)
     ;; Otherwise, initialize a new view using the dispatcher layer
     (progn