From: nobu.nakada@... Date: 2003-10-27T18:59:45+09:00 Subject: [ruby-dev:21731] Re: exit in $SAFE = 4 with -d なかだです。 At Mon, 27 Oct 2003 17:42:49 +0900, Tanaka Akira wrote: > % ruby -de 'lambda { $SAFE = 4; exit }.call; p 1' > -e:1: exception reentered (fatal) > > というように、-d をつけたときの $SAFE = 4 での exit が ruby を終了させ > てしまうのは、意図されていないんじゃないでしょうか。 もちろん意図的ではありませんが、さりとて、無視して続行させるわ けにも行きませんからねぇ。 Index: eval.c =================================================================== RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.574 diff -u -2 -p -r1.574 eval.c --- eval.c 23 Oct 2003 08:59:41 -0000 1.574 +++ eval.c 27 Oct 2003 09:56:15 -0000 @@ -3950,5 +3950,8 @@ rb_longjmp(tag, mesg) } POP_TAG(); - if (status) { + if (status == TAG_FATAL && ruby_errinfo == exception_error) { + ruby_errinfo = Qnil; + } + else if (status) { thread_reset_raised(); JUMP_TAG(status); -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦