* vc/vc.el (vc-diff-internal): Fix race condition (Bug#1256).

This commit is contained in:
Bob Rogers 2011-07-09 21:42:39 -04:00 committed by Chong Yidong
parent 8e0bc3e91a
commit 455e4fa13a
2 changed files with 9 additions and 2 deletions

View file

@ -1,3 +1,7 @@
2011-07-10 Bob Rogers <rogers@rgrjr.dyndns.org>
* vc/vc.el (vc-diff-internal): Fix race condition (Bug#1256).
2011-07-10 Chong Yidong <cyd@stupidchicken.com>
* window.el (display-buffer): Fix arguments to

View file

@ -1605,10 +1605,13 @@ Return t if the buffer had changes, nil otherwise."
;; bindings are nicer for read only buffers. pcl-cvs does the
;; same thing.
(setq buffer-read-only t)
(vc-exec-after `(vc-diff-finish ,(current-buffer) ',(when verbose
messages)))
;; Display the buffer, but at the end because it can change point.
(pop-to-buffer (current-buffer))
;; The diff process may finish early, so call `vc-diff-finish'
;; after `pop-to-buffer'; the former assumes the diff buffer is
;; shown in some window.
(vc-exec-after `(vc-diff-finish ,(current-buffer)
',(when verbose messages)))
;; In the async case, we return t even if there are no differences
;; because we don't know that yet.
t)))