From: Nobuyoshi Nakada Date: 2007-05-28T15:38:25+09:00 Subject: [ruby-dev:30829] Re: trap() with String command dosn't work(1.8/1.9) なかだです。 At Fri, 25 May 2007 19:59:48 +0900, Chikanaga Tomoyuki wrote in [ruby-dev:30820]: > オンラインマニュアルの例によると Kernel#trap および Signal.trap は > ハンドラに文字列(スクリプト片)を指定できるとなっていますが、 > やってみるとうまく動いていないようです。 > # マニュアル本文(?)には、スクリプト片を文字列として渡していいと > # はっきりとは書いてないようですけれど... > > 1.8 と 1.9 でそれぞれ異なるエラー内容になります。 1.9では文字列は"DEFAULT","IGNORE","EXIT"など以外は不可になりま した。 # 互換性の話かと勘違いしてました。 > $ ruby-1.8.6 -v traptest.rb > ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-linux] > true # <= Ctrl-C > traptest.rb:4: unexpected return こちらではtrueが果てしなく出続けました。 Index: eval.c =================================================================== --- eval.c (revision 12396) +++ eval.c (working copy) @@ -1866,5 +1866,5 @@ rb_eval_cmd(cmd, arg, level) POP_FRAME(); - jump_tag_but_local_jump(state, val); + if (state) jump_tag_but_local_jump(state, val); return val; } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦