diff --git a/mini-printf.c b/mini-printf.c index ec0ff14..61b04f1 100644 --- a/mini-printf.c +++ b/mini-printf.c @@ -127,18 +127,20 @@ static int _puts(char *s, int len, void *buf) { if(!buf) return len; - struct mini_buff *b = buf; - char * p0 = b->buffer; - int i; - /* Copy to buffer */ - for (i = 0; i < len; i++) { - if(b->pbuffer == b->buffer + b->buffer_len - 1) { - break; + else { + struct mini_buff *b = buf; + char * p0 = b->buffer; + int i; + /* Copy to buffer */ + for (i = 0; i < len; i++) { + if(b->pbuffer == b->buffer + b->buffer_len - 1) { + break; + } + *(b->pbuffer ++) = s[i]; } - *(b->pbuffer ++) = s[i]; + *(b->pbuffer) = 0; + return b->pbuffer - p0; } - *(b->pbuffer) = 0; - return b->pbuffer - p0; } #ifdef MINI_PRINTF_ENABLE_OBJECTS @@ -161,11 +163,12 @@ int mini_vsnprintf(char *buffer, unsigned int buffer_len, const char *fmt, va_list va) { struct mini_buff b; + int n; b.buffer = buffer; b.pbuffer = buffer; b.buffer_len = buffer_len; if(buffer_len == 0) buffer = (void*) 0; - int n = mini_vpprintf(_puts, (buffer != (void*)0)?&b:(void*)0, fmt, va); + n = mini_vpprintf(_puts, (buffer != (void*)0)?&b:(void*)0, fmt, va); if(buffer == (void*) 0) { return n; } @@ -178,6 +181,7 @@ mini_vpprintf(int (*puts)(char* s, int len, void* buf), void* buf, const char *f char bf[24]; char bf2[24]; char ch; + int n; #ifdef MINI_PRINTF_ENABLE_OBJECTS void* obj; #endif @@ -185,7 +189,7 @@ mini_vpprintf(int (*puts)(char* s, int len, void* buf), void* buf, const char *f /* run puts in counting mode. */ puts = _puts; buf = (void*)0; } - int n = 0; + n = 0; while ((ch=*(fmt++))) { int len; if (ch!='%') {