Blame


1 b0be3b88 2003-12-03 devnull #include "lib9.h"
2 b0be3b88 2003-12-03 devnull #include <bio.h>
3 b0be3b88 2003-12-03 devnull
4 b0be3b88 2003-12-03 devnull static int
5 b0be3b88 2003-12-03 devnull _Bfmtflush(Fmt *f)
6 b0be3b88 2003-12-03 devnull {
7 b0be3b88 2003-12-03 devnull Biobuf *b;
8 b0be3b88 2003-12-03 devnull
9 b0be3b88 2003-12-03 devnull b = f->farg;
10 d99b2f34 2004-03-26 devnull b->ocount = (char*)f->to - (char*)f->stop;
11 b0be3b88 2003-12-03 devnull if(Bflush(b) < 0)
12 b0be3b88 2003-12-03 devnull return 0;
13 b0be3b88 2003-12-03 devnull f->to = b->ebuf+b->ocount;
14 b0be3b88 2003-12-03 devnull return 1;
15 b0be3b88 2003-12-03 devnull }
16 b0be3b88 2003-12-03 devnull
17 b0be3b88 2003-12-03 devnull int
18 b0be3b88 2003-12-03 devnull Bfmtinit(Fmt *f, Biobuf *b)
19 b0be3b88 2003-12-03 devnull {
20 b0be3b88 2003-12-03 devnull if(b->state != Bwactive)
21 b0be3b88 2003-12-03 devnull return -1;
22 b0be3b88 2003-12-03 devnull memset(f, 0, sizeof *f);
23 b0be3b88 2003-12-03 devnull f->farg = b;
24 b0be3b88 2003-12-03 devnull f->start = b->bbuf;
25 b0be3b88 2003-12-03 devnull f->to = b->ebuf+b->ocount;
26 b0be3b88 2003-12-03 devnull f->stop = b->ebuf;
27 b0be3b88 2003-12-03 devnull f->flush = _Bfmtflush;
28 b0be3b88 2003-12-03 devnull return 0;
29 b0be3b88 2003-12-03 devnull }
30 b0be3b88 2003-12-03 devnull
31 b0be3b88 2003-12-03 devnull int
32 b0be3b88 2003-12-03 devnull Bfmtflush(Fmt *f)
33 b0be3b88 2003-12-03 devnull {
34 b0be3b88 2003-12-03 devnull if(_Bfmtflush(f) <= 0)
35 b0be3b88 2003-12-03 devnull return -1;
36 b0be3b88 2003-12-03 devnull return f->nfmt;
37 b0be3b88 2003-12-03 devnull }