summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-16 03:45:12 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-16 03:45:12 +0000
commit606ea39a3b03566079d49711ab8a7b53d447b938 (patch)
treeb9d9b6674661bee600374d2826f1931103ead6d0
parent34f8c6becdc7e713e12bf76b99567ef55ec74195 (diff)
Fix SEGV of readline on FreeBSD. [ruby-core:21884]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24140 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--ext/readline/readline.c3
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 8becef733a..280cefe89e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Thu Jul 16 12:42:10 2009 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * ext/readline/readline.c (readline_readline): rl_free_line_state
+ before rl_cleanup_after_signal.
+
+ * ext/readline/readline.c (Init_readline): set rl_catch_signals and
+ rl_catch_signwinch as 0. [ruby-core:21884]
+
Thu Jul 16 08:59:22 2009 Koichi Sasada <ko1@atdot.net>
* node.h, vm_core.h, variable.c: rename global_entry to rb_global_entry.
diff --git a/ext/readline/readline.c b/ext/readline/readline.c
index 660ee6dfc1..45be3225ba 100644
--- a/ext/readline/readline.c
+++ b/ext/readline/readline.c
@@ -253,6 +253,7 @@ readline_readline(int argc, VALUE *argv, VALUE self)
if (status) {
#if defined HAVE_RL_CLEANUP_AFTER_SIGNAL
/* restore terminal mode and signal handler*/
+ rl_free_line_state();
rl_cleanup_after_signal();
#elif defined HAVE_RL_DEPREP_TERM_FUNCTION
/* restore terminal mode */
@@ -1450,6 +1451,8 @@ Init_readline()
#elif defined HAVE_RL_EVENT_HOOK
rl_event_hook = readline_event;
#endif
+ rl_catch_signals = 0;
+ rl_catch_sigwinch = 0;
#ifdef HAVE_RL_CLEAR_SIGNALS
rl_clear_signals();
#endif