changeset 93180:9add13a0e597

(vc-bzr-print-log, vc-bzr-diff): Do it asynchronously.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 24 Mar 2008 19:52:29 +0000
parents 139d0b227fdc
children 42e4c9574956
files lisp/ChangeLog lisp/vc-bzr.el
diffstat 2 files changed, 11 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Mar 24 19:42:12 2008 +0000
+++ b/lisp/ChangeLog	Mon Mar 24 19:52:29 2008 +0000
@@ -1,3 +1,7 @@
+2008-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* vc-bzr.el (vc-bzr-print-log, vc-bzr-diff): Do it asynchronously.
+
 2008-03-22  Drew Adams  <drew.adams@oracle.com>
 
 	* finder.el (finder-mode-syntax-table, finder-font-lock-keywords):
--- a/lisp/vc-bzr.el	Mon Mar 24 19:42:12 2008 +0000
+++ b/lisp/vc-bzr.el	Mon Mar 24 19:52:29 2008 +0000
@@ -396,22 +396,19 @@
   (vc-setup-buffer buffer)
   ;; If the buffer exists from a previous invocation it might be
   ;; read-only.
-  (let ((inhibit-read-only t))
     ;; FIXME: `vc-bzr-command' runs `bzr log' with `LC_MESSAGES=C', so
     ;; the log display may not what the user wants - but I see no other
     ;; way of getting the above regexps working.
     (dolist (file files)
+    (vc-exec-after
+     `(let ((inhibit-read-only t))
       (with-current-buffer buffer
 	;; Insert the file name so that log-view.el can find it.
-	(insert "Working file: " file "\n")) ;; Like RCS/CVS.
-      (apply 'vc-bzr-command "log" buffer 0 file
-	     (if (stringp vc-bzr-log-switches)
+          (insert "Working file: " ',file "\n")) ;; Like RCS/CVS.
+        (apply 'vc-bzr-command "log" ',buffer 'async ',file
+               ',(if (stringp vc-bzr-log-switches)
 		 (list vc-bzr-log-switches)
-	       vc-bzr-log-switches))))
-  ;; FIXME: Until Emacs-23, VC was missing a hook to sort out the mode for
-  ;; the buffer, or at least set the regexps right.
-  (unless (fboundp 'vc-default-log-view-mode)
-    (add-hook 'log-view-mode-hook 'vc-bzr-log-view-mode)))
+                   vc-bzr-log-switches))))))
 
 (defun vc-bzr-show-log-entry (revision)
   "Find entry for patch name REVISION in bzr change log buffer."
@@ -429,7 +426,7 @@
 (defun vc-bzr-diff (files &optional rev1 rev2 buffer)
   "VC bzr backend for diff."
   ;; `bzr diff' exits with code 1 if diff is non-empty.
-  (apply #'vc-bzr-command "diff" (or buffer "*vc-diff*") 1 files
+  (apply #'vc-bzr-command "diff" (or buffer "*vc-diff*") 'async files
          "--diff-options" (mapconcat 'identity 
                                      (vc-diff-switches-list bzr)
 				     " ")