diff options
Diffstat (limited to 'mdk-stage1/dietlibc/lib/vsnprintf.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/vsnprintf.c | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/mdk-stage1/dietlibc/lib/vsnprintf.c b/mdk-stage1/dietlibc/lib/vsnprintf.c deleted file mode 100644 index dd06d6483..000000000 --- a/mdk-stage1/dietlibc/lib/vsnprintf.c +++ /dev/null @@ -1,33 +0,0 @@ -#include <stdarg.h> -#include <sys/types.h> -#include <unistd.h> -#include <stdlib.h> -#include <string.h> -#include "dietstdio.h" - -struct str_data { - unsigned char* str; - size_t len; - size_t size; -}; - -static int swrite(void*ptr, size_t nmemb, struct str_data* sd) { - size_t tmp=sd->size-sd->len; - if (tmp>0) { - size_t len=nmemb; - if (len>tmp) len=tmp; - if (sd->str) { - memcpy(sd->str+sd->len,ptr,len); - sd->str[sd->len+len]=0; - } - sd->len+=len; - } - return nmemb; -} - -int vsnprintf(char* str, size_t size, const char *format, va_list arg_ptr) { - struct str_data sd = { str, 0, size }; - struct arg_printf ap = { &sd, (int(*)(void*,size_t,void*)) swrite }; - if (size) --sd.size; - return __v_printf(&ap,format,arg_ptr); -} |