From 2158231433c19e1e8eec24d8d053da2a02256747 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sat, 23 Oct 2010 00:13:28 +0000 Subject: [PATCH] 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. --- Modules/getpath.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Modules/getpath.c b/Modules/getpath.c index 20030cecc6e..0d4a485c595 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c @@ -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 */