소스 검색

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

Bart van Strien 14 년 전
부모
커밋
7e06aebf66
1개의 변경된 파일15개의 추가작업 그리고 1개의 파일을 삭제
  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;
 	}