improved workaround for valid Android asset directory path names
authorHolger Schemel <info@artsoft.org>
Fri, 6 Mar 2015 00:29:26 +0000 (01:29 +0100)
committerHolger Schemel <info@artsoft.org>
Fri, 6 Mar 2015 00:29:26 +0000 (01:29 +0100)
src/libgame/misc.c

index 39f015ff9f5a450ca7eb2564c1b09b13592b591a..c02d392067f81401ad910a666f72da1eb9e196f8 100644 (file)
@@ -648,9 +648,11 @@ char *getStringCat3(char *s1, char *s2, char *s3)
 char *getPath2(char *path1, char *path2)
 {
 #if defined(PLATFORM_ANDROID)
-  // workaround for reading from APK assets directory -- skip leading "./"
+  // workaround for reading from assets directory -- skip "." subdirs in path
   if (strEqual(path1, "."))
     return getStringCopy(path2);
+  else if (strEqual(path2, "."))
+    return getStringCopy(path1);
 #endif
 
   return getStringCat2WithSeparator(path1, path2, STRING_PATH_SEPARATOR);
@@ -659,9 +661,13 @@ char *getPath2(char *path1, char *path2)
 char *getPath3(char *path1, char *path2, char *path3)
 {
 #if defined(PLATFORM_ANDROID)
-  // workaround for reading from APK assets directory -- skip leading "./"
+  // workaround for reading from assets directory -- skip "." subdirs in path
   if (strEqual(path1, "."))
     return getStringCat2WithSeparator(path2, path3, STRING_PATH_SEPARATOR);
+  else if (strEqual(path2, "."))
+    return getStringCat2WithSeparator(path1, path3, STRING_PATH_SEPARATOR);
+  else if (strEqual(path3, "."))
+    return getStringCat2WithSeparator(path1, path2, STRING_PATH_SEPARATOR);
 #endif
 
   return getStringCat3WithSeparator(path1, path2, path3, STRING_PATH_SEPARATOR);