[#44586] [Ruby 1.9 - Bug #5423][Open] readlineの入力待機中に端末のウィンドウサイズ変更すると入力内容が乱れる — Takuto Matsuu <matsuu@...>

8 messages 2011/10/08

[#44589] [Ruby 1.9 - Bug #5429][Open] 64ビットなFreeBSDのioctlでビット31が1なリクエストの時の不具合 — Makoto Kishimoto <redmine@...>

21 messages 2011/10/09

[#44604] Ruby 2.0 release plan — "NARUSE, Yui" <naruse@...>

ささださんが既にいくつか 2.0 関連のメールを投げていらっしゃいますが、

75 messages 2011/10/18
[#44607] Re: Ruby 2.0 release plan — Yukihiro Matsumoto <matz@...> 2011/10/18

まつもと ゆきひろです

[#44618] Re: Ruby 2.0 release plan — "NARUSE, Yui" <naruse@...> 2011/10/18

(2011/10/18 16:15), Yukihiro Matsumoto wrote:

[#44619] Re: Ruby 2.0 release plan — Yukihiro Matsumoto <matz@...> 2011/10/18

まつもと ゆきひろです

[#44627] Re: Ruby 2.0 release plan — Urabe Shyouhei <shyouhei@...> 2011/10/19

On 10/18/2011 10:16 PM, Yukihiro Matsumoto wrote:

[#44629] Re: Ruby 2.0 release plan — Yukihiro Matsumoto <matz@...> 2011/10/19

まつもと ゆきひろです

[#44631] Re: Ruby 2.0 release plan — Urabe Shyouhei <shyouhei@...> 2011/10/19

たとえば2.0の次のバージョン番号はどうしますか?

[#44633] Re: Ruby 2.0 release plan — "NARUSE, Yui" <naruse@...> 2011/10/20

2011年10月20日3:31 Urabe Shyouhei <shyouhei@ruby-lang.org>:

[#44612] Re: Ruby 2.0 release plan — Yusuke Endoh <mame@...> 2011/10/18

遠藤です。

[#44707] [ruby-trunk - Feature #5512][Open] Integer#/ の改訂 — tadayoshi funaba <redmine@...>

13 messages 2011/10/30

[#44719] [ruby-trunk - Feature #5520][Open] Numeric#exact?、Numeric#inexact? の追加 — tadayoshi funaba <redmine@...>

13 messages 2011/10/31

[ruby-dev:44588] [Ruby 1.9 - Bug #5423][Assigned] readlineの入力待機中に端末のウィンドウサイズ変更すると入力内容が乱れる

From: Shota Fukumori <sorah@...>
Date: 2011-10-08 01:20:57 UTC
List: ruby-dev #44588
Issue #5423 has been updated by Shota Fukumori.

Status changed from Open to Assigned
Assignee set to Kouji Takao


----------------------------------------
Bug #5423: readlineの入力待機中に端末のウィンドウサイズ変更すると入力内容が乱れる
http://redmine.ruby-lang.org/issues/5423

Author: Takuto Matsuu
Status: Assigned
Priority: Normal
Assignee: Kouji Takao
Category: 
Target version: 
ruby -v: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] 


Readline.readline("> ")の入力待機中にターミナルのウィンドウサイズを変更すると、
入力内容がウィンドウサイズ変更に合わせて変化せず、画面が乱れます。

readlineがSIGWINCHに反応しないように設定されているのが原因のようです。

revision 24140で追加されたrl_catch_sigwinch = 0;が該当部分になります。
rl_catch_signals=0を設定した場合でも、SIGWINCHは反応すべき(rl_catch_sigwinch=1)だと思います。

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 24139)
+++ ChangeLog	(revision 24140)
@@ -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.
Index: ext/readline/readline.c
===================================================================
--- ext/readline/readline.c	(revision 24139)
+++ ext/readline/readline.c	(revision 24140)
@@ -253,6 +253,7 @@
     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 @@
 #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



-- 
http://redmine.ruby-lang.org

In This Thread