Skip to content
Permalink
Browse files
Fixed __PHYSFS_platformTell() things in stable-1.0 branch.
  • Loading branch information
icculus committed Aug 1, 2011
1 parent 1921be0 commit 8ae1b528a0940a02337dc6f0401e45b8fa5f2ef1
Showing with 6 additions and 7 deletions.
  1. +1 −2 physfs_internal.h
  2. +2 −2 platform/pocketpc.c
  3. +1 −1 platform/posix.c
  4. +2 −2 platform/win32.c
@@ -1431,8 +1431,7 @@ int __PHYSFS_platformSeek(void *opaque, PHYSFS_uint64 pos);
*
* Not all file types can "tell"; this is to be expected by the caller.
*
* On error, call __PHYSFS_setError() and return zero. On success, return
* a non-zero value.
* On error, call __PHYSFS_setError() and return -1. On success, return >= 0.
*/
PHYSFS_sint64 __PHYSFS_platformTell(void *opaque);

@@ -553,7 +553,7 @@ PHYSFS_sint64 __PHYSFS_platformTell(void *opaque)
LowPos = SetFilePointer(FileHandle, 0, &HighPos, FILE_CURRENT);
if ((LowPos == INVALID_SET_FILE_POINTER) && (GetLastError() != NO_ERROR))
{
BAIL_MACRO(win32strerror(), 0);
BAIL_MACRO(win32strerror(), -1);
} /* if */
else
{
@@ -599,7 +599,7 @@ int __PHYSFS_platformEOF(void *opaque)
return 1; /* we're definitely at EOF. */

/* Get the current position in the file */
if ((FilePosition = __PHYSFS_platformTell(opaque)) != 0)
if ((FilePosition = __PHYSFS_platformTell(opaque)) != -1)
{
/* Non-zero if EOF is equal to the file length */
retval = (FilePosition == FileLength);
@@ -478,7 +478,7 @@ int __PHYSFS_platformEOF(void *opaque)
{
PHYSFS_sint64 pos = __PHYSFS_platformTell(opaque);
PHYSFS_sint64 len = __PHYSFS_platformFileLength(opaque);
return(pos >= len);
return((pos < 0) || (len < 0) || (pos >= len));
} /* __PHYSFS_platformEOF */


@@ -897,7 +897,7 @@ PHYSFS_sint64 __PHYSFS_platformTell(void *opaque)
if ( (LowPos == PHYSFS_INVALID_SET_FILE_POINTER) &&
(GetLastError() != NO_ERROR) )
{
BAIL_MACRO(win32strerror(), 0);
BAIL_MACRO(win32strerror(), -1);
} /* if */
else
{
@@ -944,7 +944,7 @@ int __PHYSFS_platformEOF(void *opaque)
return 1; /* we're definitely at EOF. */

/* Get the current position in the file */
if ((FilePosition = __PHYSFS_platformTell(opaque)) != 0)
if ((FilePosition = __PHYSFS_platformTell(opaque)) != -1
{
/* Non-zero if EOF is equal to the file length */
retval = (FilePosition == FileLength);

0 comments on commit 8ae1b52

Please sign in to comment.