Always insert script directory in front of sys.path -- if there's no

sys.argv, insert "".  Note that "." is removed as a default component
of the path (see changes to getpath.c and Setup.in).
This commit is contained in:
Guido van Rossum 1996-07-30 20:35:50 +00:00
parent 9afdabffa9
commit 94a9667f1a

View file

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