1*8ccd4a63SDavid du Colombier #include <u.h> 2*8ccd4a63SDavid du Colombier #include <libc.h> 3*8ccd4a63SDavid du Colombier #include "fmtdef.h" 4*8ccd4a63SDavid du Colombier 5*8ccd4a63SDavid du Colombier /* 6*8ccd4a63SDavid du Colombier * public routine for final flush of a formatting buffer 7*8ccd4a63SDavid du Colombier * to a file descriptor; returns total char count. 8*8ccd4a63SDavid du Colombier */ 9*8ccd4a63SDavid du Colombier int 10*8ccd4a63SDavid du Colombier fmtfdflush(Fmt *f) 11*8ccd4a63SDavid du Colombier { 12*8ccd4a63SDavid du Colombier if(_fmtFdFlush(f) <= 0) 13*8ccd4a63SDavid du Colombier return -1; 14*8ccd4a63SDavid du Colombier return f->nfmt; 15*8ccd4a63SDavid du Colombier } 16*8ccd4a63SDavid du Colombier 17*8ccd4a63SDavid du Colombier /* 18*8ccd4a63SDavid du Colombier * initialize an output buffer for buffered printing 19*8ccd4a63SDavid du Colombier */ 20*8ccd4a63SDavid du Colombier int 21*8ccd4a63SDavid du Colombier fmtfdinit(Fmt *f, int fd, char *buf, int size) 22*8ccd4a63SDavid du Colombier { 23*8ccd4a63SDavid du Colombier f->runes = 0; 24*8ccd4a63SDavid du Colombier f->start = buf; 25*8ccd4a63SDavid du Colombier f->to = buf; 26*8ccd4a63SDavid du Colombier f->stop = buf + size; 27*8ccd4a63SDavid du Colombier f->flush = _fmtFdFlush; 28*8ccd4a63SDavid du Colombier f->farg = (void*)fd; 29*8ccd4a63SDavid du Colombier f->nfmt = 0; 30*8ccd4a63SDavid du Colombier return 0; 31*8ccd4a63SDavid du Colombier } 32