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