fix swprintf handling of nul character in output
the buffer-flush function did not account for mbtowc returning 0 rather than 1 when converting the nul character. this prevented advancing past it, instead repeatedly converting it into the output wide character string until the max output length was exhausted.
This commit is contained in:
@@ -18,6 +18,7 @@ static size_t sw_write(FILE *f, const unsigned char *s, size_t l)
|
||||
if (s!=f->wbase && sw_write(f, f->wbase, f->wpos-f->wbase)==-1)
|
||||
return -1;
|
||||
while (c->l && l && (i=mbtowc(c->ws, (void *)s, l))>=0) {
|
||||
if (!i) i=1;
|
||||
s+=i;
|
||||
l-=i;
|
||||
c->l--;
|
||||
|
||||
Reference in New Issue
Block a user