bpo-37616: Handle version information more gracefully in getpath.c (GH-20214)

This commit is contained in:
Pablo Galindo 2020-05-19 17:28:05 +01:00 committed by GitHub
parent 2abededbc4
commit 2a561b5f68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 9 deletions

View File

@ -1296,8 +1296,8 @@ calculate_zip_path(PyCalculatePath *calculate)
{
PyStatus res;
/* Path: <PLATLIBDIR> / "python00.zip" */
wchar_t *path = joinpath2(calculate->platlibdir_macro, L"python000.zip");
/* Path: <PLATLIBDIR> / "pythonXY.zip" */
wchar_t *path = joinpath2(calculate->platlibdir_macro, L"python" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION) L".zip");
if (path == NULL) {
return _PyStatus_NO_MEMORY();
}
@ -1305,7 +1305,7 @@ calculate_zip_path(PyCalculatePath *calculate)
if (calculate->prefix_found > 0) {
/* Use the reduced prefix returned by Py_GetPrefix()
Path: <basename(basename(prefix))> / <PLATLIBDIR> / "python000.zip" */
Path: <basename(basename(prefix))> / <PLATLIBDIR> / "pythonXY.zip" */
wchar_t *parent = _PyMem_RawWcsdup(calculate->prefix);
if (parent == NULL) {
res = _PyStatus_NO_MEMORY();
@ -1325,12 +1325,6 @@ calculate_zip_path(PyCalculatePath *calculate)
goto done;
}
/* Replace "000" with the version */
size_t len = wcslen(calculate->zip_path);
calculate->zip_path[len - 7] = VERSION[0];
calculate->zip_path[len - 6] = VERSION[2];
calculate->zip_path[len - 5] = VERSION[3];
res = _PyStatus_OK();
done: