#include "internal.h" static int flush(fmt·State *fmt) { io·Header *io = fmt->file; io->olen = fmt->buffer.cur - fmt->buffer.end; if(bio·flush(io)) return 0; fmt->buffer.end = (char*)io->e; fmt->buffer.cur = fmt->buffer.beg = fmt->buffer.end + io->olen; return 1; } int bio·vprint(io·Header *io, char *fmt, va_list args) { int n; fmt·State f; f.buffer.end = (char*)io->e; f.buffer.beg = f.buffer.cur = (char*)(io->e + io->olen); f.n = 0; f.file = io; f.flush = flush; va_copy(f.args,args); n = fmt·do(&f, fmt); va_end(f.args); io->olen = f.buffer.cur - f.buffer.beg; return n; }