/*
 * vfprintf.c
 */

#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#include <unistd.h>

#define BUFFER_SIZE	32768

int vfprintf(FILE *file, const char *format, va_list ap)
{
  int rv;
  char buffer[BUFFER_SIZE];

  rv = vsnprintf(buffer, BUFFER_SIZE, format, ap);

  if ( rv < 0 )
    return rv;

  if ( rv > BUFFER_SIZE-1 )
    rv = BUFFER_SIZE-1;

  return __fwrite(buffer, rv, file);
}
