mirror of
https://github.com/python/cpython.git
synced 2025-10-07 07:31:46 +00:00
Issue #19908: pathlib now joins relative Windows paths correctly when a drive
is present. Original patch by Antoine Pitrou.
This commit is contained in:
parent
1b8b868b84
commit
a993902a28
3 changed files with 53 additions and 5 deletions
|
@ -89,12 +89,16 @@ class _Flavour(object):
|
|||
(drive, root, parts) tuples. Return a new (drive, root, parts) tuple.
|
||||
"""
|
||||
if root2:
|
||||
parts = parts2
|
||||
root = root2
|
||||
if not drv2 and drv:
|
||||
return drv, root2, [drv + root2] + parts2[1:]
|
||||
elif drv2:
|
||||
if drv2 == drv or self.casefold(drv2) == self.casefold(drv):
|
||||
# Same drive => second path is relative to the first
|
||||
return drv, root, parts + parts2[1:]
|
||||
else:
|
||||
parts = parts + parts2
|
||||
# XXX raise error if drv and drv2 are different?
|
||||
return drv2 or drv, root, parts
|
||||
# Second path is non-anchored (common case)
|
||||
return drv, root, parts + parts2
|
||||
return drv2, root2, parts2
|
||||
|
||||
|
||||
class _WindowsFlavour(_Flavour):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue