summaryrefslogtreecommitdiff
path: root/lisp/vc-svn.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/vc-svn.el')
-rw-r--r--lisp/vc-svn.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/lisp/vc-svn.el b/lisp/vc-svn.el
index 0394c11b8de..916930ffde2 100644
--- a/lisp/vc-svn.el
+++ b/lisp/vc-svn.el
@@ -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 @@ and that it passes `vc-svn-global-switches' to it before FLAGS."
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 @@ information about FILENAME and return its status."
(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,