[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] libc: Nach fseek() io_res->os_eof zurücksetzen
! libc: Wenn wir bis ans Ende der Datei gelesen haben und os_eof
deswegen gesetzt wurde, muss das Flag nach einem fseek() wieder
gelöscht werden, weil wir jetzt möglicherweise nicht mehr am Ende der
Datei sind und feof() 0 zurückgeben soll. Wenn wir es doch sind, wird
das nächste fread() das Flag wieder setzen.
Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
src/modules/lib/stdlibc/file.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/modules/lib/stdlibc/file.c b/src/modules/lib/stdlibc/file.c
index 101bdc5f9..292dcc62f 100644
--- a/src/modules/lib/stdlibc/file.c
+++ b/src/modules/lib/stdlibc/file.c
@@ -688,13 +688,14 @@ int fseek (FILE* io_res, long int offset, int origin)
}
out:
- // ungetc-Buffer leeren
+ // ungetc-Buffer leeren. EOF ist auch nicht mehr gültig.
if (ret == 0) {
if (io_res->ungetc_count != 0) {
free(io_res->ungetc_buffer);
io_res->ungetc_buffer = NULL;
io_res->ungetc_count = 0;
}
+ io_res->os_eof = false;
}
return ret;
}
--
2.16.4