Project

General

Profile

Backport #4505

Updated by jeremyevans0 (Jeremy Evans) almost 5 years ago

=begin 
 
 Quoted from #2761 
 It seems that the patch have been partially applied. The extconf.rb stuff was not applied sot the weird behaviour still remains : 
 +# workaround for native windows. 
 +/mswin|bccwin|mingw/ !~ RUBY_PLATFORM && have_readline_var("rl_catch_sigwinch") 
 +/mswin|bccwin|mingw/ !~ RUBY_PLATFORM && have_readline_var("rl_catch_signals") 


  Hi, 
 
  You seems to use Ruby 1.8.x. 
  So can you try following? 
 
  Index: ext/readline/readline.c 
  =================================================================== 
  --- ext/readline/readline.c       (revision 26664) 
  +++ ext/readline/readline.c       (working copy) 
  @@ -833,6 +833,12 @@ 
   #ifdef HAVE_RL_EVENT_HOOK 
       rl_event_hook = readline_event; 
   #endif 
  +#ifdef HAVE_RL_CATCH_SIGNALS 
  +      rl_catch_signals = 0; 
  +#endif 
  +#ifdef HAVE_RL_CATCH_SIGWINCH 
  +      rl_catch_sigwinch = 0; 
  +#endif 
   #ifdef HAVE_RL_CLEAR_SIGNALS 
       rl_clear_signals(); 
   #endif 
  Index: ext/readline/extconf.rb 
  =================================================================== 
  --- ext/readline/extconf.rb       (revision 26664) 
  +++ ext/readline/extconf.rb       (working copy) 
  @@ -59,6 +59,9 @@ 
   have_readline_var("rl_attempted_completion_over") 
   have_readline_var("rl_library_version") 
   have_readline_var("rl_event_hook") 
  +# workaround for native windows. 
  +/mswin|bccwin|mingw/ !~ RUBY_PLATFORM && have_readline_var("rl_catch_sigwinch") 
  +/mswin|bccwin|mingw/ !~ RUBY_PLATFORM && have_readline_var("rl_catch_signals") 
   have_readline_func("rl_cleanup_after_signal") 
   have_readline_func("rl_clear_signals") 
   have_readline_func("rl_vi_editing_mode") 
 
  (2010/02/19 4:59), Andrew Eberbach wrote: 
  > Hi 
  >  
  > I've been noticing that irb (and as a result script/console in rails) 
  > don't behave correctly with Control C. Nothing would happen when I hit 
  > control C until I hit enter or a few more keys and then it would clear 
  > the line and show a ^C and reset to the prompt. This doesn't happen on 
  > Linux and it didn't happen on 10.5 
  >  
  > If there's a long running process in irb hitting control c works as 
  > expected but not if it's just sitting at a prompt. 
  >  
  > I played around with the ext/readline.c and found that if I put a 
  >  
  >    rl_catch_signals = 0; 
  >  
  > (see http://tiswww.case.edu/php/chet/readline/readline.html) 
  >  
  > in Init_readline() 
  >  
  > Then everything works as normal. Should this be added as a patch? 
  > Reading the readline docs it seems to me that what's happening is the 
  > internal readline handler gets stuck sending SIGINT back to the ruby 
  > process even though there's a trap("SIGINT") defined. Any ideas? 
  >  
  >  
  > Andrew 
  >  
 
  --  
  NARUSE, Yui    <naruse@airemix.jp> 

 

 =end 
 

Back