On Wed Oct 9 11:54:41 EDT 2013, st...@quintile.net wrote: > Hi all > > It has long been an irritation that Brdline returns failure (to match the > end of line token) at end of file if the file does not end with a newline. > > This is correct but annoying. > > does anyone had a neat snippet of code which ensures we parse the > last line correctly? > > For files on the filesystem I just fix them, but I am wrapping Brdline > around a tcp connection so I am not in control of how people terminate > their files...
how about int brdline(Biobuf *b, char *buf, int nbuf) { int i, rv; Rune r; for(i = 0; i < nbuf - UTFmax - 1; ){ rv = Bgetrune(b); if(rv == -1 || rv == '\n') break; r = rv; i += chartorune(&r, buf+i); } buf[i] = 0; return i; } - erik