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: Harald Maier
Subject: Re: special-display-buffer-names and vc-diff displays wrong result
Date: Wed, 05 Oct 2005 05:52:34 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (darwin)

"Richard M. Stallman" <address@hidden> writes:

>     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?

First the problem happens only if the emacs-produced version file
(e.g. some-version-file.~1.9.~) doesn't exist and the vc-diff function
executes very fast (e.g. cvs server local). It happens always whether
'special-display-buffer-names' is set.

Here is the process chain in the function vc-version-diff:

- after processing 'vc-diff-internal' the buffer *vc-diff* is empty
- afterwards 'vc-exec-after asks' for the 'process-status' and this
  status is 'exit' and the function buffer-size still reports zero.
- It calls again the vc-exec-after function with the given code. This
  code tests the buffer-size and this value is still zero. So the
  result is 'No difference found.'.

>     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.

I verified this change but it has definitely no effect. Please forget
it.

Harald




reply via email to

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