Function: ediff-update-meta-buffer

ediff-update-meta-buffer is a byte-compiled function defined in ediff-mult.el.gz.

Signature

(ediff-update-meta-buffer META-BUF &optional MUST-REDRAW SESSION-NUMBER)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/ediff-mult.el.gz
;; If meta-buf doesn't exist, it is created.  In that case, id doesn't have a
;; parent meta-buf
;; Check if META-BUF exists before calling this function
;; Optional MUST-REDRAW, if non-nil, would force redrawing of the whole meta
;; buffer.  Otherwise, it will just go over the buffer and update activity marks
;; and session status.
;; SESSION-NUMBER, if specified, says which session caused the update.
(defun ediff-update-meta-buffer (meta-buf &optional must-redraw session-number)
  (if (ediff-buffer-live-p meta-buf)
      (ediff-with-current-buffer meta-buf
	(let (overl)
	  (cond (must-redraw ; completely redraw the meta buffer
		 (funcall ediff-meta-redraw-function ediff-meta-list))
		((numberp session-number) ; redraw only for the given session
		 (ediff-update-session-marker-in-dir-meta-buffer
		  session-number))
		(t ; update what changed only, but scan the entire meta buffer
		 (ediff-update-markers-in-dir-meta-buffer ediff-meta-list)))
	  (setq overl (ediff-get-meta-overlay-at-pos (point)))
	  ;; skip the invisible sessions
	  (while (and overl (overlay-get overl 'invisible))
	    (ediff-next-meta-item1)
	    (setq overl (ediff-get-meta-overlay-at-pos (point))))
	  ))))