diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-11-23 06:25:02 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-11-23 06:25:02 +0900 |
| commit | 56f9106d94bce48daf60a8d18a0792f98c204bbe (patch) | |
| tree | 9cdcb0c8be3481e7ad0060fe3cd7dba11ff40f20 | |
| parent | 8bcf44669cdeea0233c35f0216b789bb27ae6426 (diff) | |
| parent | d81e4d71c17f9d65ea87f0e66a4338411863f7bf (diff) | |
| download | mruby-56f9106d94bce48daf60a8d18a0792f98c204bbe.tar.gz mruby-56f9106d94bce48daf60a8d18a0792f98c204bbe.zip | |
Merge pull request #4836 from shuujii/allow-true-false-argument-to-Kernel-exit
Allow `true`/`false` argument to `Kernel#exit`
| -rw-r--r-- | mrbgems/mruby-exit/src/mruby-exit.c | 13 |
1 files changed, 9 insertions, 4 deletions
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 |
