From: Kevin Day Date: Fri, 12 Jul 2024 03:52:34 +0000 (-0500) Subject: Bugfix: Controller is adding an extra '/' to the file name. X-Git-Url: https://git.kevux.org/?a=commitdiff_plain;h=c385673ab1966679372a39163f225f1e4f96f376;p=controller 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. --- diff --git a/sources/c/main/file.c b/sources/c/main/file.c index a90981c..f7ed3a6 100644 --- a/sources/c/main/file.c +++ b/sources/c/main/file.c @@ -43,7 +43,11 @@ extern "C" { f_string_static_t path = f_string_static_t_initialize; if (main->process.path_setting.used) { - path.used = main->process.path_setting.used + F_path_separator_s_length + main->thread.cache.action.name_file.used; + path.used = main->process.path_setting.used + main->thread.cache.action.name_file.used; + + if (main->process.path_setting.string[main->process.path_setting.used - 1] != f_path_separator_s.string[0]) { + path.used += f_path_separator_s.used; + } } else { path.used = main->thread.cache.action.name_file.used; @@ -54,9 +58,15 @@ extern "C" { if (main->process.path_setting.used) { memcpy(path_string, main->process.path_setting.string, sizeof(f_char_t) * main->process.path_setting.used); - memcpy(path_string + main->process.path_setting.used + F_path_separator_s_length, main->thread.cache.action.name_file.string, sizeof(f_char_t) * main->thread.cache.action.name_file.used); - path_string[main->process.path_setting.used] = f_path_separator_s.string[0]; + if (main->process.path_setting.string[main->process.path_setting.used - 1] == f_path_separator_s.string[0]) { + memcpy(path_string + main->process.path_setting.used, main->thread.cache.action.name_file.string, sizeof(f_char_t) * main->thread.cache.action.name_file.used); + } + else { + memcpy(path_string + main->process.path_setting.used + F_path_separator_s_length, main->thread.cache.action.name_file.string, sizeof(f_char_t) * main->thread.cache.action.name_file.used); + + path_string[main->process.path_setting.used] = f_path_separator_s.string[0]; + } } else { memcpy(path_string, main->thread.cache.action.name_file.string, sizeof(f_char_t) * main->thread.cache.action.name_file.used); @@ -64,7 +74,6 @@ extern "C" { path_string[path.used] = 0; - status = f_file_stream_open(path, f_string_empty_s, &file); if (F_status_is_error(status)) {