fix assumption in fputs that fwrite returning 0 implies an error
[oweals/musl.git] / src / stdio / __toread.c
1 #include <stdio_impl.h>
2
3 int __toread(FILE *f)
4 {
5         f->mode |= f->mode-1;
6         if (f->wpos > f->buf) f->write(f, 0, 0);
7         f->wpos = f->wbase = f->wend = 0;
8         if (f->flags & F_NORD) {
9                 f->flags |= F_ERR;
10                 return EOF;
11         }
12         f->rpos = f->rend = f->buf + f->buf_size;
13         return (f->flags & F_EOF) ? EOF : 0;
14 }
15
16 void __stdio_exit_needed(void);
17
18 void __toread_needs_stdio_exit()
19 {
20         __stdio_exit_needed();
21 }