diff --git a/Lib/ntpath.py b/Lib/ntpath.py index 6b656976a48..3d9e2009d89 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -204,7 +204,7 @@ def splitdrive(p): empty = _get_empty(p) if len(p) > 1: sep = _get_sep(p) - normp = normcase(p) + normp = p.replace(_get_altsep(p), sep) if (normp[0:2] == sep*2) and (normp[2:3] != sep): # is a UNC path: # vvvvvvvvvvvvvvvvvvvv drive letter or UNC path diff --git a/Lib/test/test_ntpath.py b/Lib/test/test_ntpath.py index 0991d15b9ae..767a5b14a20 100644 --- a/Lib/test/test_ntpath.py +++ b/Lib/test/test_ntpath.py @@ -66,6 +66,9 @@ class TestNtpath(unittest.TestCase): ('', '\\\\conky\\\\mountpoint\\foo\\bar')) tester('ntpath.splitdrive("//conky//mountpoint/foo/bar")', ('', '//conky//mountpoint/foo/bar')) + # Issue #19911: UNC part containing U+0130 + self.assertEqual(ntpath.splitdrive('//conky/MOUNTPOİNT/foo/bar'), + ('//conky/MOUNTPOİNT', '/foo/bar')) def test_split(self): tester('ntpath.split("c:\\foo\\bar")', ('c:\\foo', 'bar')) diff --git a/Misc/NEWS b/Misc/NEWS index 3819d6cb7a7..0ccc45cfc40 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -44,6 +44,9 @@ Core and Builtins Library ------- +- Issue #19911: ntpath.splitdrive() now correctly processes the 'İ' character + (U+0130, LATIN CAPITAL LETTER I WITH DOT ABOVE). + - Issue #19532: python -m compileall with no filename/directory arguments now respects the -f and -q flags instead of ignoring them.