#include "common.h" int vasprintf(char **bufp, const char *fmt, va_list va) { va_list va2; int len; char *buf; va_copy(va2, va); len = vsnprintf(NULL, 0, fmt, va2); va_end(va2); buf = malloc(len+1); if (buf) len = vsnprintf(buf, len+1, fmt, va); *bufp = buf; return len; } int asprintf(char **bufp, const char *fmt, ...) { va_list va; int len; va_start(va, fmt); len = vasprintf(bufp, fmt, va); va_end(va); return len; }