aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-04-08 07:09:45 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-04-08 07:09:45 +0000
commit7c96563256d909114ffb500501b72259275e6f64 (patch)
treed8fefeed6df4d2984b6bc025c6f3fe53b412fce4
parentdbdde236cb73b0508c8bc0733d98ba21d39b9ee6 (diff)
downloadruby-7c96563256d909114ffb500501b72259275e6f64.tar.gz
* 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
-rw-r--r--ChangeLog8
-rw-r--r--eval.c6
2 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 36b0534f19..cea517f3f4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Mon Apr 8 04:50:51 2002 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
+
+ * 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.
+
Fri Apr 5 05:07:28 2002 Takaaki Tateishi <ttate@kt.jaist.ac.jp>
* ext/dl: Add dl/struct.rb.
diff --git a/eval.c b/eval.c
index 8c3f12fcfd..28064c8625 100644
--- a/eval.c
+++ b/eval.c
@@ -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);
}