Function: vc-dir--buffers-dolist
vc-dir--buffers-dolist is a macro defined in vc-dir.el.gz.
Signature
(vc-dir--buffers-dolist STATUS-BUF &rest BODY)
Documentation
Bind STATUS-BUF to each of vc-dir-buffers in turn and execute BODY.
Also removes any out-of-date entries in vc-dir-buffers.
Source Code
;; Defined in /usr/src/emacs/lisp/vc/vc-dir.el.gz
(defmacro vc-dir--buffers-dolist (status-buf &rest body)
"Bind STATUS-BUF to each of `vc-dir-buffers' in turn and execute BODY.
Also removes any out-of-date entries in `vc-dir-buffers'."
(declare (indent 1) (debug (sexp body)))
(cl-with-gensyms (drop)
`(let (,drop)
(save-current-buffer
(unwind-protect
(dolist (,status-buf vc-dir-buffers)
(if (not (buffer-live-p status-buf))
(push ,status-buf ,drop)
(set-buffer ,status-buf)
(if (not (derived-mode-p 'vc-dir-mode))
(push ,status-buf ,drop)
,@body)))
;; Remove out-of-date entries from `vc-dir-buffers'.
(setq vc-dir-buffers
(cl-nset-difference vc-dir-buffers ,drop :test #'eq)))))))