Преглед на файлове

Moved __PHYSFS_platformCurrentDir() from Unix to POSIX sources.

getcwd() is part of POSIX, after all.
Ryan C. Gordon преди 14 години
родител
ревизия
c94d70ec0a
променени са 4 файла, в които са добавени 38 реда и са изтрити 50 реда
  1. 0 6
      src/platform_beos.cpp
  2. 0 6
      src/platform_macosx.c
  3. 38 0
      src/platform_posix.c
  4. 0 38
      src/platform_unix.c

+ 0 - 6
src/platform_beos.cpp

@@ -212,12 +212,6 @@ char *__PHYSFS_platformRealPath(const char *path)
 } /* __PHYSFS_platformRealPath */
 
 
-char *__PHYSFS_platformCurrentDir(void)
-{
-    return(__PHYSFS_platformRealPath("."));  /* let BPath sort it out. */
-} /* __PHYSFS_platformCurrentDir */
-
-
 void *__PHYSFS_platformCreateMutex(void)
 {
     return(new BLocker("PhysicsFS lock", true));

+ 0 - 6
src/platform_macosx.c

@@ -314,12 +314,6 @@ char *__PHYSFS_platformRealPath(const char *path)
 } /* __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. */
 
 static CFAllocatorRef cfallocdef = NULL;

+ 38 - 0
src/platform_posix.c

@@ -221,6 +221,44 @@ void __PHYSFS_platformEnumerateFiles(const char *dirname,
 } /* __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 rc;

+ 0 - 38
src/platform_unix.c

@@ -305,44 +305,6 @@ char *__PHYSFS_platformRealPath(const char *path)
 } /* __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)
 {
     return 0;  /* just use malloc() and friends. */