# HG changeset patch # User Andr Spiegel # Date 1045469473 0 # Node ID 02529e3b1f2c6ee6a907e08065703ab7fb5f75ca # Parent ae038951ece0d945fa3ba24a93a72ed3b9a1ffe8 (vc-cvs-dir-state): Protect against DIR not being under CVS control. diff -r ae038951ece0 -r 02529e3b1f2c lisp/vc-cvs.el --- a/lisp/vc-cvs.el Mon Feb 17 07:54:27 2003 +0000 +++ b/lisp/vc-cvs.el Mon Feb 17 08:11:13 2003 +0000 @@ -5,7 +5,7 @@ ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel -;; $Id: vc-cvs.el,v 1.49 2002/10/17 15:43:48 lektu Exp $ +;; $Id: vc-cvs.el,v 1.50 2002/12/26 14:05:48 spiegel Exp $ ;; This file is part of GNU Emacs. @@ -207,19 +207,21 @@ (defun vc-cvs-dir-state (dir) "Find the CVS state of all files in DIR." - (if (vc-cvs-stay-local-p dir) - (vc-cvs-dir-state-heuristic dir) - (let ((default-directory dir)) - ;; Don't specify DIR in this command, the default-directory is - ;; enough. Otherwise it might fail with remote repositories. - (with-temp-buffer - (vc-cvs-command t 0 nil "status" "-l") - (goto-char (point-min)) - (while (re-search-forward "^=+\n\\([^=\n].*\n\\|\n\\)+" nil t) - (narrow-to-region (match-beginning 0) (match-end 0)) - (vc-cvs-parse-status) - (goto-char (point-max)) - (widen)))))) + ;; if DIR is not under CVS control, don't do anything + (if (file-readable-p (expand-file-name "CVS/Entries" dir)) + (if (vc-cvs-stay-local-p dir) + (vc-cvs-dir-state-heuristic dir) + (let ((default-directory dir)) + ;; Don't specify DIR in this command, the default-directory is + ;; enough. Otherwise it might fail with remote repositories. + (with-temp-buffer + (vc-do-command t 0 "cvs" nil "status" "-l") + (goto-char (point-min)) + (while (re-search-forward "^=+\n\\([^=\n].*\n\\|\n\\)+" nil t) + (narrow-to-region (match-beginning 0) (match-end 0)) + (vc-cvs-parse-status) + (goto-char (point-max)) + (widen))))))) (defun vc-cvs-workfile-version (file) "CVS-specific version of `vc-workfile-version'."