From 27bb71e96382218a5a530772cd81ce6f91d22444 Mon Sep 17 00:00:00 2001 From: Thomas Heller Date: Wed, 8 Jan 2003 14:33:48 +0000 Subject: 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. --- Python/sysmodule.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 751d147..2b4c6b4 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, '/'); -- cgit v0.12