[Python-checkins] bpo-32030: Fix calculate_path() on macOS (#4526)

Victor Stinner webhook-mailer at python.org
Thu Nov 23 13:02:06 EST 2017


https://github.com/python/cpython/commit/b9197959c186f9061bd74d0adc20e96556426db4
commit: b9197959c186f9061bd74d0adc20e96556426db4
branch: master
author: Victor Stinner <victor.stinner at gmail.com>
committer: GitHub <noreply at github.com>
date: 2017-11-23T19:02:04+01:00
summary:

bpo-32030: Fix calculate_path() on macOS (#4526)

files:
M Modules/getpath.c

diff --git a/Modules/getpath.c b/Modules/getpath.c
index d8125ae2cac..48bdd0f21da 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -589,6 +589,15 @@ calculate_reduce_exec_prefix(PyCalculatePath *calculate, PyPathConfig *config)
 static void
 calculate_progpath(PyCalculatePath *calculate, PyPathConfig *config)
 {
+#ifdef __APPLE__
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
+    uint32_t nsexeclength = MAXPATHLEN;
+#else
+    unsigned long nsexeclength = MAXPATHLEN;
+#endif
+    char execpath[MAXPATHLEN+1];
+#endif
+
     /* If there is no slash in the argv0 path, then we have to
      * assume python is on the user's $PATH, since there's no
      * other way to find a directory to start the search from.  If
@@ -597,15 +606,7 @@ calculate_progpath(PyCalculatePath *calculate, PyPathConfig *config)
     if (wcschr(calculate->prog, SEP)) {
         wcsncpy(config->progpath, calculate->prog, MAXPATHLEN);
     }
-
 #ifdef __APPLE__
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
-    uint32_t nsexeclength = MAXPATHLEN;
-#else
-    unsigned long nsexeclength = MAXPATHLEN;
-#endif
-    char execpath[MAXPATHLEN+1];
-
      /* On Mac OS X, if a script uses an interpreter of the form
       * "#!/opt/python2.3/bin/python", the kernel only passes "python"
       * as argv[0], which falls through to the $PATH search below.



More information about the Python-checkins mailing list