/*
 * asprintf.c
 */

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>

int asprintf(char **bufp, const char *format, ...)
{
    va_list ap, ap1;
    int rv;
    int bytes;
    char *p;

    va_start(ap, format);
    va_copy(ap1, ap);

    bytes = vsnprintf(NULL, 0, format, ap1) + 1;
    va_end(ap1);

    *bufp = p = malloc(bytes);
    if (!p)
	rv = -1;
    else
	rv = vsnprintf(p, bytes, format, ap);

    va_end(ap);

    return rv;
}
