From d81e4d71c17f9d65ea87f0e66a4338411863f7bf Mon Sep 17 00:00:00 2001 From: KOBAYASHI Shuji Date: Fri, 22 Nov 2019 18:29:38 +0900 Subject: Allow `true`/`false` argument to `Kernel#exit` --- mrbgems/mruby-exit/src/mruby-exit.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'mrbgems/mruby-exit/src/mruby-exit.c') diff --git a/mrbgems/mruby-exit/src/mruby-exit.c b/mrbgems/mruby-exit/src/mruby-exit.c index 05c929622..4ff2f932c 100644 --- a/mrbgems/mruby-exit/src/mruby-exit.c +++ b/mrbgems/mruby-exit/src/mruby-exit.c @@ -4,12 +4,17 @@ static mrb_value f_exit(mrb_state *mrb, mrb_value self) { - mrb_int i = EXIT_SUCCESS; + mrb_value status = mrb_true_value(); + int istatus; + + mrb_get_args(mrb, "|o", &status); + istatus = mrb_true_p(status) ? EXIT_SUCCESS : + mrb_false_p(status) ? EXIT_FAILURE : + (int)mrb_int(mrb, status); + exit(istatus); - mrb_get_args(mrb, "|i", &i); - exit((int)i); /* not reached */ - return mrb_nil_value(); + return status; } void -- cgit v1.2.3