Function: ediff-collect-custom-diffs

ediff-collect-custom-diffs is an interactive and byte-compiled function defined in ediff-mult.el.gz.

Signature

(ediff-collect-custom-diffs)

Documentation

Collect custom diffs of marked sessions in buffer *Ediff Multifile Diffs*.

This operation is defined only for ediff-directories and ediff-directory-revisions, since its intent is to produce multifile patches. For ediff-directory-revisions, we insist that all marked sessions must be active.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/vc/ediff-mult.el.gz
(defun ediff-collect-custom-diffs ()
  "Collect custom diffs of marked sessions in buffer `*Ediff Multifile Diffs*'.
This operation is defined only for `ediff-directories' and
`ediff-directory-revisions', since its intent is to produce
multifile patches.  For `ediff-directory-revisions', we insist that
all marked sessions must be active."
  (interactive)
  (let ((coding-system-for-read ediff-coding-system-for-read))
    (unless (and (ediff-buffer-live-p ediff-meta-diff-buffer)
                 ;; We assume `ediff-meta-diff-buffer' doesn't
                 ;; visit any file.  But if the user saves the
                 ;; `ediff-meta-diff-buffer' to a file, that
                 ;; assumption isn't right anymore.  (Bug#3348)
                 ;; So, if `ediff-meta-diff-buffer' is visiting some
                 ;; file, create a new buffer rather than reusing it.
                 (not (buffer-file-name ediff-meta-diff-buffer)))
	(setq ediff-meta-diff-buffer
	      (get-buffer-create
	       (ediff-unique-buffer-name "*Ediff Multifile Diffs" "*"))))
    (ediff-with-current-buffer ediff-meta-diff-buffer
			       (setq buffer-read-only nil)
			       (erase-buffer))
    (if (> (ediff-operate-on-marked-sessions #'ediff-append-custom-diff) 0)
	;; did something
	(progn
	  (display-buffer ediff-meta-diff-buffer 'not-this-window)
	  (ediff-with-current-buffer ediff-meta-diff-buffer
				     (set-buffer-modified-p nil)
				     (setq buffer-read-only t))
	  (if (fboundp 'diff-mode)
	      (with-current-buffer ediff-meta-diff-buffer
		(diff-mode))))
      (beep)
      (message "No marked sessions found"))))