Function: ediff-operate-on-marked-sessions
ediff-operate-on-marked-sessions is a byte-compiled function defined
in ediff-mult.el.gz.
Signature
(ediff-operate-on-marked-sessions OPERATION)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/ediff-mult.el.gz
;; Apply OPERATION to marked sessions. Operation expects one argument of type
;; meta-list member (not the first one), i.e., a regular session description.
;; Returns number of marked sessions on which operation was performed
(defun ediff-operate-on-marked-sessions (operation)
(let ((grp-buf (ediff-get-group-buffer ediff-meta-list))
(meta-list (cdr ediff-meta-list))
(marksym ?*)
(numMarked 0)
(sessionNum 0)
(diff-buffer ediff-meta-diff-buffer)
session-buf elt)
(while meta-list
(setq elt (car meta-list)
meta-list (cdr meta-list)
sessionNum (1+ sessionNum))
(cond ((eq (ediff-get-session-status elt) marksym)
(save-excursion
(setq numMarked (1+ numMarked))
(funcall operation elt sessionNum)))
;; The following goes into a session represented by a subdirectory
;; and applies operation to marked sessions there
((and (ediff-meta-session-p elt)
(ediff-buffer-live-p
(setq session-buf (ediff-get-session-buffer elt))))
(setq numMarked
(+ numMarked
(ediff-with-current-buffer session-buf
;; pass meta-diff along
(setq ediff-meta-diff-buffer diff-buffer)
;; collect diffs in child group
(ediff-operate-on-marked-sessions operation)))))))
(ediff-update-meta-buffer grp-buf 'must-redraw) ; just in case
numMarked
))