Subject: RE: bug#1183: 23.0.60; ediff-buffers is broken

From: "Drew Adams" <[email-masked]>
Date: Fri, 17 Oct 2008 20:43:27 -0700

> To make it clear, nobody was saying that the two buffers 
> should be compared
> equal. The issue is: how do we make diff (NOT ediff) to 
> recognize that these
> buffers are nearly identical modulo some minor stuff?
> 
> Ediff-buffers does almost the right thing (at least, was 
> doing until things
> changed in emacs). It would save the buffers in temp files 
> using the *same*
> encoding, so all that crap is pushed out of the way. Then it 
> would run diff on
> the temp files.  Since the encodings are the same, diff would 
> find what is
> different and then ediff will display that. (With all its 
> complexity, ediff is
> just a front-end for diff.) So, for ediff-buffers, the 
> question is which
> encoding to use.
> 
> For ediff-files things seem to be worse: it runs diff on the 
> original files, so
> if one has DOS line endings and the other does not then it 
> all depends on what
> diff does.  This is why sometimes you run ediff files on 2 
> files that are
> nearly identical and get one big diff region equal to the entire file.
> This is a bit annoying, but not too bad, since hitting * 
> should fix the
> problem: it would save the diff regions using the same 
> encoding and will run
> diff over them.
> 
> So, basically, it boils down to choosing the right encoding.
> I am not sure which is right.
> Long time ago, it was decided to use no-conversion. Then 
> someone found a bad
> case and suggested to use the buffer coding system *if* it is set.
> This seemed to work better, but still had some problems.
> 
> Back then Stefan suggested emacs-mule instead of 
> no-conversion, but for some
> reason this was not done--don't remember why. He also said 
> that things will
> change in emacs 23, but I did not follow that development.
> 
> What has changed in emacs 23 with respect to this issue?
> 
> > Again, I have no problem with ediff commands also showing 
> > or otherwise identifying encoding differences. 
> 
> See above. The point was not that textual diffs should be 
> lost, but that it should be made possible for the diff program
> to recognize identical regions
> (modulo dos line endings, etc) as such.

Got it. Thanks for a clear description. Sorry for having misunderstood.

FWIW, the need to hit `*' to refine for ediff in the situation you describe has
been true for a while, and it is no big deal. Generally, highlighting just the
differences is easier to read, but highlighting everything and then refining is
OK too, if need be.

Thanks to all for working on this.