1*8ccd4a63SDavid du Colombier #include <u.h> 2*8ccd4a63SDavid du Colombier #include <libc.h> 3*8ccd4a63SDavid du Colombier 4*8ccd4a63SDavid du Colombier int 5*8ccd4a63SDavid du Colombier vsnprint(char *buf, int len, char *fmt, va_list args) 6*8ccd4a63SDavid du Colombier { 7*8ccd4a63SDavid du Colombier Fmt f; 8*8ccd4a63SDavid du Colombier 9*8ccd4a63SDavid du Colombier if(len <= 0) 10*8ccd4a63SDavid du Colombier return -1; 11*8ccd4a63SDavid du Colombier f.runes = 0; 12*8ccd4a63SDavid du Colombier f.start = buf; 13*8ccd4a63SDavid du Colombier f.to = buf; 14*8ccd4a63SDavid du Colombier f.stop = buf + len - 1; 15*8ccd4a63SDavid du Colombier f.flush = nil; 16*8ccd4a63SDavid du Colombier f.farg = nil; 17*8ccd4a63SDavid du Colombier f.nfmt = 0; 18*8ccd4a63SDavid du Colombier f.args = args; 19*8ccd4a63SDavid du Colombier dofmt(&f, fmt); 20*8ccd4a63SDavid du Colombier *(char*)f.to = '\0'; 21*8ccd4a63SDavid du Colombier return (char*)f.to - buf; 22*8ccd4a63SDavid du Colombier } 23