summaryrefslogtreecommitdiff
path: root/userland/libc/stdio/stdin.c
diff options
context:
space:
mode:
Diffstat (limited to 'userland/libc/stdio/stdin.c')
-rw-r--r--userland/libc/stdio/stdin.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/userland/libc/stdio/stdin.c b/userland/libc/stdio/stdin.c
index fcfc71e..e497167 100644
--- a/userland/libc/stdio/stdin.c
+++ b/userland/libc/stdio/stdin.c
@@ -71,10 +71,13 @@ size_t read_fd(FILE *f, unsigned char *s, size_t l) {
f->read_buffer_has_read += read_len;
s += read_len;
l -= read_len;
+ lseek(f->fd, read_len, SEEK_CUR);
return read_len + read_fd(f, s, l);
}
if (0 == f->read_buffer_stored) {
+ int offset = lseek(f->fd, 0, SEEK_CUR);
f->read_buffer_stored = non_cache_read_fd(f, f->read_buffer, 4096);
+ lseek(f->fd, offset, SEEK_SET);
f->read_buffer_has_read = 0;
if (0 == f->read_buffer_stored) {
return 0;