Issue 8202: when using the -m command line switch, sys.argv[0] is now '-m' instead of '-c' while searching for the module to be executed

This commit is contained in:
Nick Coghlan 2010-04-28 14:51:08 +00:00
parent 54677da895
commit c5e4485248
3 changed files with 9 additions and 4 deletions

View File

@ -95,8 +95,9 @@ source.
file is not available.
If this option is given, the first element of :data:`sys.argv` will be the
full path to the module file. As with the :option:`-c` option, the current
directory will be added to the start of :data:`sys.path`.
full path to the module file (while the module file is being located, the
first element will be set to ``"-m"``). As with the :option:`-c` option,
the current directory will be added to the start of :data:`sys.path`.
Many standard library modules contain code that is invoked on their execution
as a script. An example is the :mod:`timeit` module::

View File

@ -12,6 +12,10 @@ What's New in Python 2.7 beta 2?
Core and Builtins
-----------------
- Issue #8202: sys.argv[0] is now set to '-m' instead of '-c' when
searching for the module file to be executed with the -m command
line option
- Issue #7319: When -Q is used, do not silence DeprecationWarning.
- Issue #7332: Remove the 16KB stack-based buffer in

View File

@ -519,10 +519,10 @@ Py_Main(int argc, char **argv)
}
if (module != NULL) {
/* Backup _PyOS_optind and force sys.argv[0] = '-c'
/* Backup _PyOS_optind and force sys.argv[0] = '-m'
so that PySys_SetArgv correctly sets sys.path[0] to ''*/
_PyOS_optind--;
argv[_PyOS_optind] = "-c";
argv[_PyOS_optind] = "-m";
}
PySys_SetArgv(argc-_PyOS_optind, argv+_PyOS_optind);