/*
 * vasprintf.c
 */

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

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

  va_copy(ap1, ap);

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

  *bufp = p = malloc(bytes);
  if ( !p )
    return -1;

  return vsnprintf(p, bytes, format, ap);
}
