18ccd4a63SDavid du Colombier #include <u.h> 28ccd4a63SDavid du Colombier #include <libc.h> 38ccd4a63SDavid du Colombier #include "fmtdef.h" 48ccd4a63SDavid du Colombier 58ccd4a63SDavid du Colombier /* 68ccd4a63SDavid du Colombier * format a string into the output buffer 78ccd4a63SDavid du Colombier * designed for formats which themselves call fmt, 88ccd4a63SDavid du Colombier * but ignore any width flags 98ccd4a63SDavid du Colombier */ 108ccd4a63SDavid du Colombier int fmtprint(Fmt * f,char * fmt,...)118ccd4a63SDavid du Colombierfmtprint(Fmt *f, char *fmt, ...) 128ccd4a63SDavid du Colombier { 138ccd4a63SDavid du Colombier va_list va; 148ccd4a63SDavid du Colombier int n; 158ccd4a63SDavid du Colombier 168ccd4a63SDavid du Colombier f->flags = 0; 178ccd4a63SDavid du Colombier f->width = 0; 188ccd4a63SDavid du Colombier f->prec = 0; 19*0d601874SDavid du Colombier VA_COPY(va, f->args); 20*0d601874SDavid du Colombier VA_END(f->args); 218ccd4a63SDavid du Colombier va_start(f->args, fmt); 228ccd4a63SDavid du Colombier n = dofmt(f, fmt); 238ccd4a63SDavid du Colombier va_end(f->args); 248ccd4a63SDavid du Colombier f->flags = 0; 258ccd4a63SDavid du Colombier f->width = 0; 268ccd4a63SDavid du Colombier f->prec = 0; 27*0d601874SDavid du Colombier VA_COPY(f->args,va); 28*0d601874SDavid du Colombier VA_END(va); 298ccd4a63SDavid du Colombier if(n >= 0) 308ccd4a63SDavid du Colombier return 0; 318ccd4a63SDavid du Colombier return n; 328ccd4a63SDavid du Colombier } 338ccd4a63SDavid du Colombier 34