https://bugs.ruby-lang.org/https://bugs.ruby-lang.org/favicon.ico?17113305112011-07-25T20:09:09ZRuby Issue Tracking SystemBackport193 - Backport #5023: irb does not like window resizeshttps://bugs.ruby-lang.org/issues/5023?journal_id=196582011-07-25T20:09:09Znaruse (Yui NARUSE)naruse@airemix.jp
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Assigned</i></li><li><strong>Assignee</strong> set to <i>keiju (Keiju Ishitsuka)</i></li><li><strong>Target version</strong> set to <i>2.0.0</i></li></ul> Backport193 - Backport #5023: irb does not like window resizeshttps://bugs.ruby-lang.org/issues/5023?journal_id=264412012-05-04T15:58:12Zralf.kistner@gmail.com (Ralf Kistner)ralf.kistner@gmail.com
<ul></ul><p>This is solved by using Readline.set_screen_size(lines, columns) to the correct size, every time the size has changed.</p>
<p>The only reliable way I've found to get the terminal size (on Ubuntu) is with the 'ruby-terminfo' gem: <a href="https://github.com/genki/ruby-terminfo" class="external">https://github.com/genki/ruby-terminfo</a></p>
<pre><code>require 'terminfo'
Readline.set_screen_size(TermInfo.screen_size[0], TermInfo.screen_size[1])
</code></pre>
<p>Calling the above two lines before each readline() solved the issue for me.<br>
Instead of polling for the terminal size, we could instead trap the SIGWINCH signal:</p>
<pre><code>require 'terminfo'
Signal.trap('SIGWINCH', proc { Readline.set_screen_size(TermInfo.screen_size[0], TermInfo.screen_size[1]) })
</code></pre>
<p>Also see my answer on this stackoverflow post: <a href="http://stackoverflow.com/a/10444128/214837" class="external">http://stackoverflow.com/a/10444128/214837</a></p> Backport193 - Backport #5023: irb does not like window resizeshttps://bugs.ruby-lang.org/issues/5023?journal_id=354922013-01-20T13:54:30Zzzak (zzak _)
<ul></ul><p>Using 1.9.3-p372 I was able to reproduce this issue, but unable to reproduce in 2.0.0-dev.</p> Backport193 - Backport #5023: irb does not like window resizeshttps://bugs.ruby-lang.org/issues/5023?journal_id=354932013-01-20T13:56:03Zzzak (zzak _)
<ul></ul><p>I think we just need to backport to 1.9.3 branch, but I'm not sure what to backport.</p> Backport193 - Backport #5023: irb does not like window resizeshttps://bugs.ruby-lang.org/issues/5023?journal_id=355532013-01-23T23:13:54Zkeiju (Keiju Ishitsuka)keiju@ishitsuka.com
<ul></ul><p>zzak (Zachary Scott) wrote:</p>
<blockquote>
<p>I think we just need to backport to 1.9.3 branch, but I'm not sure what to backport.</p>
</blockquote>
<p>I have identified a commit which solve this problem.<br>
The commit is revision 36130.</p>
<p>I think the following is applied only:</p>
<p>--- ext/readline/readline.c (revision 38896)<br>
+++ ext/readline/readline.c (working copy)<br>
@@ -1679,9 +1679,7 @@<br>
#ifdef HAVE_RL_CATCH_SIGNALS<br>
rl_catch_signals = 0;<br>
#endif<br>
-#ifdef HAVE_RL_CATCH_SIGWINCH</p>
<ul>
<li>rl_catch_sigwinch = 0;<br>
-#endif</li>
</ul>
<ul>
<li>
</ul>
<p>#ifdef HAVE_RL_CLEAR_SIGNALS<br>
rl_clear_signals();<br>
#endif</p> Backport193 - Backport #5023: irb does not like window resizeshttps://bugs.ruby-lang.org/issues/5023?journal_id=355562013-01-23T23:42:54Zzzak (zzak _)
<ul></ul><p>Thank you Keiju-san!</p>
<p>Will you please open a backport request for usa?</p> Backport193 - Backport #5023: irb does not like window resizeshttps://bugs.ruby-lang.org/issues/5023?journal_id=355592013-01-24T00:23:58Zkeiju (Keiju Ishitsuka)keiju@ishitsuka.com
<ul><li><strong>Assignee</strong> changed from <i>keiju (Keiju Ishitsuka)</i> to <i>usa (Usaku NAKAMURA)</i></li><li><strong>Target version</strong> changed from <i>2.0.0</i> to <i>1.9.3</i></li></ul><p>zzak (Zachary Scott) wrote:</p>
<blockquote>
<p>Thank you Keiju-san!</p>
<p>Will you please open a backport request for usa?</p>
</blockquote>
<p>OK.</p>
<p>Usa-san, yoroshiku.</p> Backport193 - Backport #5023: irb does not like window resizeshttps://bugs.ruby-lang.org/issues/5023?journal_id=355752013-01-24T17:02:30Zusa (Usaku NAKAMURA)usa@garbagecollect.jp
<ul><li><strong>Tracker</strong> changed from <i>Bug</i> to <i>Backport</i></li><li><strong>Project</strong> changed from <i>Ruby master</i> to <i>Backport193</i></li><li><strong>Target version</strong> deleted (<del><i>1.9.3</i></del>)</li></ul> Backport193 - Backport #5023: irb does not like window resizeshttps://bugs.ruby-lang.org/issues/5023?journal_id=367692013-02-22T14:27:51Zusa (Usaku NAKAMURA)usa@garbagecollect.jp
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Closed</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>This issue was solved with changeset r39377.<br>
Michael, thank you for reporting this issue.<br>
Your contribution to Ruby is greatly appreciated.<br>
May Ruby be with you.</p>
<hr>
<p>merge revision(s) 36130: [Backport <a class="issue tracker-4 status-5 priority-4 priority-default closed" title="Backport: irb does not like window resizes (Closed)" href="https://bugs.ruby-lang.org/issues/5023">#5023</a>]</p>
<pre><code>* ext/readline/readline.c (Init_readline): don't set 0 to
rl_catch_signals and rl_catch_sigwinch. [Bug #5423]
</code></pre>