changeset 50453:e499daf7fb22

(vc-cvs-get-entries): New function that uses the right coding system for accessing CVS/Entries. (vc-cvs-registered, vc-cvs-dir-state-heuristic): Use it.
author André Spiegel <spiegel@gnu.org>
date Sat, 05 Apr 2003 15:51:14 +0000
parents 2147609ae5ad
children 583825022e8f
files lisp/vc-cvs.el
diffstat 1 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/vc-cvs.el	Sat Apr 05 12:59:38 2003 +0000
+++ b/lisp/vc-cvs.el	Sat Apr 05 15:51:14 2003 +0000
@@ -5,7 +5,7 @@
 ;; Author:      FSF (see vc.el for full credits)
 ;; Maintainer:  Andre Spiegel <spiegel@gnu.org>
 
-;; $Id: vc-cvs.el,v 1.51 2003/02/17 08:11:13 spiegel Exp $
+;; $Id: vc-cvs.el,v 1.52 2003/03/27 22:38:38 schwab Exp $
 
 ;; This file is part of GNU Emacs.
 
@@ -169,7 +169,7 @@
         (case-fold-search nil))
     (if (file-readable-p (expand-file-name "CVS/Entries" dirname))
 	(with-temp-buffer
-          (vc-insert-file (expand-file-name "CVS/Entries" dirname))
+          (vc-cvs-get-entries dirname)
           (goto-char (point-min))
 	  (cond
 	   ((re-search-forward
@@ -781,7 +781,7 @@
 (defun vc-cvs-dir-state-heuristic (dir)
   "Find the CVS state of all files in DIR, using only local information."
   (with-temp-buffer
-    (vc-insert-file (expand-file-name "CVS/Entries" dir))
+    (vc-cvs-get-entries dir)
     (goto-char (point-min))
     (while (not (eobp))
       ;; CVS-removed files are not taken under VC control.
@@ -791,7 +791,15 @@
 	    (vc-cvs-parse-entry file t))))
       (forward-line 1))))
 
-
+(defun vc-cvs-get-entries (dir)
+  "Insert the CVS/Entries file from below DIR into the current buffer.
+This function ensures that the correct coding system is used for that,
+which may not be the one that is used for the files' contents.
+CVS/Entries should only be accessed through this function."
+  (let ((coding-system-for-read (or file-name-coding-system
+                                    default-file-name-coding-system)))
+    (vc-insert-file (expand-file-name "CVS/Entries" dir))))
+     
 (defun vc-cvs-valid-symbolic-tag-name-p (tag)
   "Return non-nil if TAG is a valid symbolic tag name."
   ;; According to the CVS manual, a valid symbolic tag must start with