Fixes for BeOS and gcc2.
This commit is contained in:
parent
1da70fd66b
commit
1a6f1787fa
|
@ -42,7 +42,12 @@ ENDIF(MACOSX)
|
||||||
# Add some gcc-specific command lines.
|
# Add some gcc-specific command lines.
|
||||||
IF(CMAKE_COMPILER_IS_GNUCC)
|
IF(CMAKE_COMPILER_IS_GNUCC)
|
||||||
# Always build with debug symbols...you can strip it later.
|
# Always build with debug symbols...you can strip it later.
|
||||||
ADD_DEFINITIONS(-g -pipe -Wall -Werror -fsigned-char)
|
ADD_DEFINITIONS(-g -pipe -Werror -fsigned-char)
|
||||||
|
|
||||||
|
# Stupid BeOS generates warnings in the system headers.
|
||||||
|
IF(NOT BEOS)
|
||||||
|
ADD_DEFINITIONS(-Wall)
|
||||||
|
ENDIF(NOT BEOS)
|
||||||
|
|
||||||
CHECK_C_SOURCE_COMPILES("
|
CHECK_C_SOURCE_COMPILES("
|
||||||
#if ((defined(__GNUC__)) && (__GNUC__ >= 4))
|
#if ((defined(__GNUC__)) && (__GNUC__ >= 4))
|
||||||
|
@ -92,6 +97,7 @@ IF(BEOS)
|
||||||
# We add this explicitly, since we don't want CMake to think this
|
# We add this explicitly, since we don't want CMake to think this
|
||||||
# is a C++ project unless we're on BeOS.
|
# is a C++ project unless we're on BeOS.
|
||||||
SET(PHYSFS_BEOS_SRCS platform/beos.cpp)
|
SET(PHYSFS_BEOS_SRCS platform/beos.cpp)
|
||||||
|
SET(OPTIONAL_LIBRARY_LIBS ${OPTIONAL_LIBRARY_LIBS} be root)
|
||||||
ENDIF(BEOS)
|
ENDIF(BEOS)
|
||||||
|
|
||||||
# Almost everything is "compiled" here, but things that don't apply to the
|
# Almost everything is "compiled" here, but things that don't apply to the
|
||||||
|
|
|
@ -265,6 +265,10 @@ static PHYSFS_sint64 LZMA_read(fvoid *opaque, void *outBuffer,
|
||||||
PHYSFS_sint64 wantedSize = objSize*objCount;
|
PHYSFS_sint64 wantedSize = objSize*objCount;
|
||||||
PHYSFS_sint64 remainingSize = entry->file->Size - entry->position;
|
PHYSFS_sint64 remainingSize = entry->file->Size - entry->position;
|
||||||
|
|
||||||
|
size_t fileSize;
|
||||||
|
ISzAlloc allocImp;
|
||||||
|
ISzAlloc allocTempImp;
|
||||||
|
|
||||||
BAIL_IF_MACRO(wantedSize == 0, NULL, 0); /* quick rejection. */
|
BAIL_IF_MACRO(wantedSize == 0, NULL, 0); /* quick rejection. */
|
||||||
BAIL_IF_MACRO(remainingSize == 0, ERR_PAST_EOF, 0);
|
BAIL_IF_MACRO(remainingSize == 0, ERR_PAST_EOF, 0);
|
||||||
|
|
||||||
|
@ -276,10 +280,6 @@ static PHYSFS_sint64 LZMA_read(fvoid *opaque, void *outBuffer,
|
||||||
__PHYSFS_setError(ERR_PAST_EOF); /* this is always true here. */
|
__PHYSFS_setError(ERR_PAST_EOF); /* this is always true here. */
|
||||||
} /* if */
|
} /* if */
|
||||||
|
|
||||||
size_t fileSize;
|
|
||||||
ISzAlloc allocImp;
|
|
||||||
ISzAlloc allocTempImp;
|
|
||||||
|
|
||||||
/* Prepare callbacks for 7z */
|
/* Prepare callbacks for 7z */
|
||||||
allocImp.Alloc = SzAllocPhysicsFS;
|
allocImp.Alloc = SzAllocPhysicsFS;
|
||||||
allocImp.Free = SzFreePhysicsFS;
|
allocImp.Free = SzFreePhysicsFS;
|
||||||
|
|
6
physfs.c
6
physfs.c
|
@ -1503,10 +1503,12 @@ static void enumerateFromMountPoint(DirHandle *i, const char *arcfname,
|
||||||
const char *_fname, void *data)
|
const char *_fname, void *data)
|
||||||
{
|
{
|
||||||
size_t len = strlen(arcfname);
|
size_t len = strlen(arcfname);
|
||||||
|
char *ptr = NULL;
|
||||||
|
char *end = NULL;
|
||||||
char *mountPoint = (char *) alloca(strlen(i->mountPoint) + 1);
|
char *mountPoint = (char *) alloca(strlen(i->mountPoint) + 1);
|
||||||
strcpy(mountPoint, i->mountPoint);
|
strcpy(mountPoint, i->mountPoint);
|
||||||
char *ptr = mountPoint + ((len) ? len + 1 : 0);
|
ptr = mountPoint + ((len) ? len + 1 : 0);
|
||||||
char *end = strchr(ptr, '/');
|
end = strchr(ptr, '/');
|
||||||
assert(end); /* should always find a terminating '/'. */
|
assert(end); /* should always find a terminating '/'. */
|
||||||
*end = '\0';
|
*end = '\0';
|
||||||
callback(data, _fname, ptr);
|
callback(data, _fname, ptr);
|
||||||
|
|
Loading…
Reference in New Issue