diff options
author | Guido van Rossum <guido@python.org> | 2003-02-19 15:25:10 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2003-02-19 15:25:10 (GMT) |
commit | 162e38c6a312aa3e9c353419301087a4620c513c (patch) | |
tree | 7cbea919a90b99c00446bfa35905821b8dc7ee44 | |
parent | 80be59b275dfd62545c69ca377bae02c02648839 (diff) | |
download | cpython-162e38c6a312aa3e9c353419301087a4620c513c.zip cpython-162e38c6a312aa3e9c353419301087a4620c513c.tar.gz cpython-162e38c6a312aa3e9c353419301087a4620c513c.tar.bz2 |
- sys.path[0] (the directory from which the script is loaded) is now
turned into an absolute pathname, unless it is the empty string.
(SF patch #664376, by Skip Montanaro.)
-rw-r--r-- | Misc/NEWS | 4 | ||||
-rw-r--r-- | Python/sysmodule.c | 12 | ||||
-rwxr-xr-x | configure | 5 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | pyconfig.h.in | 3 |
5 files changed, 21 insertions, 5 deletions
@@ -12,6 +12,10 @@ What's New in Python 2.3 alpha 2? Core and builtins ----------------- +- sys.path[0] (the directory from which the script is loaded) is now + turned into an absolute pathname, unless it is the empty string. + (SF patch #664376.) + - Finally fixed the bug in compile() and exec where a string ending with an indented code block but no newline would raise SyntaxError. This would have been a four-line change in parsetok.c... Except diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 765621e..1f51f98 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -993,7 +993,9 @@ makeargvobject(int argc, char **argv) void PySys_SetArgv(int argc, char **argv) { -#ifdef MS_WINDOWS +#if defined(HAVE_REALPATH) + char fullpath[MAXPATHLEN]; +#elif defined(MS_WINDOWS) char fullpath[MAX_PATH]; #endif PyObject *av = makeargvobject(argc, argv); @@ -1059,8 +1061,14 @@ PySys_SetArgv(int argc, char **argv) } } #else /* All other filename syntaxes */ - if (argc > 0 && argv0 != NULL) + if (argc > 0 && argv0 != NULL) { +#if defined(HAVE_REALPATH) + if (realpath(argv0, fullpath)) { + argv0 = fullpath; + } +#endif p = strrchr(argv0, SEP); + } if (p != NULL) { #ifndef RISCOS n = p + 1 - argv0; @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 1.387 . +# From configure.in Revision: 1.389 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. # @@ -12095,13 +12095,14 @@ echo "${ECHO_T}MACHDEP_OBJS" >&6 + for ac_func in alarm chown clock confstr ctermid execv \ fchdir flock fork fsync fdatasync fpathconf ftime ftruncate \ gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \ getpriority getpwent getwd \ hstrerror inet_aton inet_pton kill killpg lchown lstat mkfifo mknod mktime \ mremap nice pathconf pause plock poll pthread_init \ - putenv readlink \ + putenv readlink realpath \ select setegid seteuid setgid \ setlocale setregid setreuid setsid setpgid setuid setvbuf snprintf \ sigaction siginterrupt sigrelse strftime strptime \ diff --git a/configure.in b/configure.in index 8fce1cd..0b893a5 100644 --- a/configure.in +++ b/configure.in @@ -1843,7 +1843,7 @@ AC_CHECK_FUNCS(alarm chown clock confstr ctermid execv \ getpriority getpwent getwd \ hstrerror inet_aton inet_pton kill killpg lchown lstat mkfifo mknod mktime \ mremap nice pathconf pause plock poll pthread_init \ - putenv readlink \ + putenv readlink realpath \ select setegid seteuid setgid \ setlocale setregid setreuid setsid setpgid setuid setvbuf snprintf \ sigaction siginterrupt sigrelse strftime strptime \ diff --git a/pyconfig.h.in b/pyconfig.h.in index c169797..e2dd4d2 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -342,6 +342,9 @@ /* Define to 1 if you have the `readlink' function. */ #undef HAVE_READLINK +/* Define to 1 if you have the `realpath' function. */ +#undef HAVE_REALPATH + /* Define if you have readline 2.2 */ #undef HAVE_RL_COMPLETION_APPEND_CHARACTER |