Function: ediff-redraw-registry-buffer
ediff-redraw-registry-buffer is a byte-compiled function defined in
ediff-mult.el.gz.
Signature
(ediff-redraw-registry-buffer &optional IGNORE)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/ediff-mult.el.gz
;; argument is ignored
(defun ediff-redraw-registry-buffer (&optional _ignore)
(ediff-with-current-buffer ediff-registry-buffer
(let ((point (point))
elt bufAname bufBname bufCname cur-diff total-diffs pt
job-name meta-list registry-list buffer-read-only)
(erase-buffer)
;; delete phony overlays that used to represent sessions before the buff
;; was redrawn
(mapc #'delete-overlay (overlays-in 1 1))
(insert (substitute-command-keys "\
This is a registry of all active Ediff sessions.
Useful commands:
mouse-2, `v', RET over a session record: switch to that session
M over a session record: display the associated session group
R in any Ediff session: display session registry
n,SPC: next session
p,DEL: previous session
E: browse Ediff manual
q: bury registry
\t\tActive Ediff Sessions:
\t\t----------------------
"))
;; purge registry list from dead buffers
(mapc (lambda (elt)
(if (not (ediff-buffer-live-p elt))
(setq ediff-session-registry
(delq elt ediff-session-registry))))
ediff-session-registry)
(if (null ediff-session-registry)
(insert " ******* No active Ediff sessions *******\n"))
(setq registry-list ediff-session-registry)
(while registry-list
(setq elt (car registry-list)
registry-list (cdr registry-list))
(if (ediff-buffer-live-p elt)
(if (ediff-with-current-buffer elt
(setq job-name ediff-metajob-name
meta-list ediff-meta-list)
(and ediff-metajob-name
(not (eq ediff-metajob-name 'ediff-registry))))
(progn
(setq pt (point))
(insert (format " *group*\t%s: %s\n"
(buffer-name elt)
(ediff-abbrev-jobname job-name)))
(insert (format "\t\t %s %s %s\n"
(ediff-abbreviate-file-name
(ediff-get-group-objA meta-list))
(ediff-abbreviate-file-name
(if (stringp
(ediff-get-group-objB meta-list))
(ediff-get-group-objB meta-list)
""))
(ediff-abbreviate-file-name
(if (stringp
(ediff-get-group-objC meta-list))
(ediff-get-group-objC meta-list)
""))))
(ediff-set-meta-overlay pt (point) elt))
(progn
(ediff-with-current-buffer elt
(setq bufAname (if (ediff-buffer-live-p ediff-buffer-A)
(buffer-name ediff-buffer-A)
"!!!killed buffer!!!")
bufBname (if (ediff-buffer-live-p ediff-buffer-B)
(buffer-name ediff-buffer-B)
"!!!killed buffer!!!")
bufCname (cond ((not (ediff-3way-job))
"")
((ediff-buffer-live-p ediff-buffer-C)
(buffer-name ediff-buffer-C))
(t "!!!killed buffer!!!")))
(setq total-diffs (format "%-4d" ediff-number-of-differences)
cur-diff
(cond ((= ediff-current-difference -1) " _")
((= ediff-current-difference
ediff-number-of-differences)
" $")
(t (format
"%4d" (1+ ediff-current-difference))))
job-name ediff-job-name))
;; back in the meta buf
(setq pt (point))
(insert cur-diff "/" total-diffs "\t"
(buffer-name elt)
(format ": %s" (ediff-abbrev-jobname job-name)))
(insert
"\n\t\t " bufAname " " bufBname " " bufCname "\n")
(ediff-set-meta-overlay pt (point) elt))))
) ; while
(set-buffer-modified-p nil)
(goto-char point)
)))