Cleaned up some __PHYSFS_platformStat() details.
authorRyan C. Gordon <icculus@icculus.org>
Fri, 09 Mar 2012 03:32:26 -0500
changeset 1199 fc5cec340d26
parent 1198 4cdb856021dd
child 1200 bd38547c5b61
Cleaned up some __PHYSFS_platformStat() details.
src/archiver_dir.c
src/platform_posix.c
--- 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 */