[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: |
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