mirror of
https://github.com/python/cpython.git
synced 2025-08-01 23:53:15 +00:00
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:
parent
9afdabffa9
commit
94a9667f1a
1 changed files with 17 additions and 17 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue