]> granicus.if.org Git - python/commitdiff
As a side effect of calling PySys_SetArgv (setpythonargv), the
authorGuido van Rossum <guido@python.org>
Wed, 24 Jul 1996 01:31:37 +0000 (01:31 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 24 Jul 1996 01:31:37 +0000 (01:31 +0000)
directory containing argv[0] is inserted in front of sys.path.
If argv[0] contains no directory, an empty string is inserted.
If argv is empty, nothing happens.

Python/sysmodule.c

index 8937c857d4955e923aa4bdaef3b5bac38eb7a706..1b6fab87b9cc45dd28fc6998ba063cdbb1c2ea89 100644 (file)
@@ -364,5 +364,23 @@ setpythonargv(argc, argv)
                fatal("no mem for sys.argv");
        if (sysset("argv", av) != 0)
                fatal("can't assign sys.argv");
+       if (argc > 0) {
+               object *path = sysget("path");
+               if (path != NULL) {
+                       char *p = strrchr(argv[0], SEP);
+                       int n;
+                       object *a;
+                       if (p == NULL)
+                               n = 0;
+                       else
+                               n = p + 1 - argv[0];
+                       a = newsizedstringobject(argv[0], n);
+                       if (a == NULL)
+                               fatal("no mem for sys.path insertion");
+                       if (inslistitem(path, 0, a) < 0)
+                               fatal("sys.path.insert(0) failed");
+                       DECREF(a);
+               }
+       }
        DECREF(av);
 }