mirror of
https://github.com/python/cpython.git
synced 2025-07-28 05:34:31 +00:00
Variant of patch #697613: don't exit the interpreter on a SystemExit
exception if the -i command line option or PYTHONINSPECT environment variable is given, but break into the interactive interpreter just like on other exceptions or normal program exit. (backport)
This commit is contained in:
parent
8537c303c7
commit
49aafc9f2c
4 changed files with 23 additions and 11 deletions
|
@ -69,6 +69,7 @@ extern void _PyGILState_Fini(void);
|
|||
int Py_DebugFlag; /* Needed by parser.c */
|
||||
int Py_VerboseFlag; /* Needed by import.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' */
|
||||
int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c: deprecated */
|
||||
int Py_FrozenFlag; /* Needed by getpath.c */
|
||||
|
@ -1019,6 +1020,11 @@ handle_system_exit(void)
|
|||
PyObject *exception, *value, *tb;
|
||||
int exitcode = 0;
|
||||
|
||||
if (Py_InspectFlag)
|
||||
/* Don't exit if -i flag was given. This flag is set to 0
|
||||
* when entering interactive mode for inspecting. */
|
||||
return;
|
||||
|
||||
PyErr_Fetch(&exception, &value, &tb);
|
||||
if (Py_FlushLine())
|
||||
PyErr_Clear();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue