#1772833: add -q command line option.
authorGeorg Brandl <georg@python.org>
Sat, 4 Dec 2010 10:47:18 +0000 (10:47 +0000)
committerGeorg Brandl <georg@python.org>
Sat, 4 Dec 2010 10:47:18 +0000 (10:47 +0000)
Doc/using/cmdline.rst
Misc/NEWS
Misc/python.man
Modules/main.c

index 6f3cfbe2949bda3f93fe720af3f0d5ea477ec08a..d1f47eba89738f57e4ca020275b614028f71c21a 100644 (file)
@@ -220,6 +220,13 @@ Miscellaneous options
    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
 
    Don't add user site directory to sys.path
index c2f288d6dfad0705bf572edbf7fc44f118b0eea0..8463367e24d1f2a40af35dc320c1828e0cfa1cf5 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ What's New in Python 3.2 Beta 1?
 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.
 
 - Fixed several corner case issues on os.stat/os.lstat related to reparse
index 428ef4dc51dda2444d8193a9d620e155744d3b5c..2d15d5d3368858139c35cf63598c9dfa5fe77455 100644 (file)
@@ -26,6 +26,9 @@ python \- an interpreted, interactive, object-oriented programming language
 .B \-m 
 .I module-name
 ]
+[
+.B \-q
+]
 .br
        [
 .B \-O
@@ -145,6 +148,10 @@ to \fI.pyo\fP.  Given twice, causes docstrings to be discarded.
 .B \-O0
 Discard docstrings in addition to the \fB-O\fP optimizations.
 .TP
+.B \-q
+Do not print the version and copyright messages. These messages are 
+also suppressed in non-interactive mode.
+.TP
 .BI "\-Q " argument
 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
index eeb94c8ea4e94a0fe2ff05134d28debb0a1d43f1..3803eee73832582147e3149fef45e8f51508fff4 100644 (file)
@@ -46,7 +46,7 @@ static wchar_t **orig_argv;
 static int  orig_argc;
 
 /* command line options */
-#define BASE_OPTS L"bBc:dEhiJm:OsStuvVW:xX:?"
+#define BASE_OPTS L"bBc:dEhiJm:OqsStuvVW:xX:?"
 
 #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\
 -O     : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x\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 imply 'import site' on initialization\n\
 ";
@@ -318,6 +319,7 @@ Py_Main(int argc, wchar_t **argv)
     int stdin_is_interactive = 0;
     int help = 0;
     int version = 0;
+    int quiet = 0;
     int saw_unbuffered_flag = 0;
     PyCompilerFlags cf;
 
@@ -424,6 +426,10 @@ Py_Main(int argc, wchar_t **argv)
             PySys_AddXOption(_PyOS_optarg);
             break;
 
+        case 'q':
+            quiet++;
+            break;
+
         /* This space reserved for other options */
 
         default:
@@ -588,8 +594,9 @@ Py_Main(int argc, wchar_t **argv)
 #endif
     Py_Initialize();
 
-    if (Py_VerboseFlag ||
-        (command == NULL && filename == NULL && module == NULL && stdin_is_interactive)) {
+    if (!quiet && (Py_VerboseFlag ||
+                        (command == NULL && filename == NULL &&
+                         module == NULL && stdin_is_interactive))) {
         fprintf(stderr, "Python %s on %s\n",
             Py_GetVersion(), Py_GetPlatform());
         if (!Py_NoSiteFlag)