diff --git a/src/files.cpp b/src/files.cpp index 332bddb1f..26313e15b 100644 --- a/src/files.cpp +++ b/src/files.cpp @@ -145,11 +145,16 @@ long FileReader::Read (void *buffer, long len) char *FileReader::Gets(char *strbuf, int len) { - if (len <= 0) return 0; + if (len <= 0 || FilePos >= Length) return NULL; char *p = fgets(strbuf, len, File); if (p != NULL) { + int old = FilePos; FilePos = ftell(File) - StartPos; + if (FilePos > Length) + { + strbuf[Length-old] = 0; + } } return p; }