gline() was peeking inside its Biobuf to get the line length, probably predates Blinelen(). It was an issue for portability to Win32. -Steve Reference: /n/sources/patch/applied/uniq-niggle Date: Fri May 1 17:55:58 CES 2009 Signed-off-by: steve@quintile.net --- /sys/src/cmd/uniq.c Fri May 1 17:54:47 2009 +++ /sys/src/cmd/uniq.c Fri May 1 17:54:45 2009 @@ -91,10 +91,10 @@ p = Brdline(&fin, '\n'); if(p == 0) return 1; - if(fin.rdline >= bsize-1) + if(Blinelen(&fin) >= bsize-1) sysfatal("line too long"); - memmove(buf, p, fin.rdline); - buf[fin.rdline-1] = 0; + memmove(buf, p, Blinelen(&fin)); + buf[Blinelen(&fin)-1] = 0; return 0; }