GNU bug report logs - #17388
24.4.50; REGRESSION: Ediff - 1) wrong face, 2) incorrect diffing

Previous Next

Package: emacs;

Reported by: Drew Adams <drew.adams <at> oracle.com>

Date: Fri, 2 May 2014 15:16:02 UTC

Severity: normal

Found in version 24.4.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 17388 <at> debbugs.gnu.org, kifer <at> cs.stonybrook.edu, monnier <at> iro.umontreal.ca
Subject: bug#17388: 24.4.50; REGRESSION: Ediff - 1) wrong face, 2) incorrect diffing
Date: Sat, 03 May 2014 09:48:27 +0300
> Date: Fri, 2 May 2014 20:11:54 -0700 (PDT)
> From: Drew Adams <drew.adams <at> oracle.com>
> Cc: 17388-done <at> debbugs.gnu.org, Michael Kifer <kifer <at> cs.stonybrook.edu>
> 
> There should be EITHER, (a) as previously, NO fine diffs shown for
> other than the current diff OR (b) CORRECT (helpful) fine diffs
> shown for the non-current diffs.

Ediff's "fine diffs" are word-granular.  That is, Ediff breaks each
line into "words", then passes the result to the Diff program for
comparisoon, and reflects the results with different faces.  AFAIR,
this has always been that way.

The Ediff manual says:

  `ediff-forward-word-function'
       This variable controls how fine differences are computed.  The
       value must be a Lisp function that determines how the current
       difference region should be split into words.

       Fine differences are computed by first splitting the current
       difference region into words and then passing the result to
       `ediff-diff-program'.  For the default forward word function
       (which is `ediff-forward-word'), a word is a string consisting of
       letters, `-', or `_'; a string of punctuation symbols; a string of
       digits, or a string consisting of symbols that are neither space,
       nor a letter.

       This default behavior is controlled by four variables:
       `ediff-word-1', ..., `ediff-word-4'.  See the on-line
       documentation for these variables and for the function
       `ediff-forward-word' for an explanation of how to modify these
       variables.

I think what you describe in your item #2 is exactly the above
behavior.  (The problem described under #1 is now fixed by Stefan.)

> Stephen Berman's confirmation indicates that Cygwin `diff' is
> irrelevant:
> 
> > I see both of these problematic highlightings on GNU/Linux builds from
> > both the trunk (bzr 117042) and the emacs-24 branch (bzr 117049).

I can confirm that too, but (a) I don't think the 2nd issue
constitutes a "problem" (see above), and (b) it is definitely not a
"REGRESSION", because older Emacsen behaved the same wrt fine diffs
inside a line.




This bug report was last modified 11 years and 79 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.