/*
 * vsnprintf hack 
 * better than raw vsprintf, but only just barely....
 * $Id: vsnprintf.c,v 1.4 1996/01/23 06:09:50 sob Exp $
 */
#include <stdio.h>
#include <varargs.h>
int
vsnprintf(buf, bufsize, fmt, ap)
	char *buf;
	int bufsize;
	char *fmt;
	va_list ap;
{
	char *str;
	int status;
	if (bufsize < 1)
	  return(EOF);
        if (strlen(buf) > bufsize && 
	    ((str = (char *)calloc(bufsize+1))!= NULL)){
	  strncpy(str,buf,bufsize);
	  status = vsprintf(str, fmt, ap);  
	  strcpy(buf,str);
	  free(str);
	}else
	  status = vsprintf(buf, fmt, ap);
        return status;
}
