From: Stefan Monnier Date: Mon, 24 Mar 2008 19:52:29 +0000 (+0000) Subject: (vc-bzr-print-log, vc-bzr-diff): Do it asynchronously. X-Git-Tag: emacs-pretest-23.0.90~6958 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5a07b0f024da068fdc9e6b476182f376a0569cb1;p=emacs.git (vc-bzr-print-log, vc-bzr-diff): Do it asynchronously. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 72ca41f9a03..d300ae50324 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2008-03-24 Stefan Monnier + + * vc-bzr.el (vc-bzr-print-log, vc-bzr-diff): Do it asynchronously. + 2008-03-22 Drew Adams * finder.el (finder-mode-syntax-table, finder-font-lock-keywords): diff --git a/lisp/vc-bzr.el b/lisp/vc-bzr.el index 9fbf7b86dec..5fff3d8e544 100644 --- a/lisp/vc-bzr.el +++ b/lisp/vc-bzr.el @@ -396,22 +396,19 @@ EDITABLE is ignored." (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 @@ EDITABLE is ignored." (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) " ")