/*
 * 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);
  va_end(ap1);

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

  return rv;
}
