<div dir="ltr">Thanks Andreas, that is better and I have updated the technote. It is strange that the file on Project Oberon lost the change.  I see that it is there in an older archive on my hard drive.</div><br><div class="gmail_quote"><div dir="ltr">On Sat, Jan 5, 2019 at 12:52 PM Andreas Pirklbauer <<a href="mailto:andreas_pirklbauer@yahoo.com">andreas_pirklbauer@yahoo.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">   > If anyone is curious it can be found at: <br>
   > <a rel="noreferrer">https://github.com/io-core/technotes/blob/master/technote001.md</a><br>
   ><br>
   > Texts.Mod<br>
   >   in PROCEDURE Scan use  WHILE (ch = " ") OR (ch = TAB) OR (ch = NL) OR (ch = CR) DO<br>
   >   in PROCEDURE Scan use  IF (ch = NL) OR (ch = CR) THEN INC(S.line) END ;<br>
<br>
For procedure Texts.Scan it is actually slightly better to use the following code for the WHILE loop instead:<br>
<br>
     WHILE ~S.eot & (ch <= " ") DO<br>
<br>
Reason: This code will *not* hang the system if an EOT is encountered in the file before any of<br>
the characters in the WHILE condition.. for example with a file which consists *just* of an EOT.<br>
<br>
This “bug” was already fixed at one point at <a rel="noreferrer">www.projectoberon.com</a>, but now the old version is back.<br>
--<br>
<a>Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems<br>
<a rel="noreferrer">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a><br>
</blockquote></div>