From ee63c2125bf7d1adccc42b02e17be3e16757f66b Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Thu, 11 Jul 2024 22:55:51 -0500 Subject: [PATCH] Bugfix: Controller is adding an extra '/' to the file name. This does not cause a problem unless the local filesystem is very picky about extra slashes. The error printing revealed the problem as descibed in the examples below. Example Incorrect Error Message: ERROR: Unable to open file './/entries/utility.entry', could not find. Example Correct Error Message: ERROR: Unable to open file './entries/utility.entry', could not find. --- level_3/controller/c/controller/private-controller.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/level_3/controller/c/controller/private-controller.c b/level_3/controller/c/controller/private-controller.c index c9e2f16..3e6a74e 100644 --- a/level_3/controller/c/controller/private-controller.c +++ b/level_3/controller/c/controller/private-controller.c @@ -68,7 +68,11 @@ extern "C" { f_string_static_t path = f_string_static_t_initialize; if (global.setting->path_setting.used) { - path.used = global.setting->path_setting.used + F_path_separator_s_length + cache->action.name_file.used; + path.used = global.setting->path_setting.used + cache->action.name_file.used; + + if (global.setting->path_setting.string[global.setting->path_setting.used - 1] != f_path_separator_s.string[0]) { + path.used += f_path_separator_s.used; + } } else { path.used = cache->action.name_file.used; @@ -79,9 +83,15 @@ extern "C" { if (global.setting->path_setting.used) { memcpy(path_string, global.setting->path_setting.string, sizeof(f_char_t) * global.setting->path_setting.used); - memcpy(path_string + global.setting->path_setting.used + F_path_separator_s_length, cache->action.name_file.string, sizeof(f_char_t) * cache->action.name_file.used); - path_string[global.setting->path_setting.used] = f_path_separator_s.string[0]; + if (global.setting->path_setting.string[global.setting->path_setting.used - 1] == f_path_separator_s.string[0]) { + memcpy(path_string + global.setting->path_setting.used, cache->action.name_file.string, sizeof(f_char_t) * cache->action.name_file.used); + } + else { + memcpy(path_string + global.setting->path_setting.used + F_path_separator_s_length, cache->action.name_file.string, sizeof(f_char_t) * cache->action.name_file.used); + + path_string[global.setting->path_setting.used] = f_path_separator_s.string[0]; + } } else { memcpy(path_string, cache->action.name_file.string, sizeof(f_char_t) * cache->action.name_file.used); -- 1.8.3.1