changeset 75233:e52e99fc4ca5

(vc-svn-parse-status): Trust the filename argument more than the program's output.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 14 Jan 2007 14:49:28 +0000
parents 037fa20cc6bd
children ad30c7a9a57a
files lisp/ChangeLog lisp/vc-svn.el
diffstat 2 files changed, 16 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun Jan 14 07:58:02 2007 +0000
+++ b/lisp/ChangeLog	Sun Jan 14 14:49:28 2007 +0000
@@ -1,3 +1,8 @@
+2007-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* vc-svn.el (vc-svn-parse-status): Trust the filename argument more
+	than the program's output.
+
 2007-01-14  Juanma Barranquero  <lekktu@gmail.com>
 
 	* kmacro.el (kmacro-insert-counter, kmacro-set-counter)
@@ -27,8 +32,8 @@
 
 2007-01-11  Michael Albinus  <michael.albinus@gmx.de>
 
-	* net/tramp.el (tramp-handle-file-local-copy): Set
-	`enable-multibyte-characters' to nil.  Reported by Chris Moore
+	* net/tramp.el (tramp-handle-file-local-copy):
+	Set `enable-multibyte-characters' to nil.  Reported by Chris Moore
 	<christopher.ian.moore@gmail.com>.
 
 2007-01-11  Stefan Monnier  <monnier@iro.umontreal.ca>
--- a/lisp/vc-svn.el	Sun Jan 14 07:58:02 2007 +0000
+++ b/lisp/vc-svn.el	Sun Jan 14 14:49:28 2007 +0000
@@ -1,6 +1,6 @@
 ;;; vc-svn.el --- non-resident support for Subversion version-control
 
-;; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 
 ;; Author:      FSF (see vc.el for full credits)
 ;; Maintainer:  Stefan Monnier <monnier@gnu.org>
@@ -495,7 +495,7 @@
 					dirname)))
     (goto-char (point-min))
     (when (re-search-forward
-	   ;; Old `svn' used name="svn:dir", newer use just name="".
+	   ;; Old `svn' used name="svn:this_dir", newer use just name="".
 	   (concat "name=\"\\(?:svn:this_dir\\)?\"[\n\t ]*"
 		   "\\(?:[-a-z]+=\"[^\"]*\"[\n\t ]*\\)*?"
 		   "url=\"\\([^\"]+\\)\"") nil t)
@@ -511,9 +511,13 @@
   (let (file status)
     (goto-char (point-min))
     (while (re-search-forward
-	    "^[ ADMCI?!~][ MC][ L][ +][ S]..\\([ *]\\) +\\([-0-9]+\\) +\\([0-9?]+\\) +\\([^ ]+\\) +" nil t)
-      (setq file (expand-file-name
-		  (buffer-substring (point) (line-end-position))))
+            ;; Ignore the files with status in [IX?].
+	    "^[ ACDGMR!~][ MC][ L][ +][ S]..\\([ *]\\) +\\([-0-9]+\\) +\\([0-9?]+\\) +\\([^ ]+\\) +" nil t)
+      ;; If the username contains spaces, the output format is ambiguous,
+      ;; so don't trust the output's filename unless we have to.
+      (setq file (or filename
+                     (expand-file-name
+                      (buffer-substring (point) (line-end-position)))))
       (setq status (char-after (line-beginning-position)))
       (unless (eq status ??)
 	;; `vc-BACKEND-registered' must not set vc-backend,