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 /* 78ccd4a63SDavid du Colombier * format a string into the output buffer 88ccd4a63SDavid du Colombier * designed for formats which themselves call fmt, 98ccd4a63SDavid du Colombier * but ignore any width flags 108ccd4a63SDavid du Colombier */ 118ccd4a63SDavid du Colombier int fmtvprint(Fmt * f,char * fmt,va_list args)128ccd4a63SDavid du Colombierfmtvprint(Fmt *f, char *fmt, va_list args) 138ccd4a63SDavid du Colombier { 148ccd4a63SDavid du Colombier va_list va; 158ccd4a63SDavid du Colombier int n; 168ccd4a63SDavid du Colombier 178ccd4a63SDavid du Colombier f->flags = 0; 188ccd4a63SDavid du Colombier f->width = 0; 198ccd4a63SDavid du Colombier f->prec = 0; 20*0d601874SDavid du Colombier VA_COPY(va,f->args); 21*0d601874SDavid du Colombier VA_END(f->args); 22*0d601874SDavid du Colombier VA_COPY(f->args,args); 238ccd4a63SDavid du Colombier n = dofmt(f, fmt); 248ccd4a63SDavid du Colombier f->flags = 0; 258ccd4a63SDavid du Colombier f->width = 0; 268ccd4a63SDavid du Colombier f->prec = 0; 27*0d601874SDavid du Colombier VA_END(f->args); 28*0d601874SDavid du Colombier VA_COPY(f->args,va); 29*0d601874SDavid du Colombier VA_END(va); 308ccd4a63SDavid du Colombier if(n >= 0) 318ccd4a63SDavid du Colombier return 0; 328ccd4a63SDavid du Colombier return n; 338ccd4a63SDavid du Colombier } 348ccd4a63SDavid du Colombier 35