[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: special-display-buffer-names and vc-diff displays wrong result
From: |
Stefan Monnier |
Subject: |
Re: special-display-buffer-names and vc-diff displays wrong result |
Date: |
Mon, 03 Oct 2005 10:45:40 -0400 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
> I am using `special-display-buffer-names' for the *vc-diff* buffer.
> If the special-display-buffer frame does not exist then the *vc-diff*
> buffer reports sometimes "No differences found.". This seems to due
> the fact that the 'vc-diff-internal' function has not written yet any
> bytes into the *vc-diff* buffer.
> How would the fact that the buffer is empty have such an effect?
> Can you work out the chain of events?
To figure out whether there's been diffs or not, the sentinel function
checks whether the resulting buffer is empty.
> The strange part is that this only
> happens if the background process ends up very fast. For example a
> diff with the cvs.gnu.org server finishes always successfully, but a
> diff with the local cvs server fails.
> I don't know how to fix this. As a workaround I put after the
> vc-diff-internal function a (sit-for 1) statement. Then it seems to
> work.
> If you can deduce how this change has the effect of preventing the
> problem, then we would understand the problem, and then we could look
> for the right fix.
Given his description of the problem, my guess is that somehow the sentinel
is run before all the process's output has been processed.
Stefan