]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-37616: Handle version information more gracefully in getpath.c (GH-20214)
authorPablo Galindo <Pablogsal@gmail.com>
Tue, 19 May 2020 16:28:05 +0000 (17:28 +0100)
committerGitHub <noreply@github.com>
Tue, 19 May 2020 16:28:05 +0000 (17:28 +0100)
Modules/getpath.c

index 91cc449218c4a217d1d593feefd9cede81ca0260..d9829f8ad3dbd7100e9f775f8670102d227162a4 100644 (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: