diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index 6aaf10c461b..d10defb3fad 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -264,6 +264,11 @@ always available. +------------------------------+------------------------------------------+ | :const:`bytes_warning` | -b | +------------------------------+------------------------------------------+ + | :const:`quiet` | -q | + +------------------------------+------------------------------------------+ + + .. versionchanged:: 3.2 + Added ``quiet`` attribute for the new :option:`-q` flag. .. data:: float_info diff --git a/Include/pydebug.h b/Include/pydebug.h index 1cbb342e473..70c88f67a1d 100644 --- a/Include/pydebug.h +++ b/Include/pydebug.h @@ -7,6 +7,7 @@ extern "C" { PyAPI_DATA(int) Py_DebugFlag; PyAPI_DATA(int) Py_VerboseFlag; +PyAPI_DATA(int) Py_QuietFlag; PyAPI_DATA(int) Py_InteractiveFlag; PyAPI_DATA(int) Py_InspectFlag; PyAPI_DATA(int) Py_OptimizeFlag; diff --git a/Misc/NEWS b/Misc/NEWS index 674ae64c203..f69abcf1d1a 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -15,6 +15,8 @@ Core and Builtins - Issue #10779: PyErr_WarnExplicit() decodes the filename from the filesystem encoding instead of UTF-8. +- Add sys.flags attribute for the new -q command-line option. + Library ------- diff --git a/Modules/main.c b/Modules/main.c index 3803eee7383..93d093dbb8b 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -319,7 +319,6 @@ 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; @@ -427,7 +426,7 @@ Py_Main(int argc, wchar_t **argv) break; case 'q': - quiet++; + Py_QuietFlag++; break; /* This space reserved for other options */ @@ -594,7 +593,7 @@ Py_Main(int argc, wchar_t **argv) #endif Py_Initialize(); - if (!quiet && (Py_VerboseFlag || + if (!Py_QuietFlag && (Py_VerboseFlag || (command == NULL && filename == NULL && module == NULL && stdin_is_interactive))) { fprintf(stderr, "Python %s on %s\n", diff --git a/Python/pythonrun.c b/Python/pythonrun.c index f7335a2b21d..e3836b8b7c8 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -78,6 +78,7 @@ extern void _PyGILState_Fini(void); int Py_DebugFlag; /* Needed by parser.c */ int Py_VerboseFlag; /* Needed by import.c */ +int Py_QuietFlag; /* Needed by sysmodule.c */ int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */ int Py_InspectFlag; /* Needed to determine whether to exit at SystemError */ int Py_NoSiteFlag; /* Suppress 'import site' */ diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 0a14f0eb36a..730567eaf70 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -1417,7 +1417,8 @@ static PyStructSequence_Field flags_fields[] = { #endif /* {"unbuffered", "-u"}, */ /* {"skip_first", "-x"}, */ - {"bytes_warning", "-b"}, + {"bytes_warning", "-b"}, + {"quiet", "-q"}, {0} }; @@ -1461,6 +1462,7 @@ make_flags(void) /* SetFlag(saw_unbuffered_flag); */ /* SetFlag(skipfirstline); */ SetFlag(Py_BytesWarningFlag); + SetFlag(Py_QuietFlag); #undef SetFlag if (PyErr_Occurred()) {