Directory_create()

remove #include <windows.h> from setup.c
This commit is contained in:
Thomas Bernard 2020-04-12 00:45:55 +02:00
parent f2e1ea8921
commit 857ae29be8
No known key found for this signature in database
GPG Key ID: 0FF11B67A5C0863C
3 changed files with 17 additions and 14 deletions

View File

@ -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)
{

View File

@ -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);

View File

@ -28,16 +28,13 @@
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#if defined(__WIN32__) || defined(WIN32)
#include <windows.h>
#ifdef _MSC_VER
#define strdup _strdup
#if _MSC_VER < 1900
#define snprintf _snprintf
#endif
#endif
#elif defined(__macosx__)
#if defined(__macosx__)
#import <CoreFoundation/CoreFoundation.h>
#import <sys/param.h>
#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.