xref: /plan9/sys/src/cmd/unix/drawterm/libc/fmtfdflush.c (revision 2282df4ee19682a10ae95200202320ff2912f104)
1*0d601874SDavid du Colombier #include <inttypes.h>
2*0d601874SDavid du Colombier #include <u.h>
3*0d601874SDavid du Colombier #include <libc.h>
4*0d601874SDavid du Colombier #include "fmtdef.h"
5*0d601874SDavid du Colombier 
6*0d601874SDavid du Colombier /*
7*0d601874SDavid du Colombier  * generic routine for flushing a formatting buffer
8*0d601874SDavid du Colombier  * to a file descriptor
9*0d601874SDavid du Colombier  */
10*0d601874SDavid du Colombier int
__fmtFdFlush(Fmt * f)11*0d601874SDavid du Colombier __fmtFdFlush(Fmt *f)
12*0d601874SDavid du Colombier {
13*0d601874SDavid du Colombier 	int n;
14*0d601874SDavid du Colombier 
15*0d601874SDavid du Colombier 	n = (char*)f->to - (char*)f->start;
16*0d601874SDavid du Colombier 	if(n && write((uintptr_t)f->farg, f->start, n) != n)
17*0d601874SDavid du Colombier 		return 0;
18*0d601874SDavid du Colombier 	f->to = f->start;
19*0d601874SDavid du Colombier 	return 1;
20*0d601874SDavid du Colombier }
21