X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fstdio%2F__toread.c;h=35f67b8f8d9386dff7025d88f073835e390b4733;hb=5b5db97f7e80bde2678aed72336a28375e800354;hp=f00cc467ee9c4c371a874cb3943f23557976d0d0;hpb=e3cd6c5c265cd481db6e0c5b529855d99f0bda30;p=musl diff --git a/src/stdio/__toread.c b/src/stdio/__toread.c index f00cc467..35f67b8f 100644 --- a/src/stdio/__toread.c +++ b/src/stdio/__toread.c @@ -3,12 +3,19 @@ int __toread(FILE *f) { f->mode |= f->mode-1; - if (f->wpos > f->buf) f->write(f, 0, 0); + if (f->wpos > f->wbase) f->write(f, 0, 0); f->wpos = f->wbase = f->wend = 0; - if (f->flags & (F_EOF|F_NORD)) { - if (f->flags & F_NORD) f->flags |= F_ERR; + if (f->flags & F_NORD) { + f->flags |= F_ERR; return EOF; } - f->rpos = f->rend = f->buf; - return 0; + f->rpos = f->rend = f->buf + f->buf_size; + return (f->flags & F_EOF) ? EOF : 0; +} + +void __stdio_exit_needed(void); + +void __toread_needs_stdio_exit() +{ + __stdio_exit_needed(); }