summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Gutov <dgutov@yandex.ru>2015-05-28 02:16:00 +0300
committerDmitry Gutov <dgutov@yandex.ru>2015-05-28 02:28:56 +0300
commitcc41938ae0f5694d657f360f19dd9ac166271db2 (patch)
treebda10511df5b3d0529edef99ee491f62a4512161
parent550c65011c7394e8ebcf91fc29af2984908279d1 (diff)
downloademacs-cc41938ae0f5694d657f360f19dd9ac166271db2.tar.gz
Delete the old process in vc-setup-buffer
* lisp/vc/vc-dispatcher.el (vc-setup-buffer): Delete the old process here. (vc-do-command): Rather than here (bug#20608).
-rw-r--r--lisp/vc/vc-dispatcher.el12
1 files changed, 6 insertions, 6 deletions
diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el
index a2c1cba5fde..ec55867fcfe 100644
--- a/lisp/vc/vc-dispatcher.el
+++ b/lisp/vc/vc-dispatcher.el
@@ -171,6 +171,12 @@ Another is that undo information is not kept."
(let ((camefrom (current-buffer))
(olddir default-directory))
(set-buffer (get-buffer-create buf))
+ (let ((oldproc (get-buffer-process (current-buffer))))
+ ;; If we wanted to wait for oldproc to finish before doing
+ ;; something, we'd have used vc-eval-after.
+ ;; Use `delete-process' rather than `kill-process' because we don't
+ ;; want any of its output to appear from now on.
+ (when oldproc (delete-process oldproc)))
(kill-all-local-variables)
(set (make-local-variable 'vc-parent-buffer) camefrom)
(set (make-local-variable 'vc-parent-buffer-name)
@@ -302,12 +308,6 @@ case, and the process object in the asynchronous case."
(eq buffer (current-buffer)))
(vc-setup-buffer buffer))
;; If there's some previous async process still running, just kill it.
- (let ((oldproc (get-buffer-process (current-buffer))))
- ;; If we wanted to wait for oldproc to finish before doing
- ;; something, we'd have used vc-eval-after.
- ;; Use `delete-process' rather than `kill-process' because we don't
- ;; want any of its output to appear from now on.
- (when oldproc (delete-process oldproc)))
(let ((squeezed (remq nil flags))
(inhibit-read-only t)
(status 0))