SDL: Updated PhysFS to v2.0.3

This commit is contained in:
Sergii Pylypenko
2016-06-06 16:23:04 +03:00
parent e3b53515aa
commit 1f245af78d
19 changed files with 174 additions and 113 deletions

View File

@@ -245,9 +245,6 @@ static int wad_load_entries(const char *name, int forWriting, WADinfo *info)
PHYSFS_uint32 fileCount;
PHYSFS_uint32 directoryOffset;
WADentry *entry;
char lastDirectory[9];
lastDirectory[8] = 0; /* Make sure lastDirectory stays null-terminated. */
BAIL_IF_MACRO(!wad_open(name, forWriting, &fh, &fileCount,&directoryOffset), NULL, 0);
info->entryCount = fileCount;

View File

@@ -535,6 +535,8 @@ static ZIPentry *zip_find_entry(ZIPinfo *info, const char *path, int *isDir)
else /* substring match...might be dir or entry or nothing. */
{
int i;
if (isDir != NULL)
{
*isDir = (thispath[pathlen] == '/');
@@ -544,12 +546,27 @@ static ZIPentry *zip_find_entry(ZIPinfo *info, const char *path, int *isDir)
if (thispath[pathlen] == '\0') /* found entry? */
return(&a[middle]);
/* adjust search params, try again. */
else if (thispath[pathlen] > '/')
hi = middle - 1;
else
lo = middle + 1;
} /* if */
/* substring match; search remaining space to find it... */
for (i = lo; i < hi; i++)
{
thispath = a[i].name;
if (strncmp(path, thispath, pathlen) == 0)
{
if (isDir != NULL)
{
*isDir = (thispath[pathlen] == '/');
if (*isDir)
return(NULL);
} /* if */
if (thispath[pathlen] == '\0') /* found entry? */
return(&a[i]);
} /* if */
} /* for */
break;
} /* else */
} /* while */
if (isDir != NULL)
@@ -628,6 +645,7 @@ static void zip_expand_symlink_path(char *path)
else
{
prevptr = ptr;
ptr++;
} /* else */
} /* while */
} /* zip_expand_symlink_path */