libaacs | branch: master | npzacs <npz...@gmail.com> | Wed May 6 14:06:10 2015 +0300| [cf9c985b020445f77c717ccd590f14507266a225] | committer: npzacs
Move system-dependent code to own file > http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=cf9c985b020445f77c717ccd590f14507266a225 --- src/file/dirs.h | 4 ---- src/file/dirs_win32.c | 8 -------- src/file/file.h | 5 +++++ src/file/file_posix.c | 8 ++++++++ src/file/file_win32.c | 10 ++++++++++ src/file/keydbcfg.c | 12 ++---------- 6 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/file/dirs.h b/src/file/dirs.h index 0a5894e..c178f96 100644 --- a/src/file/dirs.h +++ b/src/file/dirs.h @@ -22,10 +22,6 @@ #include "util/attributes.h" -#ifdef _WIN32 -BD_PRIVATE int win32_mkdir(const char *dir); -#endif - /* * Config, cache and data dirs */ diff --git a/src/file/dirs_win32.c b/src/file/dirs_win32.c index a10ba62..58ea61a 100644 --- a/src/file/dirs_win32.c +++ b/src/file/dirs_win32.c @@ -34,14 +34,6 @@ #include <direct.h> -int win32_mkdir(const char *dir) -{ - wchar_t wdir[MAX_PATH]; - - MultiByteToWideChar(CP_UTF8, 0, dir, -1, wdir, MAX_PATH); - return _wmkdir(wdir); -} - char *file_get_config_home(void) { return file_get_data_home(); diff --git a/src/file/file.h b/src/file/file.h index b3b699b..5d1108f 100644 --- a/src/file/file.h +++ b/src/file/file.h @@ -46,5 +46,10 @@ BD_PRIVATE extern AACS_FILE_H *(*file_open)(const char* filename, const char *mode); +/* + * local filesystem + */ + +BD_PRIVATE int file_mkdir(const char *dir); #endif /* FILE_H_ */ diff --git a/src/file/file_posix.c b/src/file/file_posix.c index 0d48f51..89bf364 100644 --- a/src/file/file_posix.c +++ b/src/file/file_posix.c @@ -29,6 +29,9 @@ #include <inttypes.h> #include <stdlib.h> +#include <sys/stat.h> +#include <sys/types.h> + static void file_close_linux(AACS_FILE_H *file) { if (file) { @@ -85,3 +88,8 @@ static AACS_FILE_H *file_open_linux(const char* filename, const char *mode) } AACS_FILE_H* (*file_open)(const char* filename, const char *mode) = file_open_linux; + +int file_mkdir(const char *dir) +{ + return mkdir(dir, S_IRWXU); +} diff --git a/src/file/file_win32.c b/src/file/file_win32.c index c8d60ab..c9d66ff 100644 --- a/src/file/file_win32.c +++ b/src/file/file_win32.c @@ -112,3 +112,13 @@ static AACS_FILE_H *_file_open(const char* filename, const char *mode) } AACS_FILE_H* (*file_open)(const char* filename, const char *mode) = _file_open; + +int file_mkdir(const char *dir) +{ + wchar_t wdir[MAX_PATH]; + + MultiByteToWideChar(CP_UTF8, 0, dir, -1, wdir, MAX_PATH); + if (!CreateDirectoryW(wdir, NULL)) + return -1; + return 0; +} diff --git a/src/file/keydbcfg.c b/src/file/keydbcfg.c index 0373bbb..d85b88d 100644 --- a/src/file/keydbcfg.c +++ b/src/file/keydbcfg.c @@ -20,6 +20,7 @@ #include "keydbcfg.h" #include "dirs.h" +#include "file.h" #include "util/strutl.h" #include "util/logging.h" @@ -31,15 +32,6 @@ #include <sys/types.h> #include <sys/stat.h> -#ifdef _WIN32 -# define mkdir(p,m) win32_mkdir(p) -# define DIR_SEP_CHAR '\\' -# define DIR_SEP "\\" -#else -# define DIR_SEP_CHAR '/' -# define DIR_SEP "/" -#endif - #define CFG_DIR "aacs" @@ -73,7 +65,7 @@ static int _mkpath(const char *path) if (stat(dir, &s) != 0 || !S_ISDIR(s.st_mode)) { BD_DEBUG(DBG_FILE, "Creating directory %s\n", dir); - if (mkdir(dir, S_IRWXU|S_IRWXG|S_IRWXO) == -1) { + if (file_mkdir(dir) == -1) { BD_DEBUG(DBG_FILE | DBG_CRIT, "Error creating directory %s\n", dir); result = 0; break; _______________________________________________ libaacs-devel mailing list libaacs-devel@videolan.org https://mailman.videolan.org/listinfo/libaacs-devel