Moved __PHYSFS_platformCurrentDir() from Unix to POSIX sources.
getcwd() is part of POSIX, after all.
This commit is contained in:
parent
b7e0ec7391
commit
c94d70ec0a
|
@ -212,12 +212,6 @@ char *__PHYSFS_platformRealPath(const char *path)
|
||||||
} /* __PHYSFS_platformRealPath */
|
} /* __PHYSFS_platformRealPath */
|
||||||
|
|
||||||
|
|
||||||
char *__PHYSFS_platformCurrentDir(void)
|
|
||||||
{
|
|
||||||
return(__PHYSFS_platformRealPath(".")); /* let BPath sort it out. */
|
|
||||||
} /* __PHYSFS_platformCurrentDir */
|
|
||||||
|
|
||||||
|
|
||||||
void *__PHYSFS_platformCreateMutex(void)
|
void *__PHYSFS_platformCreateMutex(void)
|
||||||
{
|
{
|
||||||
return(new BLocker("PhysicsFS lock", true));
|
return(new BLocker("PhysicsFS lock", true));
|
||||||
|
|
|
@ -314,12 +314,6 @@ char *__PHYSFS_platformRealPath(const char *path)
|
||||||
} /* __PHYSFS_platformRealPath */
|
} /* __PHYSFS_platformRealPath */
|
||||||
|
|
||||||
|
|
||||||
char *__PHYSFS_platformCurrentDir(void)
|
|
||||||
{
|
|
||||||
return __PHYSFS_platformRealPath("."); /* let CFURL sort it out. */
|
|
||||||
} /* __PHYSFS_platformCurrentDir */
|
|
||||||
|
|
||||||
|
|
||||||
/* Platform allocator uses default CFAllocator at PHYSFS_init() time. */
|
/* Platform allocator uses default CFAllocator at PHYSFS_init() time. */
|
||||||
|
|
||||||
static CFAllocatorRef cfallocdef = NULL;
|
static CFAllocatorRef cfallocdef = NULL;
|
||||||
|
|
|
@ -221,6 +221,44 @@ void __PHYSFS_platformEnumerateFiles(const char *dirname,
|
||||||
} /* __PHYSFS_platformEnumerateFiles */
|
} /* __PHYSFS_platformEnumerateFiles */
|
||||||
|
|
||||||
|
|
||||||
|
char *__PHYSFS_platformCurrentDir(void)
|
||||||
|
{
|
||||||
|
int allocSize = 64;
|
||||||
|
char *retval = NULL;
|
||||||
|
char *ptr;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
allocSize *= 2;
|
||||||
|
ptr = (char *) allocator.Realloc(retval, allocSize);
|
||||||
|
if (ptr == NULL)
|
||||||
|
{
|
||||||
|
if (retval != NULL)
|
||||||
|
allocator.Free(retval);
|
||||||
|
BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
|
||||||
|
} /* if */
|
||||||
|
|
||||||
|
retval = ptr;
|
||||||
|
ptr = getcwd(retval, allocSize);
|
||||||
|
} while (ptr == NULL && errno == ERANGE);
|
||||||
|
|
||||||
|
if (ptr == NULL && errno)
|
||||||
|
{
|
||||||
|
/* getcwd() failed , for example current directory not existing... */
|
||||||
|
if (retval != NULL)
|
||||||
|
allocator.Free(retval);
|
||||||
|
BAIL_MACRO(ERR_NO_SUCH_FILE, NULL);
|
||||||
|
} /* if */
|
||||||
|
|
||||||
|
/* try to shrink buffer... */
|
||||||
|
ptr = (char *) allocator.Realloc(retval, strlen(retval) + 1);
|
||||||
|
if (ptr != NULL)
|
||||||
|
retval = ptr; /* oh well if it failed. */
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
} /* __PHYSFS_platformCurrentDir */
|
||||||
|
|
||||||
|
|
||||||
int __PHYSFS_platformMkDir(const char *path)
|
int __PHYSFS_platformMkDir(const char *path)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
|
@ -305,44 +305,6 @@ char *__PHYSFS_platformRealPath(const char *path)
|
||||||
} /* __PHYSFS_platformRealPath */
|
} /* __PHYSFS_platformRealPath */
|
||||||
|
|
||||||
|
|
||||||
char *__PHYSFS_platformCurrentDir(void)
|
|
||||||
{
|
|
||||||
int allocSize = 64;
|
|
||||||
char *retval = NULL;
|
|
||||||
char *ptr;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
allocSize *= 2;
|
|
||||||
ptr = (char *) allocator.Realloc(retval, allocSize);
|
|
||||||
if (ptr == NULL)
|
|
||||||
{
|
|
||||||
if (retval != NULL)
|
|
||||||
allocator.Free(retval);
|
|
||||||
BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
|
|
||||||
} /* if */
|
|
||||||
|
|
||||||
retval = ptr;
|
|
||||||
ptr = getcwd(retval, allocSize);
|
|
||||||
} while (ptr == NULL && errno == ERANGE);
|
|
||||||
|
|
||||||
if (ptr == NULL && errno)
|
|
||||||
{
|
|
||||||
/* getcwd() failed , for example current directory not existing... */
|
|
||||||
if (retval != NULL)
|
|
||||||
allocator.Free(retval);
|
|
||||||
BAIL_MACRO(ERR_NO_SUCH_FILE, NULL);
|
|
||||||
} /* if */
|
|
||||||
|
|
||||||
/* try to shrink buffer... */
|
|
||||||
ptr = (char *) allocator.Realloc(retval, strlen(retval) + 1);
|
|
||||||
if (ptr != NULL)
|
|
||||||
retval = ptr; /* oh well if it failed. */
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
} /* __PHYSFS_platformCurrentDir */
|
|
||||||
|
|
||||||
|
|
||||||
int __PHYSFS_platformSetDefaultAllocator(PHYSFS_Allocator *a)
|
int __PHYSFS_platformSetDefaultAllocator(PHYSFS_Allocator *a)
|
||||||
{
|
{
|
||||||
return 0; /* just use malloc() and friends. */
|
return 0; /* just use malloc() and friends. */
|
||||||
|
|
Loading…
Reference in New Issue