libaacs | branch: master | npzacs <npz...@gmail.com> | Mon Feb 22 23:25:47 2016 
+0200| [bed21f3b0f59f87a993e5305df51af67d3b9f5cf] | committer: npzacs

Fix creating directories in Windows

(non-ASCII paths)

> http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=bed21f3b0f59f87a993e5305df51af67d3b9f5cf
---

 src/file/keydbcfg.c |   45 +++------------------------------------------
 1 file changed, 3 insertions(+), 42 deletions(-)

diff --git a/src/file/keydbcfg.c b/src/file/keydbcfg.c
index ccc3225..ae3b8e5 100644
--- a/src/file/keydbcfg.c
+++ b/src/file/keydbcfg.c
@@ -29,8 +29,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 
 
 #define CFG_DIR        "aacs"
@@ -42,43 +40,6 @@
 #define MIN_FILE_SIZE  20
 #define MAX_FILE_SIZE  65535
 
-static int _mkpath(const char *path)
-{
-    struct stat s;
-    int result = 1;
-    char *dir = str_dup(path);
-    char *end = dir;
-
-    if (!dir) {
-        return -1;
-    }
-
-#ifdef _WIN32
-    end += 2; /* skip drive */
-#endif
-    while (*end == DIR_SEP_CHAR)
-        end++;
-
-    while ((end = strchr(end, DIR_SEP_CHAR))) {
-        *end = 0;
-
-        if (stat(dir, &s) != 0 || !S_ISDIR(s.st_mode)) {
-            BD_DEBUG(DBG_FILE, "Creating directory %s\n", dir);
-
-            if (file_mkdir(dir) == -1) {
-                BD_DEBUG(DBG_FILE | DBG_CRIT, "Error creating directory %s\n", 
dir);
-                result = 0;
-                break;
-            }
-        }
-
-        *end++ = DIR_SEP_CHAR;
-    }
-
-    X_FREE(dir);
-
-    return result;
-}
 
 static char *_load_file(FILE *fp)
 {
@@ -134,7 +95,7 @@ static FILE *_open_cfg_file_user(const char *file_name, char 
**path, const char
     }
 
     if (*mode == 'w') {
-        if (!_mkpath(cfg_file)) {
+        if (file_mkdirs(cfg_file) < 0) {
             X_FREE(cfg_file);
             return NULL;
         }
@@ -371,7 +332,7 @@ int keycache_save(const char *type, const uint8_t *disc_id, 
const uint8_t *key,
     char *key_str = calloc(2, len + 1);
 
     if (file && key_str) {
-        if (_mkpath(file)) {
+        if (!file_mkdirs(file)) {
             FILE *fp = fopen(file, "w");
 
             if (fp) {
@@ -455,7 +416,7 @@ int cache_save(const char *name, uint32_t version, const 
void *data, uint32_t le
     char *file = _cache_file(name);
 
     if (file) {
-        if (_mkpath(file)) {
+        if (!file_mkdirs(file)) {
             FILE *fp = fopen(file, "w");
 
             if (fp) {

_______________________________________________
libaacs-devel mailing list
libaacs-devel@videolan.org
https://mailman.videolan.org/listinfo/libaacs-devel

Reply via email to