Cleaned up some __PHYSFS_platformStat() details.
--- a/src/archiver_dir.c Sat Mar 10 03:07:30 2012 -0500
+++ b/src/archiver_dir.c Fri Mar 09 03:32:26 2012 -0500
@@ -72,7 +72,7 @@
allocator.Free(f);
if (io == NULL)
{
- PHYSFS_Stat statbuf;
+ PHYSFS_Stat statbuf; /* !!! FIXME: this changes the error message. */
__PHYSFS_platformStat(f, fileExists, &statbuf);
return NULL;
} /* if */
--- a/src/platform_posix.c Sat Mar 10 03:07:30 2012 -0500
+++ b/src/platform_posix.c Fri Mar 09 03:32:26 2012 -0500
@@ -205,13 +205,12 @@
strcpy(buf + dlen, ent->d_name);
- if (__PHYSFS_platformStat(buf, &exists, &statbuf))
- {
- if (!exists)
- continue;
- else if (statbuf.filetype == PHYSFS_FILETYPE_SYMLINK)
- continue;
- } /* if */
+ if (!__PHYSFS_platformStat(buf, &exists, &statbuf))
+ continue;
+ else if (!exists)
+ continue; /* probably can't happen, but just in case. */
+ else if (statbuf.filetype == PHYSFS_FILETYPE_SYMLINK)
+ continue;
} /* if */
callback(callbackdata, origdir, ent->d_name);
@@ -389,14 +388,9 @@
{
struct stat statbuf;
- if (lstat(filename, &statbuf))
+ if (lstat(filename, &statbuf) == -1)
{
- if (errno == ENOENT)
- {
- *exists = 0;
- return 0;
- } /* if */
-
+ *exists = (errno == ENOENT);
BAIL_MACRO(strerror(errno), 0);
} /* if */