help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ediff customization: -w -B... + refinement


From: Kevin Rodgers
Subject: Re: ediff customization: -w -B... + refinement
Date: Wed, 04 Oct 2006 09:49:00 -0600
User-agent: Thunderbird 1.5.0.7 (Windows/20060909)

Peter Tury wrote:
I see different results in Emacs ediff and out-of-emacs command line
diff.

I try to get rid of white space and new line diffs, so I tried diff -a
-w -B --binary ... It produces the desired output in command line, but
whitespace- and newline-differences are showed (and treated) in
Emacs. Why? I set ediff-diff-options to "-a -w -B --binary", but it
seems to be ignored? Why? How to get rid of such whitespace diffs? I
tried ##, but nothing changed.

How can check what command was exactly sent by Emacs (to
Windows/diff)? (If I check *ediff-diff*'s content, it is "wrong",
i.e. shows result without -w -B...) And what diff is used? (I have an old
diff also in my path, but I put the directory of the new diff before
that old one's directory in the path variable.)

To see what diff program is used:

M-: (executable-find ediff-diff-program)

I don't think you can find out after the fact what command was run,
but you could see which options are used dynamically by examining the
4th argument passed to ediff-exec-process:

M-x debug-on-entry RET ediff-exec-process

Looking at its source code in ediff-diff.el, I find:

    ;; the --binary option, if present, should be used only for buffer jobs
    ;; or for refining the differences
    (or (string-match "buffer" (symbol-name ediff-job-name))
        (eq buffer ediff-fine-diff-buffer)
        (setq args (delete "--binary" args)))

So maybe you need to use M-x ediff-buffers instead of M-x ediff-files
to use the --binary option.

My other question: what to do if I want refinement to show differences
by chars and not by words?

Try: (setq ediff-forward-word-function 'forward-char)

These makes ediff unusable for me now, because emacs shows totally
wrong lines compared. E.g. if an empty line is deleted and following
lines are reindented then I see (in ediff's windows) as if the
(original) empty line would have been replaced with several new lines
(what are in fact only reindented) and then the original lines are
compared with other lines... :-( I think this is diff's feature, but
can be handled in command line with switches -w -B -- but not in
Emacs?

--
Kevin





reply via email to

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