<div dir="ltr">text:ports (in the framework) is where the implementation of DrRacket&#39;s port is if that helps.<div><br></div><div>Robby</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Feb 8, 2013 at 9:08 AM, Jens Axel Søgaard <span dir="ltr">&lt;<a href="mailto:jensaxel@soegaard.net" target="_blank">jensaxel@soegaard.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">2013/2/7 Jens Axel Søgaard &lt;<a href="mailto:jensaxel@soegaard.net">jensaxel@soegaard.net</a>&gt;:<br>
<br>
This is an update:<br>
<br>
  1. Danny confirms that the bug is repeatable on his machine.<br>
<br>
  2. Weirdness on first character of the input reminded him<br>
      on this bug:<br>
          <a href="http://comments.gmane.org/gmane.comp.lang.racket.user/1759" target="_blank">http://comments.gmane.org/gmane.comp.lang.racket.user/1759</a><br>
<br>
 3. Wrapping the call to system* with<br>
     (parameterize ([current-input-port (open-input-bytes #&quot;abcde\n&quot;) …)<br>
     make the program works expected.<br>
<br>
The last point imply that the behaviour has something to do with the<br>
&quot;buffer ports&quot; that DrRackets sets up to convert from ports used<br>
in DrRacket to the file-stream-port need by system*.<br>
<br>
4.  The equivalent C program (see below) does not trigger the error.<br>
<br>
#include &lt;stdio.h&gt;<br>
int main(int argc, char **argv) {<br>
   char str[200];<br>
   printf(&quot;Enter string:\n&quot;);<br>
   fgets(str, 200, stdin);<br>
   printf(&quot;%s\n&quot;,str);<br>
   return 0;<br>
}<br>
<span class="HOEnZb"><font color="#888888"><br>
/Jens Axel<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
&gt; I am basically calling (system* &quot;fpctest&quot;) where<br>
&gt; fpctest is the result of compiling this program with fpc:<br>
&gt;<br>
&gt; program fpctest;<br>
&gt; var s:string;<br>
&gt; begin<br>
&gt;   writeln(&#39;Enter string:&#39;);<br>
&gt;   readln(s);<br>
&gt;   writeln(s);<br>
&gt;   writeln(&#39;hello&#39;);<br>
&gt; end.<br>
&gt;<br>
&gt; The interaction in DrRacket is:<br>
&gt;<br>
&gt; 1. Input box appears<br>
&gt; 2. I enter   abcdef<br>
&gt; 3. abcdef appears where the input box was displayed.<br>
&gt; 4. This error messages is displayed:<br>
&gt;         .../Racket v5.3.2/collects/racket/private/port.rkt:128:15:<br>
&gt;          write-bytes-avail: output port is closed<br>
&gt; 5. The following is displayed:<br>
&gt;     Enter string:<br>
&gt;     bcdef<br>
&gt;     hello<br>
&gt;<br>
&gt; There are three things of interest:<br>
&gt;   1. The input box appears before &quot;Enter string&quot; is<br>
&gt;        written to the screen.<br>
&gt;      (Is this the Pascal program misbehaving?)<br>
&gt; 2. The error that points to a private file, which<br>
&gt;     seems odd.<br>
&gt; 3. The a is missing from the output of the<br>
&gt;      Pascal program.<br>
&gt;<br>
&gt; Running the program from command line racket<br>
&gt; seems to work every time.<br>
&gt;<br>
&gt; Once in while (say 1 out of 10 times) it works in DrRacket too.<br>
&gt;<br>
&gt; Any ideas what can explain what I see?<br>
&gt;<br>
&gt; Images: <a href="http://imgur.com/wSE6De5" target="_blank">http://imgur.com/wSE6De5</a><br>
&gt;               <a href="http://imgur.com/hdYJcKx" target="_blank">http://imgur.com/hdYJcKx</a><br>
<br>
</div></div><div class="HOEnZb"><div class="h5">____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</div></div></blockquote></div><br></div>