Bug #4505
Patch did not apply correctly on extconf.rb with #2761 on ruby 1.8
| Status: | Open | Start date: | 03/16/2011 | |
|---|---|---|---|---|
| Priority: | Low | Due date: | ||
| Assignee: | - | % Done: | 100% |
|
| Category: | ext | |||
| Target version: | - | |||
| ruby -v: | 1.8.x |
Description
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>