File tree Expand file tree Collapse file tree 2 files changed +25
-2
lines changed Expand file tree Collapse file tree 2 files changed +25
-2
lines changed Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ var isAbsolute =
1414 * @returns  {boolean } `true` if path is absolute 
1515 */ 
1616path . isAbsolute  =  function  isAbsolute ( path )  { 
17-     return  / ^ (?: \/ | \w + : ) / . test ( path ) ; 
17+     return  / ^ (?: \/ | \w + : | \\ \\ \w + ) / . test ( path ) ; 
1818} ; 
1919
2020var  normalize  = 
@@ -24,6 +24,13 @@ var normalize =
2424 * @returns  {string } Normalized path 
2525 */ 
2626path . normalize  =  function  normalize ( path )  { 
27+     var  firstTwoCharacters  =  path . substring ( 0 , 2 ) ; 
28+     var  uncPrefix  =  "" ; 
29+     if  ( firstTwoCharacters  ===  "\\\\" )  { 
30+         uncPrefix  =  firstTwoCharacters ; 
31+         path  =  path . substring ( 2 ) ; 
32+     } 
33+ 
2734    path  =  path . replace ( / \\ / g,  "/" ) 
2835               . replace ( / \/ { 2 , } / g,  "/" ) ; 
2936    var  parts     =  path . split ( "/" ) , 
@@ -44,7 +51,7 @@ path.normalize = function normalize(path) {
4451        else 
4552            ++ i ; 
4653    } 
47-     return  prefix  +  parts . join ( "/" ) ; 
54+     return  uncPrefix   +   prefix  +  parts . join ( "/" ) ; 
4855} ; 
4956
5057/** 
Original file line number Diff line number Diff line change @@ -10,6 +10,8 @@ tape.test("path", function(test) {
1010    test . notOk ( path . isAbsolute ( "some\\path\\file.js" ) ,  "should identify relative windows paths" ) ; 
1111    test . notOk ( path . isAbsolute ( "some/path/file.js" ) ,  "should identify relative unix paths" ) ; 
1212
13+     test . ok ( path . isAbsolute ( "\\\\some-unc\\path\\file.js" ) ,  "should identify windows unc paths" ) ; 
14+ 
1315    var  paths  =  [ 
1416        { 
1517            actual : "X:\\some\\..\\.\\path\\\\file.js" , 
@@ -45,6 +47,20 @@ tape.test("path", function(test) {
4547        } ,  { 
4648            actual : "/.././path//file.js" , 
4749            normal : "/path/file.js" 
50+         } ,  { 
51+             actual : "\\\\some-unc\\path\\file.js" , 
52+             normal : "\\\\some-unc/path/file.js" , 
53+             resolve : { 
54+                 origin : "\\\\some-unc\\path\\origin.js" , 
55+                 expected : "\\\\some-unc/path/file.js" 
56+             } 
57+         } ,  { 
58+             actual : "\\\\some-unc\\path\\..\\file.js" , 
59+             normal : "\\\\some-unc/file.js" , 
60+             resolve : { 
61+                 origin : "\\\\some-unc\\path\\..\\origin.js" , 
62+                 expected : "\\\\some-unc/file.js" 
63+             } 
4864        } 
4965    ] ; 
5066
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments