Fixed entry loading.
--- a/archivers/grp.c Tue Jul 23 18:05:50 2002 +0000
+++ b/archivers/grp.c Tue Jul 23 18:11:12 2002 +0000
@@ -334,7 +334,7 @@
{
void *fh = NULL;
PHYSFS_uint32 fileCount;
- PHYSFS_uint32 location = 32; /* sizeof sig + sizeof 1st file header. */
+ PHYSFS_uint32 location = 16; /* sizeof sig. */
GRPentry *entry;
char *ptr;
@@ -347,6 +347,8 @@
BAIL_MACRO(ERR_OUT_OF_MEMORY, 0);
} /* if */
+ location += (16 * fileCount);
+
for (entry = info->entries; fileCount > 0; fileCount--, entry++)
{
if (__PHYSFS_platformRead(fh, &entry->name, 12, 1) != 1)
@@ -367,7 +369,7 @@
entry->size = PHYSFS_swapULE32(entry->size);
entry->startPos = location;
- location += entry->size + 16;
+ location += entry->size;
} /* for */
__PHYSFS_platformClose(fh);