Function: ediff-setup-windows-plain-merge

ediff-setup-windows-plain-merge is a byte-compiled function defined in ediff-wind.el.gz.

Signature

(ediff-setup-windows-plain-merge BUF-A BUF-B BUF-C CONTROL-BUFFER)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/ediff-wind.el.gz
(defun ediff-setup-windows-plain-merge (buf-A buf-B buf-C control-buffer)
  ;; skip dedicated and unsplittable frames
  (ediff-destroy-control-frame control-buffer)
  (let ((window-min-height 1)
	(with-Ancestor-p (with-current-buffer control-buffer
                           ediff-merge-with-ancestor-job))
	split-window-function
	merge-window-share merge-window-lines
	(buf-Ancestor (with-current-buffer control-buffer
                        ediff-ancestor-buffer))
	wind-A wind-B wind-C wind-Ancestor)
    (with-current-buffer control-buffer
      (setq merge-window-share ediff-merge-window-share
	    ;; this lets us have local versions of ediff-split-window-function
	    split-window-function ediff-split-window-function))
    (delete-other-windows)
    (set-window-dedicated-p (selected-window) nil)
    (split-window-vertically)
    (ediff-select-lowest-window)
    (ediff-setup-control-buffer control-buffer)

    ;; go to the upper window and split it betw A, B, and possibly C
    (other-window 1)
    (setq merge-window-lines
	  (max 2 (round (* (window-height) merge-window-share))))
    (switch-to-buffer buf-A)
    (setq wind-A (selected-window))

    (split-window-vertically (max 2 (- (window-height) merge-window-lines)))
    (if (eq (selected-window) wind-A)
	(other-window 1))
    (setq wind-C (selected-window))
    (switch-to-buffer buf-C)

    (when (and ediff-show-ancestor with-Ancestor-p)
      (select-window wind-C)
      (funcall split-window-function)
      (when (eq (selected-window) wind-C)
        (other-window 1))
      (switch-to-buffer buf-Ancestor)
      (setq wind-Ancestor (selected-window)))

    (select-window wind-A)
    (funcall split-window-function)

    (if (eq (selected-window) wind-A)
	(other-window 1))
    (switch-to-buffer buf-B)
    (setq wind-B (selected-window))

    (with-current-buffer control-buffer
      (setq ediff-window-A wind-A
	    ediff-window-B wind-B
	    ediff-window-C wind-C
            ediff-window-Ancestor wind-Ancestor))

    (ediff-select-lowest-window)
    (ediff-setup-control-buffer control-buffer)
    ))