From: André Spiegel Date: Mon, 17 Feb 2003 08:11:13 +0000 (+0000) Subject: (vc-cvs-dir-state): Protect against DIR not being under CVS control. X-Git-Tag: ttn-vms-21-2-B4~11166 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4b180a76d247d1ee3e5534b8ea3fe0f572937b96;p=emacs.git (vc-cvs-dir-state): Protect against DIR not being under CVS control. --- diff --git a/lisp/vc-cvs.el b/lisp/vc-cvs.el index 5da3e5a092a..c6f3c2b2f55 100644 --- a/lisp/vc-cvs.el +++ b/lisp/vc-cvs.el @@ -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 @@ See also variable `vc-cvs-sticky-date-format-string'." (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'."