From 4021b1e1b86a86af9e43c393c447110d36ebb36d Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Wed, 12 Oct 2016 18:00:32 +0300 Subject: [PATCH] lib/utils/pyexec: Don't treat SystemExit as "forced exit". "Forced exit" is treated as soft-reboot (Ctrl+D). But expected effect of calling sys.exit() is termination of the current script, not any further and more serious actions like mentioned soft reboot. --- lib/utils/pyexec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utils/pyexec.c b/lib/utils/pyexec.c index 2bc7a00cc0..aac211894c 100644 --- a/lib/utils/pyexec.c +++ b/lib/utils/pyexec.c @@ -99,7 +99,7 @@ STATIC int parse_compile_execute(void *source, mp_parse_input_kind_t input_kind, // check for SystemExit if (mp_obj_is_subclass_fast(mp_obj_get_type((mp_obj_t)nlr.ret_val), &mp_type_SystemExit)) { // at the moment, the value of SystemExit is unused - ret = PYEXEC_FORCED_EXIT; + ret = 0; } else { mp_obj_print_exception(&mp_plat_print, (mp_obj_t)nlr.ret_val); ret = 0;