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 /* 7*8ccd4a63SDavid du Colombier * format a string into the output buffer 8*8ccd4a63SDavid du Colombier * designed for formats which themselves call fmt, 9*8ccd4a63SDavid du Colombier * but ignore any width flags 10*8ccd4a63SDavid du Colombier */ 11*8ccd4a63SDavid du Colombier int 12*8ccd4a63SDavid du Colombier fmtprint(Fmt *f, char *fmt, ...) 13*8ccd4a63SDavid du Colombier { 14*8ccd4a63SDavid du Colombier va_list va; 15*8ccd4a63SDavid du Colombier int n; 16*8ccd4a63SDavid du Colombier 17*8ccd4a63SDavid du Colombier f->flags = 0; 18*8ccd4a63SDavid du Colombier f->width = 0; 19*8ccd4a63SDavid du Colombier f->prec = 0; 20*8ccd4a63SDavid du Colombier va = f->args; 21*8ccd4a63SDavid du Colombier va_start(f->args, fmt); 22*8ccd4a63SDavid du Colombier n = dofmt(f, fmt); 23*8ccd4a63SDavid du Colombier va_end(f->args); 24*8ccd4a63SDavid du Colombier f->flags = 0; 25*8ccd4a63SDavid du Colombier f->width = 0; 26*8ccd4a63SDavid du Colombier f->prec = 0; 27*8ccd4a63SDavid du Colombier f->args = va; 28*8ccd4a63SDavid du Colombier if(n >= 0) 29*8ccd4a63SDavid du Colombier return 0; 30*8ccd4a63SDavid du Colombier return n; 31*8ccd4a63SDavid du Colombier } 32*8ccd4a63SDavid du Colombier 33