Browse Source

Work around PhysicsFS eof bug on windows (issue #272)

Bart van Strien 14 years ago
parent
commit
7e06aebf66
1 changed files with 15 additions and 1 deletions
  1. 15 1
      src/modules/filesystem/physfs/File.cpp

+ 15 - 1
src/modules/filesystem/physfs/File.cpp

@@ -168,9 +168,23 @@ namespace physfs
 		return write(data->getData(), (size == ALL) ? data->getSize() : size);
 	}
 
+#ifdef LOVE_WINDOWS
+	inline bool test_eof(File * this, PHYSFS_File *)
+	{
+		int pos = this->tell();
+		int size = this->getSize();
+		return pos == -1 || size == -1 || pos >= size;
+	}
+#else
+	inline bool test_eof(File *, PHYSFS_File * file)
+	{
+		return PHYSFS_eof(file);
+	}
+#endif
+
 	bool File::eof()
 	{
-		if(file == 0 || PHYSFS_eof(file))
+		if(file == 0 || test_eof(this, file))
 			return true;
 		return false;
 	}