On windows, os.chdir given unicode was not working if GetCurrentDirectoryW
returned a path longer than MAX_PATH. (But It's doubtful this code path is really executed because I cannot move to such directory on win2k)
This commit is contained in:
parent
fc72de7bca
commit
10a018c285
|
@ -12,6 +12,10 @@ What's New in Python 2.7 alpha 1
|
|||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
- On windows, os.chdir given unicode was not working if GetCurrentDirectoryW
|
||||
returned a path longer than MAX_PATH. (But It's doubtful this code path is
|
||||
really executed because I cannot move to such directory on win2k)
|
||||
|
||||
- Issue #4069: When set.remove(element) is used with a set element, the element
|
||||
is temporarily replaced with an equivalent frozenset. But the eventual
|
||||
KeyError would always report the empty frozenset([]) as the missing key. Now
|
||||
|
|
|
@ -726,11 +726,14 @@ win32_wchdir(LPCWSTR path)
|
|||
if (!result)
|
||||
return FALSE;
|
||||
if (result > MAX_PATH+1) {
|
||||
new_path = malloc(result);
|
||||
new_path = malloc(result * sizeof(wchar_t));
|
||||
if (!new_path) {
|
||||
SetLastError(ERROR_OUTOFMEMORY);
|
||||
return FALSE;
|
||||
}
|
||||
result = GetCurrentDirectoryW(result, new_path);
|
||||
if (!result)
|
||||
return FALSE;
|
||||
}
|
||||
if (wcsncmp(new_path, L"\\\\", 2) == 0 ||
|
||||
wcsncmp(new_path, L"//", 2) == 0)
|
||||
|
|
Loading…
Reference in New Issue