| Index: fusl/src/stdio/fputwc.c
|
| diff --git a/fusl/src/stdio/fputwc.c b/fusl/src/stdio/fputwc.c
|
| index 789fe9c90e98e72faccb570f373bb0ef8f5c384d..ad2f18db8db64b0f4d5be2375b526d8998c0cf13 100644
|
| --- a/fusl/src/stdio/fputwc.c
|
| +++ b/fusl/src/stdio/fputwc.c
|
| @@ -4,36 +4,39 @@
|
| #include <limits.h>
|
| #include <ctype.h>
|
|
|
| -wint_t __fputwc_unlocked(wchar_t c, FILE *f)
|
| -{
|
| - char mbc[MB_LEN_MAX];
|
| - int l;
|
| - locale_t *ploc = &CURRENT_LOCALE, loc = *ploc;
|
| +wint_t __fputwc_unlocked(wchar_t c, FILE* f) {
|
| + char mbc[MB_LEN_MAX];
|
| + int l;
|
| + locale_t *ploc = &CURRENT_LOCALE, loc = *ploc;
|
|
|
| - if (f->mode <= 0) fwide(f, 1);
|
| - *ploc = f->locale;
|
| + if (f->mode <= 0)
|
| + fwide(f, 1);
|
| + *ploc = f->locale;
|
|
|
| - if (isascii(c)) {
|
| - c = putc_unlocked(c, f);
|
| - } else if (f->wpos + MB_LEN_MAX < f->wend) {
|
| - l = wctomb((void *)f->wpos, c);
|
| - if (l < 0) c = WEOF;
|
| - else f->wpos += l;
|
| - } else {
|
| - l = wctomb(mbc, c);
|
| - if (l < 0 || __fwritex((void *)mbc, l, f) < l) c = WEOF;
|
| - }
|
| - if (c==WEOF) f->flags |= F_ERR;
|
| - *ploc = loc;
|
| - return c;
|
| + if (isascii(c)) {
|
| + c = putc_unlocked(c, f);
|
| + } else if (f->wpos + MB_LEN_MAX < f->wend) {
|
| + l = wctomb((void*)f->wpos, c);
|
| + if (l < 0)
|
| + c = WEOF;
|
| + else
|
| + f->wpos += l;
|
| + } else {
|
| + l = wctomb(mbc, c);
|
| + if (l < 0 || __fwritex((void*)mbc, l, f) < l)
|
| + c = WEOF;
|
| + }
|
| + if (c == WEOF)
|
| + f->flags |= F_ERR;
|
| + *ploc = loc;
|
| + return c;
|
| }
|
|
|
| -wint_t fputwc(wchar_t c, FILE *f)
|
| -{
|
| - FLOCK(f);
|
| - c = __fputwc_unlocked(c, f);
|
| - FUNLOCK(f);
|
| - return c;
|
| +wint_t fputwc(wchar_t c, FILE* f) {
|
| + FLOCK(f);
|
| + c = __fputwc_unlocked(c, f);
|
| + FUNLOCK(f);
|
| + return c;
|
| }
|
|
|
| weak_alias(__fputwc_unlocked, fputwc_unlocked);
|
|
|