Index: fusl/src/stdio/__toread.c |
diff --git a/fusl/src/stdio/__toread.c b/fusl/src/stdio/__toread.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b08f5bb440345efefc5dd0f4d8679e0a56eb91e0 |
--- /dev/null |
+++ b/fusl/src/stdio/__toread.c |
@@ -0,0 +1,21 @@ |
+#include <stdio_impl.h> |
+ |
+int __toread(FILE *f) |
+{ |
+ f->mode |= f->mode-1; |
+ if (f->wpos > f->buf) f->write(f, 0, 0); |
+ f->wpos = f->wbase = f->wend = 0; |
+ if (f->flags & F_NORD) { |
+ f->flags |= F_ERR; |
+ return EOF; |
+ } |
+ 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(); |
+} |