#include "lib9.h"
#include <bio.h>

static int
_Bfmtflush(Fmt *f)
{
	Biobuf *b;

	b = f->farg;
	b->ocount = f->to - f->stop;
	if(Bflush(b) < 0)
		return 0;
	f->to = b->ebuf+b->ocount;
	return 1;
}

int
Bfmtinit(Fmt *f, Biobuf *b)
{
	if(b->state != Bwactive)
		return -1;
	memset(f, 0, sizeof *f);
	f->farg = b;
	f->start = b->bbuf;
	f->to = b->ebuf+b->ocount;
	f->stop = b->ebuf;
	f->flush = _Bfmtflush;
	return 0;
}

int
Bfmtflush(Fmt *f)
{
	if(_Bfmtflush(f) <= 0)
		return -1;
	return f->nfmt;
}
