1*3e12c5d1SDavid du Colombier #include <u.h> 2*3e12c5d1SDavid du Colombier #include <libc.h> 3*3e12c5d1SDavid du Colombier #include <bio.h> 4*3e12c5d1SDavid du Colombier 5*3e12c5d1SDavid du Colombier struct bgetd 6*3e12c5d1SDavid du Colombier { 7*3e12c5d1SDavid du Colombier Biobufhdr* b; 8*3e12c5d1SDavid du Colombier int eof; 9*3e12c5d1SDavid du Colombier }; 10*3e12c5d1SDavid du Colombier 11*3e12c5d1SDavid du Colombier static int Bgetdf(void * vp)12*3e12c5d1SDavid du ColombierBgetdf(void *vp) 13*3e12c5d1SDavid du Colombier { 14*3e12c5d1SDavid du Colombier int c; 15*3e12c5d1SDavid du Colombier struct bgetd *bg = vp; 16*3e12c5d1SDavid du Colombier 17*3e12c5d1SDavid du Colombier c = Bgetc(bg->b); 18*3e12c5d1SDavid du Colombier if(c == Beof) 19*3e12c5d1SDavid du Colombier bg->eof = 1; 20*3e12c5d1SDavid du Colombier return c; 21*3e12c5d1SDavid du Colombier } 22*3e12c5d1SDavid du Colombier 23*3e12c5d1SDavid du Colombier int Bgetd(Biobufhdr * bp,double * dp)24*3e12c5d1SDavid du ColombierBgetd(Biobufhdr *bp, double *dp) 25*3e12c5d1SDavid du Colombier { 26*3e12c5d1SDavid du Colombier double d; 27*3e12c5d1SDavid du Colombier struct bgetd b; 28*3e12c5d1SDavid du Colombier 29*3e12c5d1SDavid du Colombier b.b = bp; 30*3e12c5d1SDavid du Colombier b.eof = 0; 31*3e12c5d1SDavid du Colombier d = charstod(Bgetdf, &b); 32*3e12c5d1SDavid du Colombier if(b.eof) 33*3e12c5d1SDavid du Colombier return -1; 34*3e12c5d1SDavid du Colombier Bungetc(bp); 35*3e12c5d1SDavid du Colombier *dp = d; 36*3e12c5d1SDavid du Colombier return 1; 37*3e12c5d1SDavid du Colombier } 38