mirror of https://github.com/python/cpython
As a side effect of calling PySys_SetArgv (setpythonargv), the
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.
This commit is contained in:
parent
3b8e20d2c2
commit
a63d9f4d9f
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue