emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master dba9bc9: Refine multi-hop specs in Tramp


From: Michael Albinus
Subject: [Emacs-diffs] master dba9bc9: Refine multi-hop specs in Tramp
Date: Wed, 9 Nov 2016 14:34:57 +0000 (UTC)

branch: master
commit dba9bc9752f62c782853c7a652e84e33f0649c3b
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>

    Refine multi-hop specs in Tramp
    
    * lisp/net/tramp.el (tramp-tramp-file-p): Suppress "/:" and "/c:".
    
    * test/lisp/net/tramp-tests.el
    (tramp-test01-file-name-syntax): Multi-hop specs don't need a
    method.  "/h:" is allowed on non MS Windows.
---
 lisp/net/tramp.el            |    5 +++++
 test/lisp/net/tramp-tests.el |   13 ++++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 8a81311..00ecb37 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1146,6 +1146,11 @@ entry does not exist, return nil."
   "Return t if NAME is a string with Tramp file name syntax."
   (save-match-data
     (and (stringp name)
+        ;; No "/:" and "/c:".  This is not covered by `tramp-file-name-regexp'.
+        (not (string-match
+              (if (memq system-type '(cygwin windows-nt))
+                  "^/[[:alpha:]]?:" "^/:")
+              name))
         (string-match tramp-file-name-regexp name))))
 
 (defun tramp-find-method (method user host)
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index 5d9d3a0..4c3b83c 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -185,6 +185,8 @@ handled properly.  BODY shall not contain a timeout."
   (should (tramp-tramp-file-p 
"/method1:address@hidden|method2:address@hidden:"))
   (should (tramp-tramp-file-p
           
"/method1:address@hidden|method2:address@hidden|method3:address@hidden:"))
+  (should (tramp-tramp-file-p "/host1|host2:"))
+  (should (tramp-tramp-file-p "/address@hidden|address@hidden:"))
 
   ;; No strings.
   (should-not (tramp-tramp-file-p nil))
@@ -193,12 +195,13 @@ handled properly.  BODY shall not contain a timeout."
   (should-not (tramp-tramp-file-p "/::"))
   (should-not (tramp-tramp-file-p "/:@:"))
   (should-not (tramp-tramp-file-p "/:[]:"))
-  ;; Multihops require a method.
-  (should-not (tramp-tramp-file-p "/host1|host2:"))
   ;; Methods or hostnames shall be at least two characters on MS Windows.
-  (when (memq system-type '(cygwin windows-nt))
-      (should-not (tramp-tramp-file-p "/c:/path/to/file"))
-      (should-not (tramp-tramp-file-p "/c::/path/to/file"))))
+  (let ((system-type 'windows-nt))
+    (should-not (tramp-tramp-file-p "/c:/path/to/file"))
+    (should-not (tramp-tramp-file-p "/c::/path/to/file")))
+  (let ((system-type 'gnu/linux))
+    (should (tramp-tramp-file-p "/h:/path/to/file"))
+    (should (tramp-tramp-file-p "/m::/path/to/file"))))
 
 (ert-deftest tramp-test02-file-name-dissect ()
   "Check remote file name components."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]