fix assumption in fputs that fwrite returning 0 implies an error
[oweals/musl.git] / src / stdio / __overflow.c
1 #include "stdio_impl.h"
2
3 int __overflow(FILE *f, int _c)
4 {
5         unsigned char c = _c;
6         if (!f->wend && __towrite(f)) return EOF;
7         if (f->wpos < f->wend && c != f->lbf) return *f->wpos++ = c;
8         if (f->write(f, &c, 1)!=1) return EOF;
9         return c;
10 }