From: Sakuro OZAWA Date: 2010-10-20T10:54:38+09:00 Subject: [ruby-core:32855] [Ruby 1.8-Bug#3969][Open] irb causes NameError when trapping SIGWINCH with string Bug #3969: irb causes NameError when trapping SIGWINCH with string http://redmine.ruby-lang.org/issues/show/3969 Author: Sakuro OZAWA Status: Open, Priority: Normal ruby -v: ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin9] Trapping SIGWINCH with a proc works. $ irb -f irb(main):001:0> Signal.trap('SIGWINCH', proc { puts 'hola! from proc' }) => nil irb(main):002:0> hola! from proc # changing size of terminal window via GUI irb(main):002:0> hola! from proc irb(main):002:0> hola! from proc irb(main):002:0> hola! from proc puts => nil irb(main):003:0> But trapping SIGWINCH with a string (method name) causes error. $ irb -f irb(main):001:0> def hola; puts 'hola! from named method'; end => nil irb(main):002:0> Signal.trap('SIGWINCH', 'hola') => nil irb(main):003:0> hola! from named method # changing size of terminal window via GUI irb(main):003:0> hola! from named method irb(main):003:0> hola! from named method irb(main):003:0> hola! from named method puts /opt/local/lib/ruby/1.8/irb/input-method.rb:98:in `gets': uninitialized constant HISTORY (NameError) from /opt/local/lib/ruby/1.8/irb.rb:140:in `eval_input' from /opt/local/lib/ruby/1.8/irb.rb:271:in `signal_status' from /opt/local/lib/ruby/1.8/irb.rb:139:in `eval_input' from /opt/local/lib/ruby/1.8/irb/ruby-lex.rb:189:in `call' from /opt/local/lib/ruby/1.8/irb/ruby-lex.rb:189:in `buf_input' from /opt/local/lib/ruby/1.8/irb/ruby-lex.rb:104:in `getc' from /opt/local/lib/ruby/1.8/irb/slex.rb:206:in `match_io' from /opt/local/lib/ruby/1.8/irb/slex.rb:76:in `match' from /opt/local/lib/ruby/1.8/irb/ruby-lex.rb:287:in `token' from /opt/local/lib/ruby/1.8/irb/ruby-lex.rb:263:in `lex' from /opt/local/lib/ruby/1.8/irb/ruby-lex.rb:234:in `each_top_level_statement' from /opt/local/lib/ruby/1.8/irb/ruby-lex.rb:230:in `loop' from /opt/local/lib/ruby/1.8/irb/ruby-lex.rb:230:in `each_top_level_statement' from /opt/local/lib/ruby/1.8/irb/ruby-lex.rb:229:in `catch' from /opt/local/lib/ruby/1.8/irb/ruby-lex.rb:229:in `each_top_level_statement' from /opt/local/lib/ruby/1.8/irb.rb:154:in `eval_input' from /opt/local/lib/ruby/1.8/irb.rb:71:in `start' from /opt/local/lib/ruby/1.8/irb.rb:70:in `catch' from /opt/local/lib/ruby/1.8/irb.rb:70:in `start' from /opt/local/bin/irb:13 ---------------------------------------- http://redmine.ruby-lang.org