]> git.sur5r.net Git - cc65/commitdiff
Don't set errno when the regular end of directory is reached. Plus minor code
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 3 Jun 2012 15:31:19 +0000 (15:31 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 3 Jun 2012 15:31:19 +0000 (15:31 +0000)
cleanup.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5677 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/cbm/readdir.c

index e7b91cc9113f820ace918deaea977a0d36dc60b8..678c343fce25c9d25064980eaf40604f42d37712 100644 (file)
@@ -52,18 +52,17 @@ struct dirent* __fastcall__ readdir (register DIR* dir)
         }
     }
 
+    /* Bump the directory offset */
+    dir->off += count;
+
     /* End of directory is reached if the buffer contains "blocks free". It is
-     * sufficient here to check for the leading 'b'. To avoid problems if we're
-     * called again, read until end of directory.
+     * sufficient here to check for the leading 'b'. buffer will contain at
+     * least one byte if we come here.
      */
-    if (count > 0 && buffer[0] == 'b') {
-        while (_dirread1 (dir, buffer)) ;
-        return 0;
+    if (buffer[0] == 'b') {
+        goto exitpoint;
     }
 
-    /* Bump the directory offset */
-    dir->off += count;
-
     /* Parse the buffer for the filename and file type */
     i = 0;
     j = 0;