Updates PhysicsFS to latest stable-3.0
This should solve issues related to a crash on windows update 1809
This commit is contained in:
parent
cb2510cf77
commit
9299087b44
|
@ -25,6 +25,10 @@ configure_file(
|
|||
"${PROJECT_BINARY_DIR}/config.h"
|
||||
)
|
||||
|
||||
macro(set_option option value)
|
||||
set(${option} ${value} CACHE INTERNAL "" FORCE)
|
||||
endmacro()
|
||||
|
||||
if (EXISTS "${PROJECT_SOURCE_DIR}/steamworks_c_wrapper/sdk")
|
||||
MESSAGE ( STATUS "Steam SDK located, Steam build enabled")
|
||||
set(STEAM 1)
|
||||
|
@ -105,6 +109,8 @@ if (NOT LUA_FOUND OR STEAM)
|
|||
endif ()
|
||||
|
||||
if (NOT PHYSFS_FOUND OR STEAM)
|
||||
set_option(PHYSFS_BUILD_SHARED off)
|
||||
set_option(PHYSFS_BUILD_TEST off)
|
||||
add_subdirectory(physfs-3.0)
|
||||
include_directories(physfs-3.0/src)
|
||||
set(PHYSFS_LIBRARY physfs-static)
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
repo: 7672c9962ce627edaaa67ff54fe4ad8f9a46dc2b
|
||||
node: fa8e38bcc3545000a38704b65b604a2c1b764d10
|
||||
branch: stable-3.0
|
||||
tag: release-3.0.1
|
|
@ -1,2 +0,0 @@
|
|||
syntax:glob
|
||||
cmake-build
|
|
@ -1,15 +0,0 @@
|
|||
0bb92a5f0fffd2452cc737346e8b796c213a5688 release-0.1.1
|
||||
2f2afcbd8abd784f738ac45b0368044763d63748 release-0.1.0
|
||||
3c7cf50a58fbf220154acd4bdfdf00a21f259eb7 release-0.1.8
|
||||
473b50402f55b2340fc286775d1b78d18a810362 release-0.1.3
|
||||
60b5f566a2585d78b2ffadd8d9c16299d0340820 release-1.0.0
|
||||
67aff4091bf129f7167ed87f937b15f31093e19e release-0.1.9
|
||||
6ad1722bbcaec1265cb74c9b7be13fe02a547d37 release-0.1.7
|
||||
8f3ccaaea1cd5dc19235882494d6102e5e9176fb release-0.1.2
|
||||
c966316c89981bea6ccaa2c2909bb303bfeeb82b release-0.1.6
|
||||
d2f04ab4b4127757234af6b30bfc98ad4ee9cb15 release-0.1.4
|
||||
d94f1ccac8095509c57ad640d54796aea0d260f0 release-0.1.5
|
||||
fe0c1d6f40afa6fca09a277a1ade59231f16c66f release-1.1.1
|
||||
5d70fca3be361258edfb59c3edaba5abe75a1e88 release-2.0.0
|
||||
df04959950eb3830c39adfa983789f70f86062d7 release-1.1.0
|
||||
3396e6dd19fbb52a3fa7e171ffb38ed9acb285a4 release-2.1.1
|
|
@ -168,7 +168,7 @@ if(PHYSFS_BUILD_STATIC)
|
|||
set(PHYSFS_INSTALL_TARGETS ${PHYSFS_INSTALL_TARGETS} ";physfs-static")
|
||||
endif()
|
||||
|
||||
option(PHYSFS_BUILD_SHARED "Build shared library" FALSE)
|
||||
option(PHYSFS_BUILD_SHARED "Build shared library" TRUE)
|
||||
if(PHYSFS_BUILD_SHARED)
|
||||
add_library(physfs SHARED ${PHYSFS_SRCS})
|
||||
set_target_properties(physfs PROPERTIES MACOSX_RPATH 1)
|
||||
|
@ -192,7 +192,7 @@ if(PHYSFS_BUILD_SHARED AND PHYSFS_BUILD_STATIC AND NOT WINDOWS)
|
|||
set_target_properties(physfs-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
||||
endif()
|
||||
|
||||
option(PHYSFS_BUILD_TEST "Build stdio test program." FALSE)
|
||||
option(PHYSFS_BUILD_TEST "Build stdio test program." TRUE)
|
||||
mark_as_advanced(PHYSFS_BUILD_TEST)
|
||||
if(PHYSFS_BUILD_TEST)
|
||||
find_path(READLINE_H readline/readline.h)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
Copyright (c) 2001-2017 Ryan C. Gordon and others.
|
||||
Copyright (c) 2001-2018 Ryan C. Gordon and others.
|
||||
|
||||
This software is provided 'as-is', without any express or implied warranty.
|
||||
In no event will the authors be held liable for any damages arising from
|
||||
|
|
|
@ -164,6 +164,9 @@ CMake fixes:
|
|||
Bug fixes,
|
||||
Rémi Verschelde
|
||||
|
||||
Bug fixes:
|
||||
Rob Loach
|
||||
|
||||
Other stuff:
|
||||
Your name here! Patches go to icculus@icculus.org ...
|
||||
|
||||
|
|
|
@ -50,18 +50,22 @@ static int locateOneElement(char *buf)
|
|||
ptr++; /* point past dirsep to entry itself. */
|
||||
} /* else */
|
||||
|
||||
for (i = rc; *i != NULL; i++)
|
||||
if (rc != NULL)
|
||||
{
|
||||
if (PHYSFS_utf8stricmp(*i, ptr) == 0)
|
||||
for (i = rc; *i != NULL; i++)
|
||||
{
|
||||
strcpy(ptr, *i); /* found a match. Overwrite with this case. */
|
||||
PHYSFS_freeList(rc);
|
||||
return 1;
|
||||
} /* if */
|
||||
} /* for */
|
||||
if (PHYSFS_utf8stricmp(*i, ptr) == 0)
|
||||
{
|
||||
strcpy(ptr, *i); /* found a match. Overwrite with this case. */
|
||||
PHYSFS_freeList(rc);
|
||||
return 1;
|
||||
} /* if */
|
||||
} /* for */
|
||||
|
||||
PHYSFS_freeList(rc);
|
||||
} /* if */
|
||||
|
||||
/* no match at all... */
|
||||
PHYSFS_freeList(rc);
|
||||
return 0;
|
||||
} /* locateOneElement */
|
||||
|
||||
|
|
|
@ -32,10 +32,16 @@
|
|||
#endif
|
||||
|
||||
#if !TARGET_SDL2
|
||||
#ifndef RW_SEEK_SET
|
||||
#define RW_SEEK_SET SEEK_SET
|
||||
#endif
|
||||
#ifndef RW_SEEK_CUR
|
||||
#define RW_SEEK_CUR SEEK_CUR
|
||||
#endif
|
||||
#ifndef RW_SEEK_END
|
||||
#define RW_SEEK_END SEEK_END
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TARGET_SDL2
|
||||
static Sint64 SDLCALL physfsrwops_size(struct SDL_RWops *rw)
|
||||
|
|
|
@ -879,13 +879,20 @@ static DirHandle *openDirectory(PHYSFS_Io *io, const char *d, int forWriting)
|
|||
|
||||
if (io == NULL)
|
||||
{
|
||||
/* file doesn't exist, etc? Just fail out. */
|
||||
PHYSFS_Stat statbuf;
|
||||
BAIL_IF_ERRPASS(!__PHYSFS_platformStat(d, &statbuf, 1), NULL);
|
||||
|
||||
/* DIR gets first shot (unlike the rest, it doesn't deal with files). */
|
||||
retval = tryOpenDir(io, &__PHYSFS_Archiver_DIR, d, forWriting, &claimed);
|
||||
if (retval || claimed)
|
||||
return retval;
|
||||
if (statbuf.filetype == PHYSFS_FILETYPE_DIRECTORY)
|
||||
{
|
||||
retval = tryOpenDir(io, &__PHYSFS_Archiver_DIR, d, forWriting, &claimed);
|
||||
if (retval || claimed)
|
||||
return retval;
|
||||
} /* if */
|
||||
|
||||
io = __PHYSFS_createNativeIo(d, forWriting ? 'w' : 'r');
|
||||
BAIL_IF_ERRPASS(!io, 0);
|
||||
BAIL_IF_ERRPASS(!io, NULL);
|
||||
created_io = 1;
|
||||
} /* if */
|
||||
|
||||
|
@ -2662,7 +2669,6 @@ static int closeHandleInOpenList(FileHandle **list, FileHandle *handle)
|
|||
{
|
||||
FileHandle *prev = NULL;
|
||||
FileHandle *i;
|
||||
int rc = 1;
|
||||
|
||||
for (i = *list; i != NULL; i = i->next)
|
||||
{
|
||||
|
@ -2670,9 +2676,16 @@ static int closeHandleInOpenList(FileHandle **list, FileHandle *handle)
|
|||
{
|
||||
PHYSFS_Io *io = handle->io;
|
||||
PHYSFS_uint8 *tmp = handle->buffer;
|
||||
rc = PHYSFS_flush((PHYSFS_File *) handle);
|
||||
if (!rc)
|
||||
|
||||
/* send our buffer to io... */
|
||||
if (!PHYSFS_flush((PHYSFS_File *) handle))
|
||||
return -1;
|
||||
|
||||
/* ...then have io send it to the disk... */
|
||||
else if (io->flush && !io->flush(io))
|
||||
return -1;
|
||||
|
||||
/* ...then close the underlying file. */
|
||||
io->destroy(io);
|
||||
|
||||
if (tmp != NULL) /* free any associated buffer. */
|
||||
|
@ -2970,7 +2983,7 @@ int PHYSFS_flush(PHYSFS_File *handle)
|
|||
rc = io->write(io, fh->buffer + fh->bufpos, fh->buffill - fh->bufpos);
|
||||
BAIL_IF_ERRPASS(rc <= 0, 0);
|
||||
fh->bufpos = fh->buffill = 0;
|
||||
return io->flush ? io->flush(io) : 1;
|
||||
return 1;
|
||||
} /* PHYSFS_flush */
|
||||
|
||||
|
||||
|
|
|
@ -225,11 +225,11 @@ extern "C" {
|
|||
|
||||
#if defined(PHYSFS_DECL)
|
||||
/* do nothing. */
|
||||
#elif (defined _MSC_VER)
|
||||
#elif defined(_MSC_VER)
|
||||
#define PHYSFS_DECL __declspec(dllexport)
|
||||
#elif (defined __SUNPRO_C)
|
||||
#elif defined(__SUNPRO_C)
|
||||
#define PHYSFS_DECL __global
|
||||
#elif ((__GNUC__ >= 3) && (!__EMX__) && (!sun))
|
||||
#elif ((__GNUC__ >= 3) && (!defined(__EMX__)) && (!defined(sun)))
|
||||
#define PHYSFS_DECL __attribute__((visibility("default")))
|
||||
#else
|
||||
#define PHYSFS_DECL
|
||||
|
|
|
@ -203,6 +203,8 @@ static void SZIP_closeArchive(void *opaque)
|
|||
SZIPinfo *info = (SZIPinfo *) opaque;
|
||||
if (info)
|
||||
{
|
||||
if (info->io)
|
||||
info->io->destroy(info->io);
|
||||
SzArEx_Free(&info->db, &SZIP_SzAlloc);
|
||||
__PHYSFS_DirTreeDeinit(&info->tree);
|
||||
allocator.Free(info);
|
||||
|
|
|
@ -50,7 +50,7 @@ char *__PHYSFS_platformCalcPrefDir(const char *org, const char *app)
|
|||
{
|
||||
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, TRUE);
|
||||
BAIL_IF(!paths, PHYSFS_ERR_OS_ERROR, NULL);
|
||||
NSString *path = (NSString *) paths[0];
|
||||
NSString *path = (NSString *) [paths objectAtIndex:0];
|
||||
BAIL_IF(!path, PHYSFS_ERR_OS_ERROR, NULL);
|
||||
size_t len = [path lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
|
||||
const size_t applen = strlen(app);
|
||||
|
|
|
@ -566,7 +566,6 @@ char *__PHYSFS_platformCalcUserDir(void)
|
|||
else
|
||||
{
|
||||
DWORD psize = 0;
|
||||
WCHAR dummy = 0;
|
||||
LPWSTR wstr = NULL;
|
||||
BOOL rc = 0;
|
||||
|
||||
|
@ -575,7 +574,7 @@ char *__PHYSFS_platformCalcUserDir(void)
|
|||
* psize. Also note that the second parameter can't be
|
||||
* NULL or the function fails.
|
||||
*/
|
||||
rc = pGetDir(accessToken, &dummy, &psize);
|
||||
rc = pGetDir(accessToken, NULL, &psize);
|
||||
GOTO_IF(rc, PHYSFS_ERR_OS_ERROR, done); /* should have failed! */
|
||||
|
||||
/* Allocate memory for the profile directory */
|
||||
|
|
Loading…
Reference in New Issue