https://bugs.ruby-lang.org/https://bugs.ruby-lang.org/favicon.ico?17113305112010-03-26T13:22:06ZRuby Issue Tracking SystemRuby master - Bug #3014: select + read for STDIN unexpected result on Windowshttps://bugs.ruby-lang.org/issues/3014?journal_id=93632010-03-26T13:22:06Zyugui (Yuki Sonoda)yugui@yugui.jp
<ul><li><strong>Assignee</strong> set to <i>usa (Usaku NAKAMURA)</i></li><li><strong>Target version</strong> changed from <i>2.0.0</i> to <i>1.9.2</i></li></ul><p>=begin</p>
<p>=end</p> Ruby master - Bug #3014: select + read for STDIN unexpected result on Windowshttps://bugs.ruby-lang.org/issues/3014?journal_id=93692010-03-26T19:12:53Zphasis68 (Heesob Park)phasis@gmail.com
<ul></ul><p>=begin</p>
<p>I found that STDIN.read(n) works when n >= 41.</p>
<p>I guess this bug is caused by PeekConsoleInput's bug or side effect.</p>
<p>Here is a guick and dirty patch.</p>
<p>--- win32.c 2010-03-26 19:04:28.502025030 +0900<br>
+++ win32.c.new 2010-03-26 19:03:05.138310126 +0900<br>
@@ -4851,6 +4851,10 @@<br>
return _read(fd, buf, size);<br>
}</p>
<ul>
<li>
<p>if((_osfile(fd) & FDEV) && size <= 40) {</p>
</li>
<li>
<pre><code> return fread(buf, 1, size, stdin);
</code></pre>
</li>
<li>
<p>}</p>
</li>
<li>
<p>MTHREAD_ONLY(EnterCriticalSection(&(_pioinfo(fd)->lock)));</p>
<p>if (!size || _osfile(fd) & FEOFLAG) {</p>
</li>
</ul>
<p>=end</p> Ruby master - Bug #3014: select + read for STDIN unexpected result on Windowshttps://bugs.ruby-lang.org/issues/3014?journal_id=112892010-05-27T22:37:06Zusa (Usaku NAKAMURA)usa@garbagecollect.jp
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>=begin<br>
This issue was solved with changeset r28035.<br>
Heesob, thank you for reporting this issue.<br>
Your contribution to Ruby is greatly appreciated.<br>
May Ruby be with you.</p>
<p>=end</p>