mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
* import.c (get_module): total rewrite, to ensure proper search order: for
each dir in sys.path, try each possible extension. (Note: C extensions are loaded before Python modules in the same directory, to allow having a C version used when dynamic loading is supported and a Python version as a back-up.) * import.c (reload_module): test for error from getmodulename() * moduleobject.c: implement module name as dict entry '__name__' instead of special-casing it in module_getattr(); this way a module (or function!) can access its own module name, and programs that know what they are doing can rename modules. * stdwinmodule.c (initstdwin): strip ".py" suffix of argv[0].
This commit is contained in:
parent
71e57d090d
commit
c45611d0e3
3 changed files with 234 additions and 199 deletions
|
@ -2598,6 +2598,7 @@ initstdwin()
|
|||
{
|
||||
object *m, *d;
|
||||
static int inited = 0;
|
||||
char buf[1000];
|
||||
|
||||
if (!inited) {
|
||||
int argc = 0;
|
||||
|
@ -2607,6 +2608,18 @@ initstdwin()
|
|||
if (!checkstringlist(sys_argv, &argv, &argc))
|
||||
err_clear();
|
||||
}
|
||||
if (argc > 0) {
|
||||
/* If argv[0] has a ".py" suffix, remove the suffix */
|
||||
char *p = strrchr(argv[0], '.');
|
||||
if (p != NULL && strcmp(p, ".py") == 0) {
|
||||
int n = p - argv[0];
|
||||
if (n >= sizeof(buf))
|
||||
n = sizeof(buf)-1;
|
||||
strncpy(buf, argv[0], n);
|
||||
buf[n] = '\0';
|
||||
argv[0] = buf;
|
||||
}
|
||||
}
|
||||
winitargs(&argc, &argv);
|
||||
if (argv != NULL) {
|
||||
if (!putbackstringlist(sys_argv, argv, argc))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue