libaacs | branch: master | npzacs <npz...@gmail.com> | Wed Jan 21 10:14:35 2015 +0200| [84c2982519659a6bd536ea90751b62f2c68ec3d0] | committer: npzacs
Use correct directory separator > http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=84c2982519659a6bd536ea90751b62f2c68ec3d0 --- src/file/file.h | 12 +++++++++--- src/file/keydbcfg.c | 19 ++++++++++++------- src/libaacs/aacs.c | 10 +++++----- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/file/file.h b/src/file/file.h index 834dbef..7c5f539 100644 --- a/src/file/file.h +++ b/src/file/file.h @@ -26,9 +26,15 @@ #include <stdint.h> -//#ifdef __LINUX__ -#define DIR_SEP "/" -//#endif +#ifdef _WIN32 +# define DIR_SEP "\\" +#else +# define DIR_SEP "/" +#endif + +/* + * file access + */ #define file_close(X) X->close(X) #define file_seek(X,Y,Z) X->seek(X,Y,Z) diff --git a/src/file/keydbcfg.c b/src/file/keydbcfg.c index 622f784..01ee4d8 100644 --- a/src/file/keydbcfg.c +++ b/src/file/keydbcfg.c @@ -33,6 +33,11 @@ #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 @@ -52,10 +57,10 @@ static int _mkpath(const char *path) char *dir = str_printf("%s", path); char *end = dir; - while (*end == '/') + while (*end == DIR_SEP_CHAR) end++; - while ((end = strchr(end, '/'))) { + while ((end = strchr(end, DIR_SEP_CHAR))) { *end = 0; if (stat(dir, &s) != 0 || !S_ISDIR(s.st_mode)) { @@ -68,7 +73,7 @@ static int _mkpath(const char *path) } } - *end++ = '/'; + *end++ = DIR_SEP_CHAR; } X_FREE(dir); @@ -112,7 +117,7 @@ static char *_config_file_user(const char *file_name) return NULL; } - return str_printf("%s/%s/%s", cfg_dir, CFG_DIR, file_name); + return str_printf("%s"DIR_SEP"%s"DIR_SEP"%s", cfg_dir, CFG_DIR, file_name); } static FILE *_open_cfg_file_user(const char *file_name, char **path, const char *mode) @@ -149,7 +154,7 @@ static FILE *_open_cfg_file_system(const char *file_name, char **path) while (NULL != (dir = file_get_config_system(dir))) { - char *cfg_file = str_printf("%s/%s/%s", dir, CFG_DIR, file_name); + char *cfg_file = str_printf("%s"DIR_SEP"%s"DIR_SEP"%s", dir, CFG_DIR, file_name); FILE *fp = fopen(cfg_file, "r"); if (fp) { @@ -342,7 +347,7 @@ static char *_keycache_file(const char *type, const uint8_t *disc_id) hex_array_to_hexstring(disc_id_str, disc_id, 20); - return str_printf("%s/%s/%s/%s", cache_dir, CFG_DIR, type, disc_id_str); + return str_printf("%s"DIR_SEP"%s"DIR_SEP"%s"DIR_SEP"%s", cache_dir, CFG_DIR, type, disc_id_str); } int keycache_save(const char *type, const uint8_t *disc_id, const uint8_t *key, unsigned int len) @@ -424,7 +429,7 @@ static char *_cache_file(const char *name) return NULL; } - return str_printf("%s/%s/%s", cache_dir, CFG_DIR, name); + return str_printf("%s"DIR_SEP"%s"DIR_SEP"%s", cache_dir, CFG_DIR, name); } int cache_save(const char *name, uint32_t version, const void *data, uint32_t len) diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c index b6489e2..753baf8 100644 --- a/src/libaacs/aacs.c +++ b/src/libaacs/aacs.c @@ -383,7 +383,7 @@ static AACS_FILE_H *_file_open(AACS *aacs, const char *file) return aacs->fopen(aacs->fopen_handle, file); } - f_name = str_printf("%s/%s", aacs->path, file); + f_name = str_printf("%s" DIR_SEP "%s", aacs->path, file); fp = file_open(f_name, "rb"); X_FREE(f_name); @@ -395,7 +395,7 @@ static MKB *_mkb_open(AACS *aacs) AACS_FILE_H *fp; MKB *mkb; - fp = _file_open(aacs, "AACS/MKB_RO.inf"); + fp = _file_open(aacs, "AACS" DIR_SEP "MKB_RO.inf"); if (!fp) { DEBUG(DBG_AACS | DBG_CRIT, "Error opening MKB file (AACS/MKB_RO.inf)\n"); return NULL; @@ -747,7 +747,7 @@ static int _calc_uks(AACS *aacs, config_file *cf) DEBUG(DBG_AACS, "Calculate CPS unit keys...\n"); - fp = _file_open(aacs, "AACS/Unit_Key_RO.inf"); + fp = _file_open(aacs, "AACS" DIR_SEP "Unit_Key_RO.inf"); if (!fp) { DEBUG(DBG_AACS | DBG_CRIT, "Error opening unit key file (AACS/Unit_Key_RO.inf)\n"); return AACS_ERROR_CORRUPTED_DISC; @@ -813,7 +813,7 @@ static int _calc_title_hash(AACS *aacs) int64_t f_size; int result = AACS_SUCCESS; - fp = _file_open(aacs, "AACS/Unit_Key_RO.inf"); + fp = _file_open(aacs, "AACS" DIR_SEP "Unit_Key_RO.inf"); if (!fp) { DEBUG(DBG_AACS | DBG_CRIT, "Error opening unit key file (AACS/Unit_Key_RO.inf)\n"); return AACS_ERROR_CORRUPTED_DISC; @@ -846,7 +846,7 @@ static int _get_bus_encryption_enabled(AACS *aacs) uint8_t buf[2]; int bee = 0; - fp = _file_open(aacs, "AACS/Content000.cer"); + fp = _file_open(aacs, "AACS" DIR_SEP "Content000.cer"); if (!fp) { DEBUG(DBG_AACS | DBG_CRIT, "Unable to open content certificate (AACS/Content000.cer)\n"); return 0; _______________________________________________ libaacs-devel mailing list libaacs-devel@videolan.org https://mailman.videolan.org/listinfo/libaacs-devel