Commit Diff


commit - 8b45564f0fd8eccbeaefc79d25470a451c5328d2
commit + 727facb60539f522635f0d8978435ce4680fecd6
blob - /dev/null
blob + 7a09f1c0fc917626ccb0a1ed8da52a070a11f2bc (mode 644)
--- /dev/null
+++ src/libbio/bvprint.c
@@ -0,0 +1,39 @@
+#include "lib9.h"
+#include <bio.h>
+
+static int 
+fmtBflush(Fmt *f)
+{
+	Biobuf *bp;
+
+	bp = f->farg;
+	bp->ocount = (char*)f->to - (char*)f->stop;
+	if(Bflush(bp) < 0)
+		return 0;
+	f->stop = bp->ebuf;
+	f->to = (char*)f->stop + bp->ocount;
+	f->start = f->to;
+	return 1;
+}
+
+int
+Bvprint(Biobuf *bp, char *fmt, va_list arg)
+{
+	int n;
+	Fmt f;
+
+	f.runes = 0;
+	f.stop = bp->ebuf;
+	f.start = (char*)f.stop + bp->ocount;
+	f.to = f.start;
+	f.flush = fmtBflush;
+	f.farg = bp;
+	f.nfmt = 0;
+	f.args = arg;
+	n = dofmt(&f, fmt);
+	bp->ocount = (char*)f.to - (char*)f.stop;
+	return n;
+}
+
+
+