emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/vc.el,v


From: Dan Nicolaescu
Subject: [Emacs-diffs] Changes to emacs/lisp/vc.el,v
Date: Fri, 18 Jan 2008 23:33:00 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Dan Nicolaescu <dann>   08/01/18 23:32:59

Index: vc.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc.el,v
retrieving revision 1.515
retrieving revision 1.516
diff -u -b -r1.515 -r1.516
--- vc.el       18 Jan 2008 14:12:43 -0000      1.515
+++ vc.el       18 Jan 2008 23:32:57 -0000      1.516
@@ -544,8 +544,6 @@
 ;;
 ;; - decide if vc-status should replace vc-dired.
 ;;
-;; - vc-status should be made asynchronous.
-;;
 ;; - vc-status needs a menu, mouse bindings and some color bling.
 
 ;;; Code:
@@ -2622,16 +2620,26 @@
 
 (put 'vc-status-mode 'mode-class 'special)
 
+(defun vc-update-vc-status-buffer (entries buffer)
+  (with-current-buffer buffer
+    (dolist (entry entries)
+      (ewoc-enter-last vc-status
+                      (vc-status-create-fileinfo (cdr entry) (car entry))))
+    (ewoc-goto-node vc-status (ewoc-nth vc-status 0))))
+
 (defun vc-status-refresh ()
   "Refresh the contents of the VC status buffer."
   (interactive)
   ;; This is not very efficient; ewoc could use a new function here.
   (ewoc-filter vc-status (lambda (node) nil))
   (let ((backend (vc-responsible-backend default-directory)))
-    (dolist (entry (vc-call-backend backend 'dir-status default-directory))
-      (ewoc-enter-last vc-status
-                      (vc-status-create-fileinfo (cdr entry) (car entry)))))
-  (ewoc-goto-node vc-status (ewoc-nth vc-status 0)))
+    ;; Call the dir-status backend function. dir-status is supposed to
+    ;; be asynchronous.  It should compute the results and call the
+    ;; function passed as a an arg to update the vc-status buffer with
+    ;; the results.
+    (vc-call-backend 
+     backend 'dir-status default-directory 
+     #'vc-update-vc-status-buffer (current-buffer))))
 
 (defun vc-status-next-line (arg)
   "Go to the next line.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]