emacs-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]