#include "internal.h" int fmt·vnsprint(int len, char *buf, char *fmt, va_list args) { fmt·State io; if(len <= 0) return -1; io.n = 0; io.buffer.beg = io.buffer.cur = buf; io.buffer.end = buf+len-1; io.flush = nil; io.file = nil; va_copy(io.args, args); fmt·setlocale(&io, nil, nil, nil); fmt·do(&io, fmt); va_end(io.args); *(io.buffer.cur) = 0; return io.buffer.cur - io.buffer.beg; }