@@ -88,23 +88,6 @@ def parse_parts(self, parts):
8888 parsed .reverse ()
8989 return drv , root , parsed
9090
91- def join_parsed_parts (self , drv , root , parts , drv2 , root2 , parts2 ):
92- """
93- Join the two paths represented by the respective
94- (drive, root, parts) tuples. Return a new (drive, root, parts) tuple.
95- """
96- if root2 :
97- if not drv2 and drv :
98- return drv , root2 , [drv + root2 ] + parts2 [1 :]
99- elif drv2 :
100- if drv2 == drv or self .casefold (drv2 ) == self .casefold (drv ):
101- # Same drive => second path is relative to the first
102- return drv , root , parts + parts2 [1 :]
103- else :
104- # Second path is non-anchored (common case)
105- return drv , root , parts + parts2
106- return drv2 , root2 , parts2
107-
10891
10992class _WindowsFlavour (_Flavour ):
11093 # Reference for Windows paths can be found at
@@ -558,10 +541,27 @@ def _format_parsed_parts(cls, drv, root, parts):
558541
559542 def _make_child (self , args ):
560543 drv , root , parts = self ._parse_args (args )
561- drv , root , parts = self ._flavour . join_parsed_parts (
544+ drv , root , parts = self ._join_parsed_parts (
562545 self ._drv , self ._root , self ._parts , drv , root , parts )
563546 return self ._from_parsed_parts (drv , root , parts )
564547
548+ def _join_parsed_parts (self , drv , root , parts , drv2 , root2 , parts2 ):
549+ """
550+ Join the two paths represented by the respective
551+ (drive, root, parts) tuples. Return a new (drive, root, parts) tuple.
552+ """
553+ if root2 :
554+ if not drv2 and drv :
555+ return drv , root2 , [drv + root2 ] + parts2 [1 :]
556+ elif drv2 :
557+ if drv2 == drv or self ._flavour .casefold (drv2 ) == self ._flavour .casefold (drv ):
558+ # Same drive => second path is relative to the first
559+ return drv , root , parts + parts2 [1 :]
560+ else :
561+ # Second path is non-anchored (common case)
562+ return drv , root , parts + parts2
563+ return drv2 , root2 , parts2
564+
565565 def __str__ (self ):
566566 """Return the string representation of the path, suitable for
567567 passing to system calls."""
0 commit comments