#1772833: add -q command line option.

This commit is contained in:
Georg Brandl 2010-12-04 10:47:18 +00:00
parent cbd2ab1311
commit 9d8711964f
4 changed files with 27 additions and 3 deletions

View File

@ -220,6 +220,13 @@ Miscellaneous options
Discard docstrings in addition to the :option:`-O` optimizations. Discard docstrings in addition to the :option:`-O` optimizations.
.. cmdoption:: -q
Don't display the copyright and version messages even in interactive mode.
.. versionadded:: 3.2
.. cmdoption:: -s .. cmdoption:: -s
Don't add user site directory to sys.path Don't add user site directory to sys.path

View File

@ -10,6 +10,9 @@ What's New in Python 3.2 Beta 1?
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #1772833: Add the -q command-line option to suppress copyright
and version output in interactive mode.
- Provide an *optimize* parameter in the built-in compile() function. - Provide an *optimize* parameter in the built-in compile() function.
- Fixed several corner case issues on os.stat/os.lstat related to reparse - Fixed several corner case issues on os.stat/os.lstat related to reparse

View File

@ -26,6 +26,9 @@ python \- an interpreted, interactive, object-oriented programming language
.B \-m .B \-m
.I module-name .I module-name
] ]
[
.B \-q
]
.br .br
[ [
.B \-O .B \-O
@ -145,6 +148,10 @@ to \fI.pyo\fP. Given twice, causes docstrings to be discarded.
.B \-O0 .B \-O0
Discard docstrings in addition to the \fB-O\fP optimizations. Discard docstrings in addition to the \fB-O\fP optimizations.
.TP .TP
.B \-q
Do not print the version and copyright messages. These messages are
also suppressed in non-interactive mode.
.TP
.BI "\-Q " argument .BI "\-Q " argument
Division control; see PEP 238. The argument must be one of "old" (the Division control; see PEP 238. The argument must be one of "old" (the
default, int/int and long/long return an int or long), "new" (new default, int/int and long/long return an int or long), "new" (new

View File

@ -46,7 +46,7 @@ static wchar_t **orig_argv;
static int orig_argc; static int orig_argc;
/* command line options */ /* command line options */
#define BASE_OPTS L"bBc:dEhiJm:OsStuvVW:xX:?" #define BASE_OPTS L"bBc:dEhiJm:OqsStuvVW:xX:?"
#define PROGRAM_OPTS BASE_OPTS #define PROGRAM_OPTS BASE_OPTS
@ -71,6 +71,7 @@ static char *usage_2 = "\
-m mod : run library module as a script (terminates option list)\n\ -m mod : run library module as a script (terminates option list)\n\
-O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x\n\ -O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x\n\
-OO : remove doc-strings in addition to the -O optimizations\n\ -OO : remove doc-strings in addition to the -O optimizations\n\
-q : don't print version and copyright messages on interactive startup\n\
-s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\ -s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\
-S : don't imply 'import site' on initialization\n\ -S : don't imply 'import site' on initialization\n\
"; ";
@ -318,6 +319,7 @@ Py_Main(int argc, wchar_t **argv)
int stdin_is_interactive = 0; int stdin_is_interactive = 0;
int help = 0; int help = 0;
int version = 0; int version = 0;
int quiet = 0;
int saw_unbuffered_flag = 0; int saw_unbuffered_flag = 0;
PyCompilerFlags cf; PyCompilerFlags cf;
@ -424,6 +426,10 @@ Py_Main(int argc, wchar_t **argv)
PySys_AddXOption(_PyOS_optarg); PySys_AddXOption(_PyOS_optarg);
break; break;
case 'q':
quiet++;
break;
/* This space reserved for other options */ /* This space reserved for other options */
default: default:
@ -588,8 +594,9 @@ Py_Main(int argc, wchar_t **argv)
#endif #endif
Py_Initialize(); Py_Initialize();
if (Py_VerboseFlag || if (!quiet && (Py_VerboseFlag ||
(command == NULL && filename == NULL && module == NULL && stdin_is_interactive)) { (command == NULL && filename == NULL &&
module == NULL && stdin_is_interactive))) {
fprintf(stderr, "Python %s on %s\n", fprintf(stderr, "Python %s on %s\n",
Py_GetVersion(), Py_GetPlatform()); Py_GetVersion(), Py_GetPlatform());
if (!Py_NoSiteFlag) if (!Py_NoSiteFlag)