From a6e012e747915a8ecb6f8da03554515ccbf7c6c1 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 22 Nov 2013 01:56:54 +0100 Subject: [PATCH] (iOS) Refactor out path_make_and_check_directory --- apple/common/RetroArch_Apple.h | 1 - apple/common/utility.m | 9 --------- apple/iOS/platform.m | 20 +++++++++++++------- file_path.c | 4 +++- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/apple/common/RetroArch_Apple.h b/apple/common/RetroArch_Apple.h index b76d1a0cbd..ef74ae22ea 100644 --- a/apple/common/RetroArch_Apple.h +++ b/apple/common/RetroArch_Apple.h @@ -53,7 +53,6 @@ extern void apple_run_core(RAModuleInfo* core, const char* file); // utility.m extern void apple_display_alert(NSString* message, NSString* title); -extern bool path_make_and_check_directory(const char* path, mode_t mode, int amode); extern NSString* objc_get_value_from_config(config_file_t* config, NSString* name, NSString* defaultValue); // frontend/platform/platform_apple.c diff --git a/apple/common/utility.m b/apple/common/utility.m index fe084167af..750713b40f 100644 --- a/apple/common/utility.m +++ b/apple/common/utility.m @@ -54,15 +54,6 @@ NSString* objc_get_value_from_config(config_file_t* config, NSString* name, NSSt return result; } -// Ensures a directory exists and has correct permissions -bool path_make_and_check_directory(const char* path, mode_t mode, int amode) -{ - if (!path_is_directory(path) && mkdir(path, mode) != 0) - return false; - - return access(path, amode) == 0; -} - #ifdef IOS char* ios_get_rarch_system_directory() diff --git a/apple/iOS/platform.m b/apple/iOS/platform.m index e0088772dd..ed19a3a299 100644 --- a/apple/iOS/platform.m +++ b/apple/iOS/platform.m @@ -159,14 +159,20 @@ static void handle_touch_event(NSArray* touches) self.configDirectory = self.systemDirectory; self.globalConfigFile = [NSString stringWithFormat:@"%@/retroarch.cfg", self.configDirectory]; self.coreDirectory = [NSBundle.mainBundle.bundlePath stringByAppendingPathComponent:@"modules"]; - - if (!path_make_and_check_directory(self.documentsDirectory.UTF8String, 0755, R_OK | W_OK | X_OK)) + + const char *path = self.documentsDirectory.UTF8String; + path_mkdir(path); + if (access(path, 0755) != 0) apple_display_alert([NSString stringWithFormat:@"Failed to create or access base directory: %@", self.documentsDirectory], 0); - else if (!path_make_and_check_directory(self.systemDirectory.UTF8String, 0755, R_OK | W_OK | X_OK)) - apple_display_alert([NSString stringWithFormat:@"Failed to create or access system directory: %@", self.systemDirectory], 0); - else - [self beginBrowsingForFile]; - + else + { + path = self.systemDirectory.UTF8String; + path_mkdir(path); + if (access(path, 0755) != 0) + apple_display_alert([NSString stringWithFormat:@"Failed to create or access system directory: %@", self.systemDirectory], 0); + else + [self beginBrowsingForFile]; + } // Warn if there are no cores present if (apple_get_modules().count == 0) diff --git a/file_path.c b/file_path.c index 7b2c0b6bcf..781e8eac4d 100644 --- a/file_path.c +++ b/file_path.c @@ -667,8 +667,10 @@ void path_resolve_realpath(char *buf, size_t size) static bool path_mkdir_norecurse(const char *dir) { -#ifdef _WIN32 +#if defined(_WIN32) int ret = _mkdir(dir); +#elif defined(IOS) + int ret = mkdir(dir, 0755); #else int ret = mkdir(dir, 0750); #endif