From: Thomas Heller Date: Wed, 8 Jan 2003 14:33:48 +0000 (+0000) Subject: Patch #664376: sys.path[0] should contain absolute pathname. X-Git-Tag: v2.3c1~2528 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=27bb71e96382218a5a530772cd81ce6f91d22444;p=thirdparty%2FPython%2Fcpython.git Patch #664376: sys.path[0] should contain absolute pathname. This fixes the problem on Windows - that's the only system where I can test it. It leaves sys.argv alone and only changes sys.path[0] to an absolute pathname. --- diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 751d14758336..2b4c6b49a075 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -969,6 +969,9 @@ makeargvobject(int argc, char **argv) void PySys_SetArgv(int argc, char **argv) { +#ifdef MS_WINDOWS + char fullpath[MAX_PATH]; +#endif PyObject *av = makeargvobject(argc, argv); PyObject *path = PySys_GetObject("path"); if (av == NULL) @@ -1011,6 +1014,15 @@ PySys_SetArgv(int argc, char **argv) #if SEP == '\\' /* Special case for MS filename syntax */ if (argc > 0 && argv0 != NULL) { char *q; +#ifdef MS_WINDOWS + char *ptemp; + if (GetFullPathName(argv0, + sizeof(fullpath), + fullpath, + &ptemp)) { + argv0 = fullpath; + } +#endif p = strrchr(argv0, SEP); /* Test for alternate separator */ q = strrchr(p ? p : argv0, '/');