]> git.eshelyaron.com Git - emacs.git/commitdiff
(vc-svn-parse-status): Trust the filename argument more
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 14 Jan 2007 14:49:28 +0000 (14:49 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 14 Jan 2007 14:49:28 +0000 (14:49 +0000)
than the program's output.

lisp/ChangeLog
lisp/vc-svn.el

index 793c014b6708d733766206b06fa9e83b3965e366..ee6561fdd230c362ac3f9426e00f728cd959f1cf 100644 (file)
@@ -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>
index 0394c11b8de22375cac4e3c40bb5d44981455bb9..916930ffde2774d588b36b6e0709f8cee75ac595 100644 (file)
@@ -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,