static void sprintf_pushc(c, str_p)
char c;
char ** str_p;
{
  char * str = * str_p;

  *str++ = c;
  *str_p = str;
}

void sprintf(target, template, args)
char * target;
char * template;
long args;
{
  char * s = target;

  _printf_guts(template, &args, sprintf_pushc, &s);
  *s = '\0';
}

int vsprintf(target, template, args)
char * target;
char * template;
int * args;
{
  char * s = target;
  int result = _printf_guts(template, args, sprintf_pushc, &s);
  *s = '\0';
  return(result);
}
