Issue #6011: getpath: decode VPATH env var from the locale encoding

Instead of casting it to wchar_t* without conversion. It fixes a bug if Python
is compiled a non-ascii directory, different than the source code directory,
with C locale.
This commit is contained in:
Victor Stinner 2010-10-23 00:13:28 +00:00
parent ff150f2921
commit 2158231433
1 changed files with 10 additions and 7 deletions

View File

@ -285,13 +285,16 @@ search_for_prefix(wchar_t *argv0_path, wchar_t *home)
joinpath(prefix, L"Modules/Setup");
if (isfile(prefix)) {
/* Check VPATH to see if argv0_path is in the build directory. */
vpath = L"" VPATH;
wcscpy(prefix, argv0_path);
joinpath(prefix, vpath);
joinpath(prefix, L"Lib");
joinpath(prefix, LANDMARK);
if (ismodule(prefix))
return -1;
vpath = _Py_char2wchar(VPATH, NULL);
if (vpath != NULL) {
wcscpy(prefix, argv0_path);
joinpath(prefix, vpath);
PyMem_Free(vpath);
joinpath(prefix, L"Lib");
joinpath(prefix, LANDMARK);
if (ismodule(prefix))
return -1;
}
}
/* Search from argv0_path, until root is found */