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