Branch: Tag:

2008-12-09

2008-12-09 18:30:53 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed line buffering bug in Stdio.FILE()->getchar().
{n,}gets() now support ignoring partial lines at EOF.
Added tc{get,set}attr() as optional members of Stdio.Stream.
Added constants TCSA{NOW,DRAIN,FLUSH} for convenience.
Made set_{read,write}_oob_callback() optional members of Stdio.NonblockingStream.
Added some Autodoc mk II markup.

Rev: lib/modules/Stdio.pmod/module.pmod:1.246

1933:   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>gets</b></span>   </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>gets</span>(</b><b>)</b></code></p></dd> + <dd><p><code><code class='datatype'>string</code> <b><span class='method'>gets</span>(</b><code class='datatype'>bool</code>|<code class='datatype'>void</code> <code class='argument'>not_all</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Read one line of input with support for input conversion.</p>   </dd> -  + <dt class='head--doc'><span id='p-not_all'></span>Parameter <code class='parameter'>not_all</code></dt> + <dd></dd><dd class='body--doc'><p>Set this parameter to ignore partial lines at EOF. This +  is useful for eg monitoring a growing logfile.</p> + </dd>   <dt class='head--doc'>Returns</dt>   <dd class='body--doc'><p>This function returns the line read if successful, and <code class='expr'>0</code> if    no more lines are available.</p>
1986:   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>ngets</b></span>   </dt> - <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>string</code>) <b><span class='method'>ngets</span>(</b><code class='datatype'>void</code>|<code class='datatype'>int(1..)</code> <code class='argument'>n</code><b>)</b></code></p></dd> + <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>string</code>) <b><span class='method'>ngets</span>(</b><code class='datatype'>void</code>|<code class='datatype'>int(1..)</code> <code class='argument'>n</code>, <code class='datatype'>bool</code>|<code class='datatype'>void</code> <code class='argument'>not_all</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Get <code>n</code> lines.</p>   </dd>   <dt class='head--doc'><span id='p-n'></span>Parameter <code class='parameter'>n</code></dt>   <dd></dd><dd class='body--doc'><p>Number of lines to get, or all remaining if zero.</p> -  + </dd> + <dt class='head--doc'><span id='p-not_all'></span>Parameter <code class='parameter'>not_all</code></dt> + <dd></dd><dd class='body--doc'><p>Set this parameter to ignore partial lines at EOF. This +  is useful for eg monitoring a growing logfile.</p>   </dd></dl>      
2099:   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>ungets</span>(</b><code class='datatype'>string</code> <code class='argument'>s</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function puts a line back in the input buffer. The string + <dd class='body--doc'><p>This function puts a line back in the input buffer. The line    can then be read with eg <code>read()</code>, <code>gets()</code> or <code>getchar()</code>.</p>   </dd>   <dt class='head--doc'>Note</dt>
4283:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>TCSADRAIN</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> <code class='datatype'>string</code> Stdio.<code class='constant'>TCSADRAIN</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Argument to <code>Stdio.File()-&gt;tcsetattr()</code>.</p> + <p> Change after all output has been written.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>TCSAFLUSH</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> <code class='datatype'>string</code> Stdio.<code class='constant'>TCSAFLUSH</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Argument to <code>Stdio.File()-&gt;tcsetattr()</code>.</p> + <p> Change after all output has been written, +  and empty the input buffers.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>TCSANOW</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> <code class='datatype'>string</code> Stdio.<code class='constant'>TCSANOW</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Argument to <code>Stdio.File()-&gt;tcsetattr()</code>.</p> + <p> Change immediately.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span>   <span class='homogen--name'><b>XATTR_CREATE</b></span>   </dt>   <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>XATTR_CREATE</code></code></p></dd>