Function: ediff-keep-window-config

ediff-keep-window-config is a byte-compiled function defined in ediff-wind.el.gz.

Signature

(ediff-keep-window-config CONTROL-BUF)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/ediff-wind.el.gz
;;; Functions to decide when to redraw windows

(defun ediff-keep-window-config (control-buf)
  (and (eq control-buf (current-buffer))
       (/= (buffer-size) 0)
       (ediff-with-current-buffer control-buf
	 (let ((ctl-wind ediff-control-window)
	       (A-wind ediff-window-A)
	       (B-wind ediff-window-B)
	       (C-wind ediff-window-C)
               (ancestor-job ediff-merge-with-ancestor-job)
               (Ancestor-wind ediff-window-Ancestor))

	   (and
	    (ediff-window-visible-p A-wind)
	    (ediff-window-visible-p B-wind)
	    ;; if buffer C is defined then take it into account
	    (or (not ediff-3way-job)
		(ediff-window-visible-p C-wind))
            (or (not ancestor-job)
                (not ediff-show-ancestor)
                (ediff-window-visible-p Ancestor-wind))
	    (eq (window-buffer A-wind) ediff-buffer-A)
	    (eq (window-buffer B-wind) ediff-buffer-B)
	    (or (not ediff-3way-job)
		(eq (window-buffer C-wind) ediff-buffer-C))
            (or (not ancestor-job)
                (not ediff-show-ancestor)
                (eq (window-buffer Ancestor-wind) ediff-ancestor-buffer))
	    (string= ediff-window-config-saved
		     (format "%S%S%S%S%S%S%S%S"
			     ctl-wind A-wind B-wind C-wind Ancestor-wind
			     ediff-split-window-function
			     (ediff-multiframe-setup-p)
			     ediff-wide-display-p)))))))