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

This commit is contained in:
Victor Stinner 2017-11-23 19:02:04 +01:00 committed by GitHub
parent b98f1715a3
commit b9197959c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 8 deletions

View File

@ -589,6 +589,15 @@ calculate_reduce_exec_prefix(PyCalculatePath *calculate, PyPathConfig *config)
static void static void
calculate_progpath(PyCalculatePath *calculate, PyPathConfig *config) 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 /* 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 * assume python is on the user's $PATH, since there's no
* other way to find a directory to start the search from. If * 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)) { if (wcschr(calculate->prog, SEP)) {
wcsncpy(config->progpath, calculate->prog, MAXPATHLEN); wcsncpy(config->progpath, calculate->prog, MAXPATHLEN);
} }
#ifdef __APPLE__ #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 /* On Mac OS X, if a script uses an interpreter of the form
* "#!/opt/python2.3/bin/python", the kernel only passes "python" * "#!/opt/python2.3/bin/python", the kernel only passes "python"
* as argv[0], which falls through to the $PATH search below. * as argv[0], which falls through to the $PATH search below.