diff --git a/platform/pocketpc.c b/platform/pocketpc.c index 15137fc..5c5d7f2 100644 --- a/platform/pocketpc.c +++ b/platform/pocketpc.c @@ -505,14 +505,18 @@ PHYSFS_sint64 __PHYSFS_platformFileLength(void *opaque) int __PHYSFS_platformEOF(void *opaque) { + const PHYSFS_sint64 FileLength = __PHYSFS_platformFileLength(opaque); PHYSFS_sint64 FilePosition; int retval = 0; + if (FileLength == 0) + return 1; /* we're definitely at EOF. */ + /* Get the current position in the file */ if ((FilePosition = __PHYSFS_platformTell(opaque)) != 0) { /* Non-zero if EOF is equal to the file length */ - retval = FilePosition == __PHYSFS_platformFileLength(opaque); + retval = (FilePosition == FileLength); } /* if */ return(retval); diff --git a/platform/windows.c b/platform/windows.c index ec09470..c73a7a3 100644 --- a/platform/windows.c +++ b/platform/windows.c @@ -1182,14 +1182,18 @@ PHYSFS_sint64 __PHYSFS_platformFileLength(void *opaque) int __PHYSFS_platformEOF(void *opaque) { + const PHYSFS_sint64 FileLength = __PHYSFS_platformFileLength(opaque); PHYSFS_sint64 FilePosition; int retval = 0; + if (FileLength == 0) + return 1; /* we're definitely at EOF. */ + /* Get the current position in the file */ if ((FilePosition = __PHYSFS_platformTell(opaque)) != 0) { /* Non-zero if EOF is equal to the file length */ - retval = FilePosition == __PHYSFS_platformFileLength(opaque); + retval = (FilePosition == FileLength); } /* if */ return(retval);