Function: ediff-meta-mark-equal-files

ediff-meta-mark-equal-files is an interactive and byte-compiled function defined in ediff-mult.el.gz.

Signature

(ediff-meta-mark-equal-files &optional ACTION)

Documentation

Run through the session list and mark identical files.

This is used only for sessions that involve 2 or 3 files at the same time. ACTION is an optional argument that can be ?h, ?m, ?=, to mark for hiding, mark for operation, or simply indicate which are equal files. If it is nil, then last-command-event is used to decide which action to take.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/vc/ediff-mult.el.gz
;; ACTION is ?h, ?m, ?=: to mark for hiding, mark for operation, or simply
;; indicate which are equal files
(defun ediff-meta-mark-equal-files (&optional action)
  "Run through the session list and mark identical files.
This is used only for sessions that involve 2 or 3 files at the same time.
ACTION is an optional argument that can be ?h, ?m, ?=, to mark for hiding, mark
for operation, or simply indicate which are equal files.  If it is nil, then
`last-command-event' is used to decide which action to take."
  (interactive)
  (if (null action)
      (setq action last-command-event))
  (let ((list (cdr ediff-meta-list))
	marked1 marked2 marked3
	fileinfo1 fileinfo2 fileinfo3 elt)
    (message "Comparing files...")
    (while (setq elt (car list))
      (setq fileinfo1 (ediff-get-session-objA elt)
	    fileinfo2 (ediff-get-session-objB elt)
	    fileinfo3 (ediff-get-session-objC elt))
      (ediff-set-file-eqstatus fileinfo1 nil)
      (ediff-set-file-eqstatus fileinfo2 nil)
      (ediff-set-file-eqstatus fileinfo3 nil)

      (setq marked1 t
	    marked2 t
	    marked3 t)
      (or (ediff-mark-if-equal fileinfo1 fileinfo2)
	  (setq marked1 nil))
      (if (ediff-metajob3)
	  (progn
	    (or (ediff-mark-if-equal fileinfo1 fileinfo3)
		(setq marked2 nil))
	    (or (ediff-mark-if-equal fileinfo2 fileinfo3)
		(setq marked3 nil))))
      (if (and marked1 marked2 marked3)
	  (cond ((eq action ?h)
		 (ediff-mark-session-for-hiding elt 'mark))
		((eq action ?m)
		 (ediff-mark-session-for-operation elt 'mark))
		))
      (setq list (cdr list)))
    (message "Comparing files... Done"))
  (setq ediff-recurse-to-subdirectories nil)
  (ediff-update-meta-buffer (current-buffer) 'must-redraw))