(perl #123724) don't translate ... to ..\.. on Win32
authorTony Cook <tony@develop-help.com>
Thu, 1 Nov 2018 02:43:17 +0000 (13:43 +1100)
committerTony Cook <tony@develop-help.com>
Mon, 14 Jan 2019 01:09:30 +0000 (12:09 +1100)
Apparently this was a command.com thing that Win32 doesn't support.

dist/PathTools/lib/File/Spec/Win32.pm
dist/PathTools/t/Spec.t

index 43f96b8..b87e529 100644 (file)
@@ -407,16 +407,6 @@ sub _canon_cat                             # @path -> path
               )+                       # performance boost -- I do not know why
             }{\\}gx;
 
-    # XXX I do not know whether more dots are supported by the OS supporting
-    #     this ... annotation (NetWare or symbian but not MSWin32).
-    #     Then .... could easily become ../../.. etc:
-    # Replace \.\.\. by (\.\.\.+)  and substitute with
-    # { $1 . ".." . "\\.." x (length($2)-2) }gex
-                                       # ... --> ../..
-    $path =~ s{ (\A|\\)                        # at begin or after a slash
-               \.\.\.
-               (?=\\|\z)               # at end or followed by slash
-            }{$1..\\..}gx;
                                        # xx\yy\..\zz --> xx\zz
     while ( $path =~ s{(?:
                (?:\A|\\)               # at begin or after a slash
index 76ade74..5f67190 100644 (file)
@@ -277,9 +277,9 @@ my @tests = (
 [ "Win32->canonpath('//a/b/../../c')",  '\\\\a\\b\\c'         ],
 [ "Win32->canonpath('//a/b/c/../d')",   '\\\\a\\b\\d'         ],
 [ "Win32->canonpath('//a/b/c/../../d')",'\\\\a\\b\\d'         ],
-[ "Win32->canonpath('//a/b/c/.../d')",  '\\\\a\\b\\d'         ],
+[ "Win32->canonpath('//a/b/c/.../d')",  '\\\\a\\b\\c\\...\\d' ],
 [ "Win32->canonpath('/a/b/c/../../d')", '\\a\\d'              ],
-[ "Win32->canonpath('/a/b/c/.../d')",   '\\a\\d'              ],
+[ "Win32->canonpath('/a/b/c/.../d')",   '\\a\\b\\c\\...\\d'   ],
 [ "Win32->canonpath('\\../temp\\')",    '\\temp'              ],
 [ "Win32->canonpath('\\../')",          '\\'                  ],
 [ "Win32->canonpath('\\..\\')",         '\\'                  ],