From 2f54908afc5665937d763510b4430f10cf764641 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 29 Mar 2019 15:13:46 +0100 Subject: bpo-36471: Add _Py_RunMain() (GH-12618) * Add config_read_cmdline() subfunction. Remove _PyCmdline structure. * _PyCoreConfig_Read() now also parses config->argv command line arguments --- Modules/main.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) (limited to 'Modules/main.c') diff --git a/Modules/main.c b/Modules/main.c index 766576939d..42d2c3c2ae 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -567,20 +567,22 @@ exit_sigint(void) } -static int -pymain_main(_PyArgv *args) +static void _Py_NO_RETURN +pymain_exit_error(_PyInitError err) { - _PyInitError err; + pymain_free(); + _Py_ExitInitError(err); +} - err = pymain_init(args); - if (_Py_INIT_FAILED(err)) { - goto exit_init_error; - } +int +_Py_RunMain(void) +{ int exitcode = 0; - err = pymain_run_python(&exitcode); + + _PyInitError err = pymain_run_python(&exitcode); if (_Py_INIT_FAILED(err)) { - goto exit_init_error; + pymain_exit_error(err); } if (Py_FinalizeEx() < 0) { @@ -596,10 +598,18 @@ pymain_main(_PyArgv *args) } return exitcode; +} -exit_init_error: - pymain_free(); - _Py_ExitInitError(err); + +static int +pymain_main(_PyArgv *args) +{ + _PyInitError err = pymain_init(args); + if (_Py_INIT_FAILED(err)) { + pymain_exit_error(err); + } + + return _Py_RunMain(); } -- cgit v1.2.1