ack/lang/cem/libcc.ansi/core/printf/vsnprintf.c

39 lines
595 B
C
Raw Normal View History

/*
* vsprintf - print formatted output without ellipsis on an array
*/
/* $Id$ */
2018-06-21 20:33:47 +00:00
#include <stdio.h>
#include <stdarg.h>
#include "doprnt.h"
2018-06-23 16:54:40 +00:00
#if ACKCONF_WANT_STDIO
static char* output_buffer;
static size_t output_buffer_len;
static int snprintf_putc(int c)
{
if (output_buffer_len)
{
*output_buffer++ = c;
output_buffer_len--;
}
return 0;
}
int vsnprintf(char* s, size_t len, const char* format, va_list ap)
{
int retval;
output_buffer = s;
output_buffer_len = len;
_doprnt_put = snprintf_putc;
retval = _doprnt(format, ap);
snprintf_putc('\0');
return retval;
}
2018-06-23 16:54:40 +00:00
#endif