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)))))))