diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-04-08 07:09:45 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-04-08 07:09:45 +0000 |
commit | 7c96563256d909114ffb500501b72259275e6f64 (patch) | |
tree | d8fefeed6df4d2984b6bc025c6f3fe53b412fce4 /eval.c | |
parent | dbdde236cb73b0508c8bc0733d98ba21d39b9ee6 (diff) |
* eval.c (error_handle): default to 1 unless status is set.
* eval.c (ruby_options): guard error_handle() with PROT_NONE.
* eval.c (ruby_stop): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -1129,7 +1129,7 @@ error_handle(ex) case TAG_FATAL: if (rb_obj_is_kind_of(ruby_errinfo, rb_eSystemExit)) { VALUE st = rb_iv_get(ruby_errinfo, "status"); - ex = NUM2INT(st); + ex = NIL_P(st) ? 1 : NUM2INT(st); } else { error_print(); @@ -1154,12 +1154,12 @@ ruby_options(argc, argv) if ((state = EXEC_TAG()) == 0) { ruby_process_options(argc, argv); } - POP_TAG(); if (state) { trace_func = 0; tracing = 0; exit(error_handle(state)); } + POP_TAG(); } void rb_exec_end_proc _((void)); @@ -1194,11 +1194,11 @@ ruby_stop(ex) ex = state; } POP_ITER(); - POP_TAG(); trace_func = 0; tracing = 0; ex = error_handle(ex); + POP_TAG(); ruby_finalize(); exit(ex); } |