[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