From c80635fc7154593ae40e7c2ee4c9a8319ad9d60e Mon Sep 17 00:00:00 2001 From: mkrsym1 Date: Thu, 10 Aug 2023 01:15:53 +0300 Subject: [PATCH] Adapted utils_create_dir_recursively to general project style --- game_payload/include/utils.h | 2 +- game_payload/src/main.c | 2 +- game_payload/src/utils.c | 11 ++++------- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/game_payload/include/utils.h b/game_payload/include/utils.h index 4063fc8..edd812e 100644 --- a/game_payload/include/utils.h +++ b/game_payload/include/utils.h @@ -7,7 +7,7 @@ int utils_path_exists(const wchar_t *filePath); uint32_t utils_file_crc32c(const wchar_t *filePath); -void utils_create_dir_recursively(const wchar_t *path); +void utils_create_parent_dirs(const wchar_t *path); void utils_save_to_file(const wchar_t *filePath, const void *buf, size_t length); diff --git a/game_payload/src/main.c b/game_payload/src/main.c index 0cb9e93..541c1f2 100644 --- a/game_payload/src/main.c +++ b/game_payload/src/main.c @@ -62,7 +62,7 @@ static void _run_tx(struct game_data *game, wchar_t *txFile) { void *table = core_perform_tx(game, &tableSize); // Save to file - utils_create_dir_recursively(txFile); + utils_create_parent_dirs(txFile); utils_save_to_file(txFile, table, tableSize); // Cleanup diff --git a/game_payload/src/utils.c b/game_payload/src/utils.c index ef97869..9ae826e 100644 --- a/game_payload/src/utils.c +++ b/game_payload/src/utils.c @@ -34,21 +34,18 @@ uint32_t utils_file_crc32c(const wchar_t *filePath) { } // https://stackoverflow.com/a/16719260 -void utils_create_dir_recursively(const wchar_t *path) { +void utils_create_parent_dirs(const wchar_t *path) { wchar_t dir[MAX_PATH]; - ZeroMemory(dir, MAX_PATH * sizeof(wchar_t)); + ZeroMemory(dir, sizeof(dir)); - wchar_t *end = wcschr(path, L'\\'); + const wchar_t *end = path - 1; - while(end != NULL) - { + while((end = wcschr(++end, L'\\')) != NULL) { wcsncpy(dir, path, end - path + 1); if (!utils_path_exists(dir) && !CreateDirectoryW(dir, NULL)) { msg_err_w(L"Failed to create directory: %ls", dir); } - - end = wcschr(++end, L'\\'); } }