Hello,

If speed is matter, try rdline() in Kirara.
http://plan9.aichi-u.ac.jp/netlib/kirara/kirara-1.2a.tgz

More improved version will be included in kirara-2.0 (to be released).

On 2013/10/10, at 1:04, erik quanstrom wrote:

> 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
> 


Reply via email to