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