commit 62780722f528fdbc19afb48128f1638e55d1568b
parent e5f0d957f2737346033dbd3175fb6a0803d841ba
Author: rsc <devnull@localhost>
Date: Sun, 25 Apr 2004 21:13:58 +0000
do flush properly
Diffstat:
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/libbio/bfmt.c b/src/libbio/bfmt.c
@@ -31,7 +31,11 @@ Bfmtinit(Fmt *f, Biobuf *b)
int
Bfmtflush(Fmt *f)
{
- if(_Bfmtflush(f) <= 0)
+ Biobuf *b;
+
+ b = f->farg;
+ if(f->to == nil)
return -1;
+ b->ocount = (char*)f->to - (char*)f->stop;
return f->nfmt;
}
diff --git a/src/libbio/bprint.c b/src/libbio/bprint.c
@@ -14,5 +14,7 @@ Bprint(Biobuf *bp, char *fmt, ...)
f.args = args;
n = dofmt(&f, fmt);
va_end(args);
+ if(n > 0 && Bfmtflush(&f) < 0)
+ return -1;
return n;
}