Function: ediff-redraw-directory-group-buffer
ediff-redraw-directory-group-buffer is a byte-compiled function
defined in ediff-mult.el.gz.
Signature
(ediff-redraw-directory-group-buffer META-LIST)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/ediff-mult.el.gz
;; this is a setup function for ediff-directories
;; must return meta-buffer
(defun ediff-redraw-directory-group-buffer (meta-list)
;; extract directories
(let ((meta-buf (ediff-get-group-buffer meta-list))
(empty t)
(sessionNum 0)
regexp elt merge-autostore-dir
point tmp-list buffer-read-only)
(ediff-with-current-buffer meta-buf
(setq point (point))
(erase-buffer)
;; delete phony overlays that used to represent sessions before the buff
;; was redrawn
(mapc #'delete-overlay (overlays-in 1 1))
(setq regexp (ediff-get-group-regexp meta-list)
merge-autostore-dir
(ediff-get-group-merge-autostore-dir meta-list))
(if ediff-verbose-help-enabled
(progn
(insert (format ediff-meta-buffer-verbose-message
(ediff-abbrev-jobname ediff-metajob-name)))
(cond ((ediff-collect-diffs-metajob)
(insert
" P:\tcollect custom diffs of all marked sessions\n"))
((ediff-patch-metajob)
(insert
" P:\tshow patch appropriately for the context (session or group)\n")))
(insert
" ^:\tshow parent session group\n")
(or (ediff-one-filegroup-metajob)
(insert
" D:\tshow differences among directories\n"
" ==:\tfor each session, show which files are identical\n"
" =h:\tlike ==, but also marks sessions for hiding\n"
" =m:\tlike ==, but also marks sessions for operation\n\n")))
(insert (format ediff-meta-buffer-brief-message
(ediff-abbrev-jobname ediff-metajob-name))))
(insert "\n")
(if (and (stringp regexp) (> (length regexp) 0))
(insert
(format "*** Filter-through regular expression: %s\n" regexp)))
(ediff-insert-dirs-in-meta-buffer meta-list)
(if (and ediff-autostore-merges (ediff-merge-metajob)
(ediff-nonempty-string-p merge-autostore-dir))
(insert (format
"\nMerge results are automatically stored in:\n\t%s\n"
merge-autostore-dir)))
(insert "\n
Size Last modified Name
----------------------------------------------
")
;; discard info on directories and regexp
(setq meta-list (cdr meta-list)
tmp-list meta-list)
(while (and tmp-list empty)
(if (and (car tmp-list)
(not (eq (ediff-get-session-status (car tmp-list)) ?I)))
(setq empty nil))
(setq tmp-list (cdr tmp-list)))
(if empty
(insert
" ****** ****** This session group has no members\n"))
;; now organize file names like this:
;; use-mark sizeA dateA sizeB dateB filename
;; make sure directories are displayed with a trailing slash.
(while meta-list
(setq elt (car meta-list)
meta-list (cdr meta-list)
sessionNum (1+ sessionNum))
(if (eq (ediff-get-session-status elt) ?I)
()
(ediff-insert-session-info-in-meta-buffer elt sessionNum)))
(set-buffer-modified-p nil)
(goto-char point)
meta-buf)))