diff Python/sysmodule.c @ 27156:585a6460f577 legacy-trunk

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.
author Thomas Heller <theller@ctypes.org>
date Wed, 08 Jan 2003 14:33:48 +0000
parents 4a825b902310
children 16856c9514e0
line wrap: on
line diff
--- a/Python/sysmodule.c	Wed Jan 08 07:21:53 2003 +0000
+++ b/Python/sysmodule.c	Wed Jan 08 14:33:48 2003 +0000
@@ -969,6 +969,9 @@
 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 @@
 #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, '/');