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-svn.el,v


From: Dan Nicolaescu
Subject: [Emacs-diffs] Changes to emacs/lisp/vc-svn.el,v
Date: Sat, 19 Jan 2008 16:32:25 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Dan Nicolaescu <dann>   08/01/19 16:32:24

Index: vc-svn.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-svn.el,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -b -r1.64 -r1.65
--- vc-svn.el   18 Jan 2008 23:45:03 -0000      1.64
+++ vc-svn.el   19 Jan 2008 16:32:22 -0000      1.65
@@ -158,11 +158,8 @@
       (vc-svn-command t 0 nil "status" (if localp "-v" "-u"))
       (vc-svn-parse-status))))
 
-(defun vc-svn-dir-status (dir)
-  "Return a list of conses (FILE . STATE) for DIR."
-  (with-temp-buffer
-    (let ((default-directory (file-name-as-directory dir))
-         (state-map '((?A . added)
+(defun vc-svn-after-dir-status (callback buffer)
+  (let ((state-map '((?A . added)
                       (?C . edited)
                       (?D . removed)
                       (?I . ignored)
@@ -172,14 +169,23 @@
                       ;; This is what vc-svn-parse-status does.
                       (?~ . edited)))
          result)
-      (vc-svn-command t 0 nil "status")
       (goto-char (point-min))
       (while (re-search-forward "^\\(.\\)..... \\(.*\\)$" nil t)
        (let ((state (cdr (assq (aref (match-string 1) 0) state-map)))
              (filename (match-string 2)))
          (when state
            (setq result (cons (cons filename state) result)))))
-      result)))
+    (funcall callback result buffer)))
+
+(defun vc-svn-dir-status (dir callback buffer)
+  "Run 'svn status' for DIR and update BUFFER via CALLBACK.
+CALLBACK is called as (CALLBACK RESULT BUFFER), where
+RESULT is a list of conses (FILE . STATE) for directory DIR."
+  (with-current-buffer (get-buffer-create
+                       (generate-new-buffer-name " *vc svn status*"))
+    (vc-svn-command (current-buffer) 'async nil "status")
+    (vc-exec-after
+     `(vc-svn-after-dir-status (quote ,callback) ,buffer))))
 
 (defun vc-svn-working-revision (file)
   "SVN-specific version of `vc-working-revision'."




reply via email to

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