1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-19 06:31:31 +00:00
cc65/libsrc/common/vsprintf.c
cuz ea2f5c1309 Fixed a bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@88 b7a2c559-68d2-44c3-8de9-860c34a00d81
2000-06-19 06:14:44 +00:00

49 lines
736 B
C

/*
* vsprintf.c
*
* Ullrich von Bassewitz, 11.08.1998
*/
#include <stdarg.h>
#include <stdio.h>
#include "_printf.h"
static void out (struct outdesc* d, char* buf, unsigned count)
/* Routine used for writing */
{
/* String - be shure to check the size */
while (count-- && d->ccount < d->uns) {
((char*) d->ptr) [d->ccount] = *buf;
++buf;
++d->ccount;
}
}
int vsprintf (char* buf, char* format, va_list ap)
{
struct outdesc d;
/* Setup descriptor */
d.fout = out;
d.ptr = buf;
d.uns = 0x7FFF;
/* Do formatting and output */
_printf (&d, format, ap);
/* Terminate the result string */
buf [d.ccount++] = '\0';
/* Return bytes written */
return d.ccount;
}