X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fstdio%2Ffputwc.c;h=7b621dd2ff9a868cd08e3beeeff3f53887dc89d7;hb=1d92cddb1e1ed4b6cc0e55461727561e7a2522e0;hp=b48bb74db15ecc826fc7043dc1cb152b729430b9;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/stdio/fputwc.c b/src/stdio/fputwc.c index b48bb74d..7b621dd2 100644 --- a/src/stdio/fputwc.c +++ b/src/stdio/fputwc.c @@ -1,4 +1,7 @@ #include "stdio_impl.h" +#include +#include +#include wint_t __fputwc_unlocked(wchar_t c, FILE *f) { @@ -8,15 +11,14 @@ wint_t __fputwc_unlocked(wchar_t c, FILE *f) f->mode |= f->mode+1; if (isascii(c)) { - if (c != f->lbf && f->wpos + 1 < f->wend) *f->wpos++ = c; - else c = __overflow(f, c); + c = putc_unlocked(c, f); } else if (f->wpos + MB_LEN_MAX < f->wend) { - l = wctomb(f->wpos, c); + l = wctomb((void *)f->wpos, c); if (l < 0) c = WEOF; else f->wpos += l; } else { l = wctomb(mbc, c); - if (l < 0 || __fwritex(mbc, l, f) < l) c = WEOF; + if (l < 0 || __fwritex((void *)mbc, l, f) < l) c = WEOF; } return c; } @@ -26,7 +28,7 @@ wint_t fputwc(wchar_t c, FILE *f) FLOCK(f); c = __fputwc_unlocked(c, f); FUNLOCK(f); - return 0; + return c; } weak_alias(__fputwc_unlocked, fputwc_unlocked);