Subject: bug#25493: 26.0.50; ediff merge should (optionally) show ancestor in fourth window

From: [email-masked]
Date: Sat, 11 Mar 2017 08:45:40 -0500

Tino Calancha <[email-masked]> writes:

> OK.  I have simplified the patch a lot.  I have restricted to the problem
> in hands: to show the buffer ancestor in 3way merges.  The refinement of
> this buffer must keep in the TODO list (see below).

Thanks, it's a lot more comprehensible now.

> Subject: [PATCH 2/2] Show ancestor buffer in 3way merges
>
> Add an option ediff-show-ancestor', to control if the ancestor buffer
> must be shown in 3way merges (Bug#25493);  set it non-nil by default.
                                           ^^
Extra space there.

> -
> -    ;; In case of merge job, fool it into thinking that it is just doing
> -    ;; comparison
> -    (let ((ediff-setup-diff-regions-function ediff-setup-diff-regions-function)
> -	  (ediff-3way-comparison-job ediff-3way-comparison-job)
> -	  (ediff-merge-job ediff-merge-job)
> -	  (ediff-merge-with-ancestor-job ediff-merge-with-ancestor-job)
> -	  (ediff-job-name ediff-job-name))
> -      (if ediff-merge-job
> -	  (setq ediff-setup-diff-regions-function 'ediff-setup-diff-regions3
> -		ediff-3way-comparison-job t
> -		ediff-merge-job nil
> -		ediff-merge-with-ancestor-job nil
> -		ediff-job-name 'ediff-files3))
> -      (funcall ediff-setup-diff-regions-function file-A file-B file-C))
> -
> +    (funcall ediff-setup-diff-regions-function file-A file-B
> +             (if ediff-merge-with-ancestor-job file-Ancestor file-C))

It works when I tested it, so I guess this is correct, but it's not
really obvious to me why (i.e., why we no longer need to "fool it").
Could you add an explanation to the commit message?

Otherwise looks good to me.