Function: vc-dir-mark-unmark

vc-dir-mark-unmark is a byte-compiled function defined in vc-dir.el.gz.

Signature

(vc-dir-mark-unmark MARK-UNMARK-FUNCTION)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/vc-dir.el.gz
(defun vc-dir-mark-unmark (mark-unmark-function)
  (if (use-region-p)
      (let ((processed-line nil)
	    (lastl (line-number-at-pos (region-end))))
	(save-excursion
	  (goto-char (region-beginning))
	  (while (and (<= (line-number-at-pos) lastl)
                      ;; We make sure to not get stuck processing the
                      ;; same line in an infinite loop.
		      (not (eq processed-line (line-number-at-pos))))
	    (setq processed-line (line-number-at-pos))
	    (condition-case nil
                ;; Avoid any prompting.
                (let (vc-dir-allow-mass-mark-changes)
		  (funcall mark-unmark-function))
	      ;; `vc-dir-mark-file' signals an error if we try marking
	      ;; a directory containing marked files in its tree, or a
	      ;; file in a marked directory tree.  Just continue.
	      (error (vc-dir-next-line 1))))))
    (funcall mark-unmark-function)))