- do {
- buffer = calloc(1, cur);
-
- va_start(args, format);
- len = vsnprintf(buffer, cur, format, args);
- va_end(args);
-
- if (len <= cur)
- break;
-
- cur = len;
- free(buffer);
- } while (1);
+ va_start(args, format);
+ len = valist_to_buf(&buffer, format, args);
+ va_end(args);