scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

commit b0af6cf542d1079e0d6cae0ed9d9c1af126598cb
parent 62ddccb77b673e8977a3d9f0dfb670217f4f1733
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Sat,  2 Dec 2017 20:33:57 +0100

[lib/c] Fix test increment

It wasn't done in characters out of expansions.

Diffstat:
Mlib/c/src/vfprintf.c | 8++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/c/src/vfprintf.c b/lib/c/src/vfprintf.c @@ -189,8 +189,8 @@ vfprintf(FILE * restrict fp, const char *fmt, va_list va) for (cnt = 0; ch = *fmt++; cnt += inc) { if (ch != '%') { putc(ch, fp); - ++cnt; - continue; + inc = 1; + goto test_inc; } fill = ' '; @@ -338,7 +338,7 @@ flags: setcnt(va, flags, cnt); break; case '\0': - goto end_format; + --fmt; } test_inc: if (inc > INT_MAX - cnt) { @@ -346,6 +346,6 @@ test_inc: return EOF; } } -end_format: + return (ferror(fp)) ? EOF : cnt; }