changeset 111559:7ac0fe73f41d

Avoid interpreting file:/foo:/bar URLs via tramp.
author Lars Magne Ingebrigtsen <larsi@gnus.org>
date Tue, 16 Nov 2010 14:46:12 +0100
parents a673d202fe46
children 22fafcf25a54
files lisp/url/ChangeLog lisp/url/url-file.el
diffstat 2 files changed, 18 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/url/ChangeLog	Mon Nov 15 22:44:51 2010 -0800
+++ b/lisp/url/ChangeLog	Tue Nov 16 14:46:12 2010 +0100
@@ -1,3 +1,8 @@
+2010-11-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* url-file.el (url-file-build-filename): Avoid interpreting
+	file:/foo:/bar URLs via tramp.
+
 2010-10-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
 	* url-gw.el (url-open-stream): Use open-gnutls-stream if it exists.
--- a/lisp/url/url-file.el	Mon Nov 15 22:44:51 2010 -0800
+++ b/lisp/url/url-file.el	Tue Nov 16 14:46:12 2010 +0100
@@ -103,12 +103,19 @@
 		     (format "%s#%d" host port))
 		 host))
 	 (file (url-unhex-string (url-filename url)))
-	 (filename (if (or user (not (url-file-host-is-local-p host)))
-		       (concat "/" (or user "anonymous") "@" site ":" file)
-		     (if (and (memq system-type '(ms-dos windows-nt))
-			      (string-match "^/[a-zA-Z]:/" file))
-			 (substring file 1)
-		       file)))
+	 (filename (cond
+		    ;; ftp: URL.
+		    ((or user (not (url-file-host-is-local-p host)))
+		     (concat "/" (or user "anonymous") "@" site ":" file))
+		    ;; file: URL on Windows.
+		    ((and (string-match "\\`/[a-zA-Z]:/" file)
+			  (memq system-type '(ms-dos windows-nt)))
+		     (substring file 1))
+		    ;; file: URL with a file:/bar:/foo-like spec.
+		    ((string-match "\\`/[^/]+:/" file)
+		     (concat "/:" file))
+		    (t
+		     file)))
 	 pos-index)
 
     (and user pass