This interactive hoc session fails: term% hoc while (read(x)) print x,2*x, "\n" 1 1 2 hoc: non-number read into x near line 2 It will work if you add '\n' to the whitespace characters skipped over in the varread function. Reference: /n/sources/patch/applied/hoc-error1 Date: Tue Feb 20 01:46:32 CET 2007 Signed-off-by: lawler@buffalo.edu --- /sys/src/cmd/hoc/code.c Tue Feb 20 01:40:39 2007 +++ /sys/src/cmd/hoc/code.c Tue Feb 20 01:40:38 2007 @@ -612,7 +612,7 @@ Again: do c = Bgetc(bin); - while(c==' ' || c=='\t'); + while(c==' ' || c=='\t' || c=='\n'); if(c == Beof){ Iseof: if(moreinput())