From 6f645f2cf9be20511038520520c2b804626e1d22 Mon Sep 17 00:00:00 2001
From: fr500 <andres.430@gmail.com>
Date: Sun, 12 Jul 2015 21:19:10 -0400
Subject: [PATCH] make sure internal dirs are created too

---
 frontend/drivers/platform_android.c | 33 +++++++++++++++++++++--------
 frontend/drivers/platform_android.h |  4 ++--
 2 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/frontend/drivers/platform_android.c b/frontend/drivers/platform_android.c
index 54326cc3e2..43793420ce 100644
--- a/frontend/drivers/platform_android.c
+++ b/frontend/drivers/platform_android.c
@@ -37,12 +37,12 @@
 struct android_app *g_android;
 static pthread_key_t thread_key;
 
-static char screenshot_dir[PATH_MAX_LENGTH];
-static char downloads_dir[PATH_MAX_LENGTH];
-static char apk_path[PATH_MAX_LENGTH];
-static char sdcard_dir[PATH_MAX_LENGTH];
-static char app_dir[PATH_MAX_LENGTH];
-static char ext_dir[PATH_MAX_LENGTH];
+char screenshot_dir[PATH_MAX_LENGTH];
+char downloads_dir[PATH_MAX_LENGTH];
+char apk_path[PATH_MAX_LENGTH];
+char sdcard_dir[PATH_MAX_LENGTH];
+char app_dir[PATH_MAX_LENGTH];
+char ext_dir[PATH_MAX_LENGTH];
 
 static INLINE void android_app_write_cmd(void *data, int8_t cmd)
 {
@@ -450,7 +450,7 @@ static bool device_is_game_console(const char *name)
    return false;
 }
 
-static bool test_permissions(const char *path)
+bool test_permissions(const char *path)
 {
    RARCH_LOG("Testing permissions for %s\n",path);
    char buf[PATH_MAX_LENGTH];
@@ -479,6 +479,7 @@ static void frontend_android_get_environment_settings(int *argc,
    jobject                       obj = NULL;
    jstring                      jstr = NULL;
    struct android_app   *android_app = (struct android_app*)data;
+   char buf[PATH_MAX_LENGTH]         = {0};
    
    if (!android_app)
       return;
@@ -823,17 +824,31 @@ static void frontend_android_get_environment_settings(int *argc,
                    path_mkdir(g_defaults.sram_dir);
 
                    fill_pathname_join(g_defaults.savestate_dir,
-                        app_dir, "saves", sizeof(g_defaults.savestate_dir));
+                        app_dir, "states", sizeof(g_defaults.savestate_dir));
                    path_mkdir(g_defaults.savestate_dir);
 
                    fill_pathname_join(g_defaults.system_dir,
-                        app_dir, "saves", sizeof(g_defaults.system_dir));
+                        app_dir, "system", sizeof(g_defaults.system_dir));
                    path_mkdir(g_defaults.system_dir);
                    break;
                 case SDCARD_ROOT_WRITABLE:
                 default:
                    break;
             }
+            
+            /* create save and system directories in the internal dir too */
+            fill_pathname_join(buf,
+                 app_dir, "saves", sizeof(buf));
+            path_mkdir(buf);
+
+            fill_pathname_join(buf,
+                 app_dir, "states", sizeof(buf));
+            path_mkdir(buf);
+
+            fill_pathname_join(buf,
+                 app_dir, "system", sizeof(buf));
+            path_mkdir(buf);
+            
             RARCH_LOG("Default savefile folder: [%s]", g_defaults.sram_dir);
             RARCH_LOG("Default savestate folder: [%s]", g_defaults.savestate_dir);
             RARCH_LOG("Default system folder: [%s]", g_defaults.system_dir);
diff --git a/frontend/drivers/platform_android.h b/frontend/drivers/platform_android.h
index 387e00005e..34fbf29864 100644
--- a/frontend/drivers/platform_android.h
+++ b/frontend/drivers/platform_android.h
@@ -29,9 +29,9 @@
 
 #include <rthreads/rthreads.h>
 
-static bool test_permissions(const char *path);
+bool test_permissions(const char *path);
 
-static char sdcard_dir[PATH_MAX_LENGTH];
+char sdcard_dir[PATH_MAX_LENGTH];
 
 struct android_app
 {