Blame


1 b2cfc4e2 2003-09-30 devnull #include "lib9.h"
2 b2cfc4e2 2003-09-30 devnull #include <bio.h>
3 b2cfc4e2 2003-09-30 devnull
4 b2cfc4e2 2003-09-30 devnull int
5 b2cfc4e2 2003-09-30 devnull Bprint(Biobuf *bp, char *fmt, ...)
6 b2cfc4e2 2003-09-30 devnull {
7 b2cfc4e2 2003-09-30 devnull va_list ap;
8 b2cfc4e2 2003-09-30 devnull char *ip, *ep, *out;
9 b2cfc4e2 2003-09-30 devnull int n;
10 b2cfc4e2 2003-09-30 devnull
11 b2cfc4e2 2003-09-30 devnull ep = (char*)bp->ebuf;
12 b2cfc4e2 2003-09-30 devnull ip = ep + bp->ocount;
13 b2cfc4e2 2003-09-30 devnull va_start(ap, fmt);
14 b2cfc4e2 2003-09-30 devnull out = vseprint(ip, ep, fmt, ap);
15 b2cfc4e2 2003-09-30 devnull va_end(ap);
16 b2cfc4e2 2003-09-30 devnull if(out == 0 || out >= ep-5) {
17 b2cfc4e2 2003-09-30 devnull Bflush(bp);
18 b2cfc4e2 2003-09-30 devnull ip = ep + bp->ocount;
19 b2cfc4e2 2003-09-30 devnull va_start(ap, fmt);
20 b2cfc4e2 2003-09-30 devnull out = vseprint(ip, ep, fmt, ap);
21 b2cfc4e2 2003-09-30 devnull va_end(ap);
22 b2cfc4e2 2003-09-30 devnull if(out >= ep-5)
23 b2cfc4e2 2003-09-30 devnull return Beof;
24 b2cfc4e2 2003-09-30 devnull }
25 b2cfc4e2 2003-09-30 devnull n = out-ip;
26 b2cfc4e2 2003-09-30 devnull bp->ocount += n;
27 b2cfc4e2 2003-09-30 devnull return n;
28 b2cfc4e2 2003-09-30 devnull }