Mercurial > cpython-lru_cache-weakref
diff Modules/getpath.c @ 5482:6fa29756ec6a legacy-trunk
Fix problem reported by Donn Cave: if VPATH is an absolute path, it
would always be a hit. Prevent this by only using VPATH if we know
we are in the build directory.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Mon, 12 May 1997 20:49:39 +0000 |
| parents | c8e24c4b8bfb |
| children | 73509efa724b |
line wrap: on
line diff
--- a/Modules/getpath.c Mon May 12 16:04:09 1997 +0000 +++ b/Modules/getpath.c Mon May 12 20:49:39 1997 +0000 @@ -209,25 +209,30 @@ int i, n; char *vpath; - /* Check VPATH to see if argv0_path is in the build directory. - * Complication: the VPATH passed in is relative to the - * Modules build directory and points to the Modules source - * directory; we need it relative to the build tree and - * pointing to the source tree. Solution: chop off a leading - * ".." (but only if it's there -- it could be an absolute - * path) and chop off the final component (assuming it's - * "Modules"). - */ - vpath = VPATH; - if (vpath[0] == '.' && vpath[1] == '.' && vpath[2] == '/') - vpath += 3; + /* Check to see if argv[0] is in the build directory */ strcpy(prefix, argv0_path); - join(prefix, vpath); - reduce(prefix); - join(prefix, "Lib"); - join(prefix, LANDMARK); - if (exists(prefix)) - return -1; + join(prefix, "Modules/Setup"); + if (exists(prefix)) { + /* Check VPATH to see if argv0_path is in the build directory. + * Complication: the VPATH passed in is relative to the + * Modules build directory and points to the Modules source + * directory; we need it relative to the build tree and + * pointing to the source tree. Solution: chop off a leading + * ".." (but only if it's there -- it could be an absolute + * path) and chop off the final component (assuming it's + * "Modules"). + */ + vpath = VPATH; + if (vpath[0] == '.' && vpath[1] == '.' && vpath[2] == '/') + vpath += 3; + strcpy(prefix, argv0_path); + join(prefix, vpath); + reduce(prefix); + join(prefix, "Lib"); + join(prefix, LANDMARK); + if (exists(prefix)) + return -1; + } if (home) { /* Check $PYTHONHOME */ @@ -474,6 +479,8 @@ strcpy(buf, rtpypath); strcat(buf, delimiter); } + else + buf[0] = '\0'; /* Next goes merge of compile-time $PYTHONPATH with * dynamically located prefix.
