Blob
1 #include "lib9.h"2 #include <bio.h>4 int5 Bputc(Biobuf *bp, int c)6 {7 int i, j;9 loop:10 i = bp->ocount;11 j = i+1;12 if(i != 0) {13 bp->ocount = j;14 bp->ebuf[i] = c;15 return 0;16 }17 if(bp->state != Bwactive)18 return Beof;19 j = write(bp->fid, bp->bbuf, bp->bsize);20 if(j == bp->bsize) {21 bp->ocount = -bp->bsize;22 bp->offset += j;23 goto loop;24 }25 fprint(2, "Bputc: write error\n");26 bp->state = Binactive;27 bp->ocount = 0;28 return Beof;29 }