#include "internal.h" // makef returns a new dynamic string object string string·makef(byte *fmt, ...) { vlong n; string s; va_list args; char bytes[256]; s = string·nnmake(nil, 0, arrlen(bytes)); va_start(args, fmt); do{ n = fmt·vnsprint(bytes, arrlen(bytes), fmt, args); string·append(&s, bytes); }while(n==arrlen(bytes)); va_end(args); return s; }