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

Reply via email to