diff --git a/src/io.c b/src/io.c index ffe135f3..a9ad9dd5 100644 --- a/src/io.c +++ b/src/io.c @@ -537,6 +537,15 @@ int Directory_exists(const char * directory) #endif } +int Directory_create(const char * directory) +{ + #if defined(__WIN32__) || defined(WIN32) + return CreateDirectoryA(directory, NULL) ? 0 : -1; + #else + return mkdir(directory, S_IRUSR|S_IWUSR|S_IXUSR); + #endif +} + /// Check if a file or directory is hidden. int File_is_hidden(const char *fname, const char *full_name) { diff --git a/src/io.h b/src/io.h index 83c82f2e..9362ec57 100644 --- a/src/io.h +++ b/src/io.h @@ -136,6 +136,12 @@ int File_exists(const char * fname); /// Returns true if a directory passed as a parameter exists in the current directory. int Directory_exists(const char * directory); +/** + * Creates a directory + * @return 0 on success, -1 on error + */ +int Directory_create(const char * directory); + /// Check if a file or directory is hidden. Full name (with directories) is optional. int File_is_hidden(const char *fname, const char *full_name); diff --git a/src/setup.c b/src/setup.c index 4f7ad1c7..b4278a59 100644 --- a/src/setup.c +++ b/src/setup.c @@ -28,16 +28,13 @@ #include #include #include -#include -#if defined(__WIN32__) || defined(WIN32) - #include #ifdef _MSC_VER #define strdup _strdup #if _MSC_VER < 1900 #define snprintf _snprintf #endif #endif -#elif defined(__macosx__) +#if defined(__macosx__) #import #import #elif defined(__FreeBSD__) @@ -65,15 +62,6 @@ #define PATH_MAX 32768 #endif -int Create_ConfigDirectory(const char * config_dir) -{ - #if defined(__WIN32__) || defined(WIN32) - return CreateDirectoryA(config_dir, NULL) ? 0 : -1; - #else - return mkdir(config_dir,S_IRUSR|S_IWUSR|S_IXUSR); - #endif -} - // Determine which directory contains the executable. // IN: Main's argv[0], some platforms need it, some don't. // OUT: program_dir. Trailing / or \ is kept. @@ -323,7 +311,7 @@ char * Get_config_directory(const char * program_dir) if (!Directory_exists(config_dir)) { // try to create it - if (Create_ConfigDirectory(config_dir) < 0) + if (Directory_create(config_dir) < 0) { GFX2_Log(GFX2_WARNING, "Failed to create directory \"%s\"\n", config_dir); // Echec: on se rabat sur le repertoire de l'executable.