#include #include #include #include "oslib/asprintf.h" #ifndef CONFIG_HAVE_VASPRINTF int vasprintf(char **strp, const char *fmt, va_list ap) { va_list ap_copy; char *str; int len; #ifdef va_copy va_copy(ap_copy, ap); #else __va_copy(ap_copy, ap); #endif len = vsnprintf(NULL, 0, fmt, ap_copy); va_end(ap_copy); if (len < 0) return len; len++; str = malloc(len); *strp = str; return str ? vsnprintf(str, len, fmt, ap) : -1; } #endif #ifndef CONFIG_HAVE_ASPRINTF int asprintf(char **strp, const char *fmt, ...) { va_list arg; int done; va_start(arg, fmt); done = vasprintf(strp, fmt, arg); va_end(arg); return done; } #endif