From: Kevin Day Date: Thu, 20 Nov 2025 04:43:34 +0000 (-0600) Subject: Progress: Continue implementing controlfile and initfile support. X-Git-Tag: 0.7.3~4 X-Git-Url: https://www.git.kevux.org/?a=commitdiff_plain;h=c9a2dfbf697b576426884ef3eccd890c80e82be2;p=controller Progress: Continue implementing controlfile and initfile support. Change the code to pre-process and load all of the Rules during the Entry/Exit load. The existing dynamic Rule file loading still happens, but only when not using a `controlfile`/`initfile`. This, however, is unlikely to be used and that code might be gutted in the future. Add new `F_load_not` status error for when the loading fails. Update the error and debug printing functions to not use `debug` instead of `line_file`. This brings the functions in line with the FLL debug printing functionality. This still does not load the `controlfile`/`initfile` just yet. --- diff --git a/data/build/settings.init b/data/build/settings.init index 78f273b..60848be 100644 --- a/data/build/settings.init +++ b/data/build/settings.init @@ -89,7 +89,7 @@ environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY L #defines -D_di_libcap_ defines -D_libcap_legacy_only_ -defines -D_support_controller_controlfile_ -D_support_controller_initfile_ +defines -D_support_controller_controlfile_ defines-android -D_di_f_thread_attribute_affinity_get_ -D_di_f_thread_attribute_affinity_set_ -D_di_f_thread_attribute_concurrency_get_ -D_di_f_thread_attribute_concurrency_set_ -D_di_f_thread_attribute_default_get_ -D_di_f_thread_attribute_default_set_ -D_di_f_thread_cancel_ -D_di_f_thread_cancel_state_set_ -D_di_f_thread_cancel_test_ -D_di_f_thread_join_try_ -D_di_f_thread_join_timed_ -D_pthread_mutex_prioceiling_unsupported_ -D_di_f_thread_semaphore_file_close_ -D_di_f_thread_semaphore_file_open_ -D_di_f_thread_semaphore_file_delete_ -D_di_f_thread_cancel_type_set_ defines-debug -D_en_f_status_debug_ defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_ diff --git a/data/build/stand_alone/config.h b/data/build/stand_alone/config.h index b4fdb45..da18149 100644 --- a/data/build/stand_alone/config.h +++ b/data/build/stand_alone/config.h @@ -1412,7 +1412,7 @@ #define _di_f_string_format_s_double_s_ #define _di_f_string_format_s_s_ #define _di_f_string_format_s_single_s_ -#define _di_f_string_format_sentence_end_basic_s_ +//#define _di_f_string_format_sentence_end_basic_s_ #define _di_f_string_format_sentence_end_double_basic_s_ #define _di_f_string_format_sentence_end_double_quote_s_ #define _di_f_string_format_sentence_end_double_quote_basic_s_ @@ -2145,7 +2145,7 @@ //#define _di_fll_error_file_type_socket_s_ #define _di_fll_error_parameter_integer_print_ //#define _di_fll_error_print_ -#define _di_fll_error_print_debug_ +//#define _di_fll_error_print_debug_ //#define _di_fll_error_s_a_ //#define _di_fll_error_s_e_ #define _di_fll_execute_arguments_add_ diff --git a/data/build/stand_alone/settings.controller b/data/build/stand_alone/settings.controller index 328959e..ff6a984 100644 --- a/data/build/stand_alone/settings.controller +++ b/data/build/stand_alone/settings.controller @@ -155,6 +155,7 @@ environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY L defines -include sources/c/config.h -I sources/c/ #defines -D_di_libcap_ defines -D_libcap_legacy_only_ +defines -D_support_controller_controlfile_ defines-android -D_di_f_thread_attribute_affinity_get_ -D_di_f_thread_attribute_affinity_set_ -D_di_f_thread_attribute_concurrency_get_ -D_di_f_thread_attribute_concurrency_set_ -D_di_f_thread_attribute_default_get_ -D_di_f_thread_attribute_default_set_ -D_di_f_thread_cancel_ -D_di_f_thread_cancel_state_set_ -D_di_f_thread_cancel_test_ -D_di_f_thread_join_try_ -D_di_f_thread_join_timed_ -D_pthread_mutex_prioceiling_unsupported_ -D_di_f_thread_semaphore_file_close_ -D_di_f_thread_semaphore_file_open_ -D_di_f_thread_semaphore_file_delete_ -D_di_f_thread_cancel_type_set_ defines-debug -D_en_f_status_debug_ defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_ diff --git a/data/build/stand_alone/settings.init b/data/build/stand_alone/settings.init index 4cf8883..49ec574 100644 --- a/data/build/stand_alone/settings.init +++ b/data/build/stand_alone/settings.init @@ -155,6 +155,7 @@ environment LANG LC_ALL LC_COLLATE LC_CTYPE LC_FASTMSG LC_MESSAGES LC_MONETARY L defines -include sources/c/config.h -I sources/c/ #defines -D_di_libcap_ defines -D_libcap_legacy_only_ +defines -D_support_controller_controlfile_ defines-android -D_di_f_thread_attribute_affinity_get_ -D_di_f_thread_attribute_affinity_set_ -D_di_f_thread_attribute_concurrency_get_ -D_di_f_thread_attribute_concurrency_set_ -D_di_f_thread_attribute_default_get_ -D_di_f_thread_attribute_default_set_ -D_di_f_thread_cancel_ -D_di_f_thread_cancel_state_set_ -D_di_f_thread_cancel_test_ -D_di_f_thread_join_try_ -D_di_f_thread_join_timed_ -D_pthread_mutex_prioceiling_unsupported_ -D_di_f_thread_semaphore_file_close_ -D_di_f_thread_semaphore_file_open_ -D_di_f_thread_semaphore_file_delete_ -D_di_f_thread_cancel_type_set_ defines-debug -D_en_f_status_debug_ defines-thread -D_pthread_attr_unsupported_ -D_pthread_sigqueue_unsupported_ diff --git a/sources/c/program/controller/main/common.c b/sources/c/program/controller/main/common.c index a4a4f1d..673682e 100644 --- a/sources/c/program/controller/main/common.c +++ b/sources/c/program/controller/main/common.c @@ -45,6 +45,9 @@ extern "C" { case F_valid_not: return F_status_set_error(F_valid_not); + + case F_load_not: + return F_status_set_error(F_load_not); } return F_status_set_error(F_failure); diff --git a/sources/c/program/controller/main/common/string.c b/sources/c/program/controller/main/common/string.c index fb1d83f..932964d 100644 --- a/sources/c/program/controller/main/common/string.c +++ b/sources/c/program/controller/main/common/string.c @@ -8,11 +8,11 @@ extern "C" { const f_string_static_t controller_program_version_s = macro_f_string_static_t_initialize_1(CONTROLLER_program_version_s, 0, CONTROLLER_program_version_s_length); #endif // _di_controller_program_version_s_ -#if !defined(_di_controller_controlfile_s_) && defined(_support_controller_controlfile_) +#ifndef _di_controller_controlfile_s_ const f_string_static_t controller_prefix_entry_s = macro_f_string_static_t_initialize_1(CONTROLLER_prefix_entry_s, 0, CONTROLLER_prefix_entry_s_length); const f_string_static_t controller_prefix_exit_s = macro_f_string_static_t_initialize_1(CONTROLLER_prefix_exit_s, 0, CONTROLLER_prefix_exit_s_length); const f_string_static_t controller_prefix_rule_s = macro_f_string_static_t_initialize_1(CONTROLLER_prefix_rule_s, 0, CONTROLLER_prefix_rule_s_length); -#endif // !defined(_di_controller_controlfile_s_) && defined(_support_controller_controlfile_) +#endif // _di_controller_controlfile_s_ #ifndef _di_controller_parameter_s_ const f_string_static_t controller_short_cgroup_s = macro_f_string_static_t_initialize_1(CONTROLLER_short_cgroup_s, 0, CONTROLLER_short_cgroup_s_length); diff --git a/sources/c/program/controller/main/common/string.h b/sources/c/program/controller/main/common/string.h index 6acb8a3..9ab5a67 100644 --- a/sources/c/program/controller/main/common/string.h +++ b/sources/c/program/controller/main/common/string.h @@ -60,7 +60,7 @@ extern "C" { * * The controller_controlfile_s implementation is defined within the individual programs. */ -#if !defined(_di_controller_controlfile_s_) && defined(_support_controller_controlfile_) +#ifndef _di_controller_controlfile_s_ #define CONTROLLER_prefix_entry_s "entry_" #define CONTROLLER_prefix_exit_s "exit_" #define CONTROLLER_prefix_rule_s "rule_" @@ -74,7 +74,7 @@ extern "C" { extern const f_string_static_t controller_prefix_entry_s; extern const f_string_static_t controller_prefix_exit_s; extern const f_string_static_t controller_prefix_rule_s; -#endif // !defined(_di_controller_controlfile_s_) && defined(_support_controller_controlfile_) +#endif // _di_controller_controlfile_s_ /** * The main program parameters. diff --git a/sources/c/program/controller/main/entry.c b/sources/c/program/controller/main/entry.c index d8118d7..c0f92d2 100644 --- a/sources/c/program/controller/main/entry.c +++ b/sources/c/program/controller/main/entry.c @@ -19,10 +19,11 @@ extern "C" { state.status = f_memory_array_increase_by(main->thread.cache.object_items.used, sizeof(f_range_t), (void **) &main->thread.cache.object_items.array, &main->thread.cache.object_items.used, &main->thread.cache.object_items.size); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); } else { f_range_t *range = 0; + f_range_t offset = f_range_t_initialize; f_number_unsigned_t at = 0; f_number_unsigned_t i = 0; f_number_unsigned_t j = 0; @@ -30,12 +31,8 @@ extern "C" { // 0x1 = main found, 0x2 = found existing. uint8_t code = 0; - #ifdef _support_controller_controlfile_ - const f_string_static_t prefix = is_entry ? controller_prefix_entry_s : controller_prefix_exit_s; - const f_range_t prefix_range = macro_f_range_t_initialize_2(prefix.used); - - f_range_t offset = f_range_t_initialize; - #endif // _support_controller_controlfile_ + const f_string_static_t prefix = is_entry ? controller_prefix_entry_s : controller_prefix_exit_s; + const f_range_t prefix_range = macro_f_range_t_initialize_2(prefix.used); for (i = 0; i < main->thread.cache.object_items.used && controller_thread_enable_is_normal(&main->thread, is_entry); ++i) { @@ -62,7 +59,7 @@ extern "C" { state.status = f_memory_array_increase(controller_allocation_small_d, sizeof(controller_entry_item_t), (void **) &entry->items.array, &entry->items.used, &entry->items.size); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -85,7 +82,7 @@ extern "C" { state.status = f_string_dynamic_partial_append(main->thread.cache.buffer_file, offset, &main->thread.cache.action.name_item); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -93,7 +90,7 @@ extern "C" { f_fss_count_lines(main->thread.cache.buffer_file, main->thread.cache.object_items.array[i].start, &main->thread.cache.action.line_item, &state); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -132,7 +129,7 @@ extern "C" { state.status = f_memory_array_increase(at, sizeof(controller_entry_item_t), (void **) &entry->items.array, &entry->items.used, &entry->items.size); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -144,7 +141,7 @@ extern "C" { state.status = f_memory_array_resize(2, sizeof(controller_entry_item_t), (void **) &entry->items.array, &entry->items.used, &entry->items.size); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -301,6 +298,10 @@ extern "C" { status = controller_entry_extract(main, is_entry); } + if (F_status_is_error_not(status)) { + status = controller_entry_load_rules(main, is_entry); + } + f_thread_mutex_unlock(&main->thread.lock.entry.mutex); return status; @@ -351,7 +352,7 @@ extern "C" { f_fss_apply_delimit(main->thread.cache.delimits, &main->thread.cache.buffer_file, &state); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); } } } @@ -375,6 +376,168 @@ extern "C" { } #endif // _di_controller_entry_load_ +#ifndef _di_controller_entry_load_rules_ + f_status_t controller_entry_load_rules(controller_t * const main, const uint8_t is_entry) { + + if (!main) return F_status_set_error(F_parameter); + + f_status_t status = F_okay; + + controller_entry_t * const entry = is_entry ? &main->process.entry : &main->process.exit; + + controller_entry_action_t *entry_action = 0; + controller_entry_actions_t *entry_actions = 0; + + f_number_unsigned_t i = 0; + f_number_unsigned_t j = 0; + f_number_unsigned_t total = 0; + f_number_unsigned_t used = 0; + + // Pre-process items to allow pre-allocating all of the necessary memory for each rule in as few allocations as possible. + for (i = 0; i < entry->items.used; ++i) { + + entry_actions = &entry->items.array[i].actions; + + for (j = 0; j < entry_actions->used; ++j) { + + entry_action = &entry_actions->array[j]; + + if (entry_action->type != controller_entry_action_type_consider_e && !controller_entry_action_type_is_rule(entry_action->type)) continue; + + ++total; + } // for + } // for + + if (!controller_thread_enable_is_normal(&main->thread, is_entry)) return F_status_set_error(F_interrupt); + + controller_rule_t *rules[total]; + + memset(rules, 0, sizeof(controller_rule_t *) * total); + + for (i = 0; i < entry->items.used && F_status_is_error_not(status); ++i) { + + entry_actions = &entry->items.array[i].actions; + + for (j = 0; j < entry_actions->used; ++j) { + + entry_action = &entry_actions->array[j]; + + if (entry_action->type != controller_entry_action_type_consider_e && !controller_entry_action_type_is_rule(entry_action->type)) continue; + + main->thread.cache.action.line_action = 0; + main->thread.cache.action.line_item = entry->items.array[i].line; + main->thread.cache.action.name_action.used = 0; + main->thread.cache.action.name_item.used = 0; + + status = f_string_dynamic_append_nulless(entry->items.array[i].name, &main->thread.cache.action.name_item); + + if (F_status_is_error(status)) { + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); + + break; + } + + const f_number_unsigned_t id_rule_length = entry_action->parameters.array[0].used + entry_action->parameters.array[1].used + 1; + f_char_t id_rule_name[id_rule_length + 1]; + const f_string_static_t alias_rule = macro_f_string_static_t_initialize_1(id_rule_name, 0, id_rule_length); + + memcpy(id_rule_name, entry_action->parameters.array[0].string, sizeof(f_char_t) * entry_action->parameters.array[0].used); + memcpy(id_rule_name + entry_action->parameters.array[0].used + 1, entry_action->parameters.array[1].string, sizeof(f_char_t) * entry_action->parameters.array[1].used); + + id_rule_name[entry_action->parameters.array[0].used] = f_path_separator_s.string[0]; + id_rule_name[id_rule_length] = 0; + + status = controller_rule_find(main, is_entry, alias_rule, main->process.rules, 0); + if (F_status_is_error(status)) break; + + // Rule is already loaded. + if (status == F_true) continue; + + if (!controller_thread_enable_is_normal(&main->thread, is_entry)) { + status = F_status_set_error(F_interrupt); + + break; + } + + rules[used] = 0; + + status = f_memory_new(1, sizeof(controller_rule_t), (void **) &rules[used]); + + if (F_status_is_error(status)) { + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); + + // Load as much as possible, even if one fails. + entry_action->status = controller_status_simplify_error(F_load_not); + + continue; + } + + ++used; + + status = controller_rule_read(main, &main->thread.cache, is_entry, alias_rule, entry, rules[used - 1]); + if (F_status_set_fine(status) == F_interrupt) break; + + if (F_status_is_error(status)) { + if (main->program.error.verbosity > f_console_verbosity_quiet_e) { + controller_lock_print(main->program.error.to, &main->thread); + + controller_print_error_entry_cache(&main->program.error, &main->thread.cache.action, is_entry, F_status_debug_source_d); + + controller_unlock_print_flush(main->program.error.to, &main->thread); + } + + // Designate the Action as failed. + entry_action->status = controller_status_simplify_error(F_load_not); + + if (used) { + f_memory_delete(1, sizeof(controller_rule_t), (void **) &rules[--used]); + + rules[used] = 0; + } + + // Load as much as possible, even if one fails. + continue; + } + } // for + } // for + + // Save all of the allocated rules at the end to reduce the amount of write locks needed for adding rules. + if (used && F_status_is_error_not(status)) { + status = controller_lock_write_standard(is_entry, controller_lock_check_flag_yes_d, &main->thread, &main->thread.lock.rule); + + if (status != F_okay) { + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); + } + else { + status = f_memory_array_increase_by(used, sizeof(controller_rule_t), (void **) &main->process.rules.array, &main->process.rules.used, &main->process.rules.size); + + if (F_status_is_error(status)) { + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); + } + else { + for (i = 0; i < used; ++i) { + main->process.rules.array[main->process.rules.used++] = rules[i]; + } // for + + used = 0; + } + + f_thread_unlock(&main->thread.lock.rule); + } + } + + if (F_status_is_error(status)) { + for (i = 0; i < used; ++i) { + if (rules[i]) f_memory_delete(1, sizeof(controller_rule_t), (void **) &rules[i]); + } // for + + return status; + } + + return F_okay; + } +#endif // _di_controller_entry_load_rules_ + #ifndef _di_controller_entry_setup_ f_status_t controller_entry_setup(controller_t * const main, controller_entry_t * const entry) { diff --git a/sources/c/program/controller/main/entry.h b/sources/c/program/controller/main/entry.h index 0619aa2..acf059b 100644 --- a/sources/c/program/controller/main/entry.h +++ b/sources/c/program/controller/main/entry.h @@ -83,7 +83,6 @@ extern "C" { * * F_parameter (with error bit) if a parameter is invalid. * - * Errors (with error bit) from: controller_entry_action_read(). * Errors (with error bit) from: controller_file_load(). * Errors (with error bit) from: controller_status_simplify_error(). * @@ -101,6 +100,38 @@ extern "C" { #endif // _di_controller_entry_load_ /** + * Load the rules from the entry or exit file. + * + * @param main + * The main program data. + * + * This does not alter main.setting.state.status. + * + * Must not be NULL. + * @param is_entry + * If TRUE, then this operates as an Entry. + * If FALSE, then this operates as an Exit. + * + * @return + * F_okay on success. + * F_file_found_not on file not found for an Exit file (is_entry is FALSE). + * + * F_parameter (with error bit) if a parameter is invalid.. + * + * Errors (with error bit) from: f_fss_apply_delimit(). + * Errors (with error bit) from: fll_fss_basic_list_read(). + * + * @see controller_file_load() + * @see controller_status_simplify_error() + * + * @see f_fss_apply_delimit() + * @see fll_fss_basic_list_read() + */ +#ifndef _di_controller_entry_load_rules_ + extern f_status_t controller_entry_load_rules(controller_t * const main, const uint8_t is_entry); +#endif // _di_controller_entry_load_rules_ + +/** * Read the entry or exit, extracting all lists, with locking. * * This utilizes a mutex lock to prevent double execution. diff --git a/sources/c/program/controller/main/entry/action.c b/sources/c/program/controller/main/entry/action.c index 8cfe761..489b516 100644 --- a/sources/c/program/controller/main/entry/action.c +++ b/sources/c/program/controller/main/entry/action.c @@ -34,7 +34,7 @@ extern "C" { } if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true); return state.status; } @@ -42,7 +42,7 @@ extern "C" { f_fss_apply_delimit(main->thread.cache.delimits, &main->thread.cache.buffer_file, &state); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true); return state.status; } @@ -52,7 +52,7 @@ extern "C" { state.status = f_memory_array_increase_by(main->thread.cache.object_actions.used, sizeof(controller_entry_action_t), (void **) &actions->array, &actions->used, &actions->size); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true); return state.status; } @@ -83,7 +83,7 @@ extern "C" { f_fss_count_lines(main->thread.cache.buffer_file, main->thread.cache.object_actions.array[i].start, &main->thread.cache.action.line_action, &state); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -93,7 +93,7 @@ extern "C" { state.status = f_rip_dynamic_partial_nulless(main->thread.cache.buffer_file, main->thread.cache.object_actions.array[i], &main->thread.cache.action.name_action); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -196,7 +196,7 @@ extern "C" { state.status = f_memory_array_increase_by(allocate, sizeof(f_string_dynamic_t), (void **) &action->parameters.array, &action->parameters.used, &action->parameters.size); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true); action->status = state.status; @@ -216,7 +216,7 @@ extern "C" { state.status = f_memory_array_increase_by((main->thread.cache.content_actions.array[i].array[j].stop - main->thread.cache.content_actions.array[i].array[j].start) + 1, sizeof(f_char_t), (void **) &action->parameters.array[j].string, &action->parameters.array[j].used, &action->parameters.array[j].size); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -224,7 +224,7 @@ extern "C" { state.status = f_string_dynamic_partial_append_nulless(main->thread.cache.buffer_file, main->thread.cache.content_actions.array[i].array[j], &action->parameters.array[j]); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -240,7 +240,7 @@ extern "C" { state.status = controller_path_canonical_relative(main, main->process.path_current, action->parameters.array[0], &main->thread.cache.buffer_path); if (F_status_is_error(state.status)) { - controller_print_error_entry_file(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, main->thread.cache.action.generic, f_file_operation_analyze_s, fll_error_file_type_path_e, F_status_debug_source_d); + controller_print_error_entry_file(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, main->thread.cache.action.generic, f_file_operation_analyze_s, fll_error_file_type_path_e); action->status = state.status; @@ -271,7 +271,7 @@ extern "C" { state.status = f_file_name_base(action->parameters.array[1], &main->thread.cache.buffer_path); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true); if (F_status_set_fine(state.status) == F_memory_not) { status_action = controller_status_simplify_error(state.status); @@ -380,7 +380,7 @@ extern "C" { } if (F_status_set_fine(state.status) == F_memory_not) { - controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, entry->flag & controller_entry_flag_is_e, F_status_set_fine(state.status), F_status_debug_source_d, F_true); status_action = state.status; diff --git a/sources/c/program/controller/main/entry/preprocess.c b/sources/c/program/controller/main/entry/preprocess.c index 874461c..b714c03 100644 --- a/sources/c/program/controller/main/entry/preprocess.c +++ b/sources/c/program/controller/main/entry/preprocess.c @@ -36,7 +36,7 @@ extern "C" { status = f_memory_array_resize(2, sizeof(f_number_unsigned_t), (void **) &cache->ats.array, &cache->ats.used, &cache->ats.size); if (F_status_is_error(status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); return status; } @@ -53,7 +53,7 @@ extern "C" { status = f_string_dynamic_append_nulless(entry->items.array[0].name, &cache->action.name_item); if (F_status_is_error(status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); return status; } @@ -70,7 +70,7 @@ extern "C" { status2 = f_string_dynamic_append_nulless(controller_entry_action_type_name(actions->array[cache->ats.array[at_j]].type), &cache->action.name_action); if (F_status_is_error(status2)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status2), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status2), F_status_debug_source_d, F_true); return status2; } @@ -116,7 +116,7 @@ extern "C" { status2 = f_memory_array_increase(controller_allocation_small_d, sizeof(f_number_unsigned_t), (void **) &cache->ats.array, &cache->ats.used, &cache->ats.size); if (F_status_is_error(status2)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status2), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status2), F_status_debug_source_d, F_true); return status2; } @@ -141,7 +141,7 @@ extern "C" { status2 = f_string_dynamic_append_nulless(entry->items.array[i].name, &cache->action.name_item); if (F_status_is_error(status2)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status2), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status2), F_status_debug_source_d, F_true); return status2; } @@ -186,7 +186,7 @@ extern "C" { status2 = f_string_dynamic_append_nulless(entry->items.array[cache->ats.array[at_i]].name, &cache->action.name_item); if (F_status_is_error(status2)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status2), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status2), F_status_debug_source_d, F_true); return status2; } diff --git a/sources/c/program/controller/main/entry/process.c b/sources/c/program/controller/main/entry/process.c index c746550..18dff57 100644 --- a/sources/c/program/controller/main/entry/process.c +++ b/sources/c/program/controller/main/entry/process.c @@ -37,7 +37,7 @@ extern "C" { status = f_memory_array_resize(2, sizeof(f_number_unsigned_t), (void **) &cache->ats.array, &cache->ats.used, &cache->ats.size); if (F_status_is_error(status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); return status; } @@ -54,7 +54,7 @@ extern "C" { status = f_string_dynamic_append_nulless(entry->items.array[cache->ats.array[0]].name, &cache->action.name_item); if (F_status_is_error(status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); return status; } @@ -83,7 +83,7 @@ extern "C" { status = f_string_dynamic_append_nulless(controller_entry_action_type_name(entry_action->type), &cache->action.name_action); if (F_status_is_error(status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); return status; } @@ -151,7 +151,7 @@ extern "C" { status = f_memory_array_increase_by(2, sizeof(f_number_unsigned_t), (void **) &cache->ats.array, &cache->ats.used, &cache->ats.size); if (F_status_is_error(status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); return status; } @@ -174,7 +174,7 @@ extern "C" { status = f_string_dynamic_append_nulless(entry->items.array[cache->ats.array[at_i]].name, &cache->action.name_item); if (F_status_is_error(status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); return status; } @@ -213,111 +213,117 @@ extern "C" { if (!controller_thread_enable_is_normal(&main->thread, is_entry)) break; - // The Rule is not yet loaded, ensure that it is loaded. + // The Rule is not yet loaded, ensure that it is loaded (but not when using controlfile/initfile). if (status != F_true) { + if (main->setting.flag & controller_main_flag_loaded_d) { + status = F_status_set_error(F_load_not); - controller_rule_t *rule = 0; + controller_print_error_entry_action_missing_rule(&main->program.error, &main->thread.cache.action, is_entry, alias_rule, F_status_debug_source_d); + } + else { + controller_rule_t *rule = 0; - status = f_memory_new(1, sizeof(controller_rule_t), (void **) &rule); + status = f_memory_new(1, sizeof(controller_rule_t), (void **) &rule); - if (F_status_is_error(status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true, F_status_debug_source_d); + if (F_status_is_error(status)) { + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); - return status; - } + return status; + } - // Rule execution will re-use the existing cache, so save the current cache. - const f_number_unsigned_t cache_line_action = cache->action.line_action; - const f_number_unsigned_t cache_line_item = cache->action.line_item; + // Rule execution will re-use the existing cache, so save the current cache. + const f_number_unsigned_t cache_line_action = cache->action.line_action; + const f_number_unsigned_t cache_line_item = cache->action.line_item; - const f_number_unsigned_t cache_name_action_used = cache->action.name_action.used; - const f_number_unsigned_t cache_name_item_used = cache->action.name_item.used; - const f_number_unsigned_t cache_name_file_used = cache->action.name_file.used; + const f_number_unsigned_t cache_name_action_used = cache->action.name_action.used; + const f_number_unsigned_t cache_name_item_used = cache->action.name_item.used; + const f_number_unsigned_t cache_name_file_used = cache->action.name_file.used; - f_char_t cache_name_action[cache_name_action_used]; - f_char_t cache_name_item[cache_name_item_used]; - f_char_t cache_name_file[cache_name_file_used]; + f_char_t cache_name_action[cache_name_action_used]; + f_char_t cache_name_item[cache_name_item_used]; + f_char_t cache_name_file[cache_name_file_used]; - memcpy(cache_name_action, cache->action.name_action.string, sizeof(f_char_t) * cache->action.name_action.used); - memcpy(cache_name_item, cache->action.name_item.string, sizeof(f_char_t) * cache->action.name_item.used); - memcpy(cache_name_file, cache->action.name_file.string, sizeof(f_char_t) * cache->action.name_file.used); + memcpy(cache_name_action, cache->action.name_action.string, sizeof(f_char_t) * cache->action.name_action.used); + memcpy(cache_name_item, cache->action.name_item.string, sizeof(f_char_t) * cache->action.name_item.used); + memcpy(cache_name_file, cache->action.name_file.string, sizeof(f_char_t) * cache->action.name_file.used); - status = controller_rule_read(main, cache, is_entry, alias_rule, entry, rule); // @fixme this re-uses the buffer_file, which may be a problem for entry reading. + status = controller_rule_read(main, cache, is_entry, alias_rule, entry, rule); - // Restore cache. - memcpy(cache->action.name_action.string, cache_name_action, sizeof(f_char_t) * cache_name_action_used); - memcpy(cache->action.name_item.string, cache_name_item, sizeof(f_char_t) * cache_name_item_used); - memcpy(cache->action.name_file.string, cache_name_file, sizeof(f_char_t) * cache_name_file_used); + // Restore cache. + memcpy(cache->action.name_action.string, cache_name_action, sizeof(f_char_t) * cache_name_action_used); + memcpy(cache->action.name_item.string, cache_name_item, sizeof(f_char_t) * cache_name_item_used); + memcpy(cache->action.name_file.string, cache_name_file, sizeof(f_char_t) * cache_name_file_used); - cache->action.name_action.string[cache_name_action_used] = 0; - cache->action.name_item.string[cache_name_item_used] = 0; - cache->action.name_file.string[cache_name_file_used] = 0; + cache->action.name_action.string[cache_name_action_used] = 0; + cache->action.name_item.string[cache_name_item_used] = 0; + cache->action.name_file.string[cache_name_file_used] = 0; - cache->action.name_action.used = cache_name_action_used; - cache->action.name_item.used = cache_name_item_used; - cache->action.name_file.used = cache_name_file_used; + cache->action.name_action.used = cache_name_action_used; + cache->action.name_item.used = cache_name_item_used; + cache->action.name_file.used = cache_name_file_used; - cache->action.line_action = cache_line_action; - cache->action.line_item = cache_line_item; + cache->action.line_action = cache_line_action; + cache->action.line_item = cache_line_item; - if (F_status_set_fine(status) == F_interrupt || !controller_thread_enable_is_normal(&main->thread, is_entry)) break; + if (F_status_set_fine(status) == F_interrupt || !controller_thread_enable_is_normal(&main->thread, is_entry)) break; - if (F_status_is_error(status)) { - if (main->program.error.verbosity > f_console_verbosity_quiet_e) { - controller_lock_print(main->program.error.to, &main->thread); + if (F_status_is_error(status)) { + if (main->program.error.verbosity > f_console_verbosity_quiet_e) { + controller_lock_print(main->program.error.to, &main->thread); - controller_print_error_entry_cache(&main->program.error, &cache->action, is_entry, F_status_debug_source_d); + controller_print_error_entry_cache(&main->program.error, &cache->action, is_entry, F_status_debug_source_d); - controller_unlock_print_flush(main->program.error.to, &main->thread); - } + controller_unlock_print_flush(main->program.error.to, &main->thread); + } - // Designate the Action as failed. - entry_action->status = controller_status_simplify_error(F_failure); + // Designate the Action as failed. + entry_action->status = controller_status_simplify_error(F_failure); - if (!(main->setting.flag & controller_main_flag_simulate_d)) { - if (rule) { - f_memory_delete(1, sizeof(controller_rule_t), (void **) &rule); - } + if (!(main->setting.flag & controller_main_flag_simulate_d)) { + if (rule) { + f_memory_delete(1, sizeof(controller_rule_t), (void **) &rule); + } - f_thread_unlock(&main->thread.lock.rule); + f_thread_unlock(&main->thread.lock.rule); - if (entry_action->code & controller_entry_rule_code_require_d) return F_status_set_error(F_require); + if (entry_action->code & controller_entry_rule_code_require_d) return F_status_set_error(F_require); - ++cache->ats.array[at_j]; + ++cache->ats.array[at_j]; - break; + break; + } } - } - else { - status_lock = controller_lock_write_standard(is_entry, controller_lock_check_flag_yes_d, &main->thread, &main->thread.lock.rule); + else { + status_lock = controller_lock_write_standard(is_entry, controller_lock_check_flag_yes_d, &main->thread, &main->thread.lock.rule); - if (status_lock != F_okay) { - if (rule) { - f_memory_delete(1, sizeof(controller_rule_t), (void **) &rule); - } + if (status_lock != F_okay) { + if (rule) { + f_memory_delete(1, sizeof(controller_rule_t), (void **) &rule); + } - controller_print_error_lock_critical(&main->program.error, F_status_set_fine(status_lock), F_false, F_status_debug_source_d); + controller_print_error_lock_critical(&main->program.error, F_status_set_fine(status_lock), F_false, F_status_debug_source_d); - break; - } + break; + } - status = f_memory_array_increase(controller_allocation_small_d, sizeof(controller_rule_t), (void **) &main->process.rules.array, &main->process.rules.used, &main->process.rules.size); + status = f_memory_array_increase(controller_allocation_small_d, sizeof(controller_rule_t), (void **) &main->process.rules.array, &main->process.rules.used, &main->process.rules.size); - if (F_status_is_error(status)) { - if (rule) { - f_memory_delete(1, sizeof(controller_rule_t), (void **) &rule); - } + if (F_status_is_error(status)) { + if (rule) { + f_memory_delete(1, sizeof(controller_rule_t), (void **) &rule); + } - f_thread_unlock(&main->thread.lock.rule); + f_thread_unlock(&main->thread.lock.rule); - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); - return status; - } + return status; + } - main->process.rules.array[main->process.rules.used++] = rule; + main->process.rules.array[main->process.rules.used++] = rule; - f_thread_unlock(&main->thread.lock.rule); + f_thread_unlock(&main->thread.lock.rule); + } } } @@ -380,7 +386,7 @@ extern "C" { controller_print_error_entry_action_execution_missing(&main->program.error, &cache->action, is_entry, entry_action->parameters.array[0], F_status_debug_source_d); } else { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); } return F_status_set_error(F_execute); @@ -464,7 +470,7 @@ extern "C" { status = f_string_dynamic_append_nulless(entry->items.array[cache->ats.array[at_i]].name, &cache->action.name_item); if (F_status_is_error(status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(status), F_status_debug_source_d, F_true); break; } diff --git a/sources/c/program/controller/main/entry/setting.c b/sources/c/program/controller/main/entry/setting.c index 2473fa7..584f6fc 100644 --- a/sources/c/program/controller/main/entry/setting.c +++ b/sources/c/program/controller/main/entry/setting.c @@ -20,7 +20,7 @@ extern "C" { } if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); return state.status; } @@ -28,7 +28,7 @@ extern "C" { f_fss_apply_delimit(cache->delimits, &cache->buffer_file, &state); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); return state.status; } @@ -46,7 +46,7 @@ extern "C" { f_fss_count_lines(cache->buffer_file, cache->object_actions.array[i].start, &cache->action.line_action, &state); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -57,7 +57,7 @@ extern "C" { state.status = f_rip_dynamic_partial_nulless(cache->buffer_file, cache->object_actions.array[i], &cache->action.name_action); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -89,7 +89,7 @@ extern "C" { state.status = f_rip_dynamic_partial_nulless(cache->buffer_file, cache->content_actions.array[i].array[0], &cache->action.generic); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -99,7 +99,7 @@ extern "C" { state.status = controller_path_canonical_relative(main, main->process.path_current, cache->action.generic, &main->process.path_control); if (F_status_is_error(state.status)) { - controller_print_error_entry_file(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, cache->action.generic, f_file_operation_analyze_s, fll_error_file_type_path_e, F_status_debug_source_d); + controller_print_error_entry_file(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, cache->action.generic, f_file_operation_analyze_s, fll_error_file_type_path_e); continue; } @@ -120,7 +120,7 @@ extern "C" { controller_print_error_entry_setting_with_range(&main->program.error, cache, is_entry, " has an invalid group", cache->content_actions.array[i].array[0], ", because the given ID is not a valid supported number", F_status_debug_source_d); } else { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); } continue; @@ -139,7 +139,7 @@ extern "C" { state.status = f_rip_dynamic_partial_nulless(cache->buffer_file, cache->content_actions.array[i].array[0], &cache->action.generic); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); break; } @@ -155,7 +155,7 @@ extern "C" { state.status = f_file_mode_to_mode(mode_file, &mode); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); continue; } @@ -179,7 +179,7 @@ extern "C" { controller_print_error_entry_setting_with_range(&main->program.error, cache, is_entry, " has an invalid user", cache->content_actions.array[i].array[0], ", because the given ID is not a valid supported number", F_status_debug_source_d); } else { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); } continue; @@ -198,7 +198,7 @@ extern "C" { state.status = controller_entry_setting_read_map(cache->buffer_file, cache->content_actions.array[i], &entry->define); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); continue; } @@ -235,7 +235,7 @@ extern "C" { state.status = controller_entry_setting_read_map(cache->buffer_file, cache->content_actions.array[i], &entry->parameter); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); continue; } @@ -278,7 +278,7 @@ extern "C" { state.status = f_rip_dynamic_partial_nulless(cache->buffer_file, cache->content_actions.array[i].array[0], &cache->action.generic); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); continue; } @@ -288,7 +288,7 @@ extern "C" { state.status = controller_path_canonical_relative(main, main->process.path_current, cache->action.generic, &main->process.path_pid); if (F_status_is_error(state.status)) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); continue; } @@ -395,7 +395,7 @@ extern "C" { *time = time_previous; if (F_status_set_fine(state.status) == F_memory_not) { - controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_status_debug_source_d); + controller_print_error_entry(&main->program.error, is_entry, F_status_set_fine(state.status), F_status_debug_source_d, F_true); continue; } diff --git a/sources/c/program/controller/main/file.c b/sources/c/program/controller/main/file.c index 365cf2b..d037060 100644 --- a/sources/c/program/controller/main/file.c +++ b/sources/c/program/controller/main/file.c @@ -119,6 +119,44 @@ extern "C" { } #endif // _di_controller_file_load_ +#if defined(_support_controller_controlfile_) && !defined(_di_controller_file_load_controlfile_) + f_status_t controller_file_load_controlfile(controller_t * const main) { + + if (!main) return F_status_set_error(F_parameter); + + f_file_t file = f_file_t_initialize; + + f_status_t status = f_file_stream_open(controller_controlfile_s, f_string_empty_s, &file); + + if (F_status_is_error(status)) { + if (F_status_set_fine(status) == F_file_found_not) { + f_file_stream_flush(file); + f_file_stream_close(&file); + + return F_file_found_not; + } + + if (main->program.error.verbosity > f_console_verbosity_quiet_e) { + controller_print_error_file_status(&main->program.error, F_status_debug_source_d, controller_controlfile_s, f_file_operation_open_s, fll_error_file_type_file_e, F_status_set_fine(status)); + } + } + else { + main->thread.cache.buffer_file.used = 0; + + status = f_file_stream_read(file, &main->thread.cache.buffer_file); + + if (F_status_is_error(status)) { + controller_print_error_file_status(&main->program.error, F_status_debug_source_d, controller_controlfile_s, f_file_operation_read_s, fll_error_file_type_file_e, F_status_set_fine(status)); + } + } + + f_file_stream_flush(file); + f_file_stream_close(&file); + + return F_status_is_error(status) ? status : F_okay; + } +#endif // defined(_support_controller_controlfile_) && !defined(_di_controller_file_load_controlfile_) + #ifndef _di_controller_file_pid_create_ f_status_t controller_file_pid_create(const pid_t pid, const f_string_static_t path) { diff --git a/sources/c/program/controller/main/file.h b/sources/c/program/controller/main/file.h index e94a03b..75604e1 100644 --- a/sources/c/program/controller/main/file.h +++ b/sources/c/program/controller/main/file.h @@ -58,6 +58,33 @@ extern "C" { #endif // _di_controller_file_load_ /** + * Load the controlfile/initfile, if it exists at the current path. + * + * @param main + * The main program data. + * + * The following within the main.thread.cache is changed: + * - action.name_file: The partial path of the file is inserted. + * - buffer_file: The contents of the file is inserted. + * - timestamp: This is updated to reflect the last changed timestamp. + * + * Must not be NULL. + * + * @return + * F_okay on success. + * F_file_found_not if required is FALSE and the file is not found. + * + * Errors (with error bit) from: f_file_stream_open(). + * Errors (with error bit) from: f_file_stream_read(). + * + * @see f_file_stream_open() + * @see f_file_stream_read() + */ +#if defined(_support_controller_controlfile_) && !defined(_di_controller_file_load_controlfile_) + extern f_status_t controller_file_load_controlfile(controller_t * const main); +#endif // defined(_support_controller_controlfile_) && !defined(_di_controller_file_load_controlfile_) + +/** * Create the pid file, if possible. * * @param pid diff --git a/sources/c/program/controller/main/perform.c b/sources/c/program/controller/main/perform.c index 25cbc46..b7e0391 100644 --- a/sources/c/program/controller/main/perform.c +++ b/sources/c/program/controller/main/perform.c @@ -28,7 +28,7 @@ extern "C" { // Always return immediately on memory errors. if (F_status_set_fine(status) == F_memory_not) { - controller_print_error_perform_pid_file_create(&main->program.error, F_status_set_fine(status), F_status_debug_source_d, is_entry, F_status_debug_source_d); + controller_print_error_perform_pid_file_create(&main->program.error, F_status_set_fine(status), F_status_debug_source_d, is_entry); return status; } diff --git a/sources/c/program/controller/main/print/debug/rule/action.c b/sources/c/program/controller/main/print/debug/rule/action.c index 52a8d7d..c488850 100644 --- a/sources/c/program/controller/main/print/debug/rule/action.c +++ b/sources/c/program/controller/main/print/debug/rule/action.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_debug_rule_action_empty_ - f_status_t controller_print_debug_rule_action_empty(fl_print_t * const print, controller_cache_t * const cache, const f_string_t line_file) { + f_status_t controller_print_debug_rule_action_empty(fl_print_t * const print, controller_cache_t * const cache, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -16,7 +16,7 @@ extern "C" { fl_print_format("%r%[%QAction is empty, nothing to do.%]%r", print->to, f_string_eol_s, print->context, print->prefix, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, &cache->action, F_true, line_file); + controller_print_error_rule_cache(print, &cache->action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/debug/rule/action.h b/sources/c/program/controller/main/print/debug/rule/action.h index b2d9d63..c3ba1a6 100644 --- a/sources/c/program/controller/main/print/debug/rule/action.h +++ b/sources/c/program/controller/main/print/debug/rule/action.h @@ -31,9 +31,8 @@ extern "C" { * A structure for containing and caching relevant data. * * Must not be NULL. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -44,7 +43,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_debug_rule_action_empty_ - extern f_status_t controller_print_debug_rule_action_empty(fl_print_t * const print, controller_cache_t * const cache, const f_string_t line_file); + extern f_status_t controller_print_debug_rule_action_empty(fl_print_t * const print, controller_cache_t * const cache, const f_string_t debug); #endif // _di_controller_print_debug_rule_action_empty_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/debug/rule/execute.c b/sources/c/program/controller/main/print/debug/rule/execute.c index c451021..037ce8a 100644 --- a/sources/c/program/controller/main/print/debug/rule/execute.c +++ b/sources/c/program/controller/main/print/debug/rule/execute.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_main_print_debug_rule_execute_rerun_ - f_status_t controller_main_print_debug_rule_execute_rerun(fl_print_t * const print, controller_instance_t * const instance, controller_rule_rerun_item_t * const rerun, const uint8_t action, const f_string_t line_file) { + f_status_t controller_main_print_debug_rule_execute_rerun(fl_print_t * const print, controller_instance_t * const instance, controller_rule_rerun_item_t * const rerun, const uint8_t action, const f_string_t debug) { if (!print || !print->custom || !instance || !rerun) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -24,17 +24,17 @@ extern "C" { fl_print_format(" for %[%ul%]", print->to, print->set->notable, rerun->count, print->set->notable); fl_print_format(" of %[%r%] ", print->to, print->set->notable, controller_max_s, print->set->notable); fl_print_format(f_string_format_un_single_s.string, print->to, print->set->notable, rerun->max, print->set->notable); - - if (line_file) { - fl_print_format(" (file: %s)", print->to, line_file); - } - - fl_print_format(f_string_format_sentence_end_s.string, print->to, f_string_eol_s); } else { - fl_print_format(" with no %[%r%].%r", print->to, print->set->notable, controller_max_s, print->set->notable, f_string_eol_s); + fl_print_format(" with no %[%r%]", print->to, print->set->notable, controller_max_s, print->set->notable); } + if (debug) { + fl_print_format(" (%S)", print->to, debug); + } + + fl_print_format(f_string_format_sentence_end_s.string, print->to, f_string_eol_s); + controller_unlock_print_flush(print->to, &main->thread); return F_okay; diff --git a/sources/c/program/controller/main/print/debug/rule/execute.h b/sources/c/program/controller/main/print/debug/rule/execute.h index 1e89732..fd407c5 100644 --- a/sources/c/program/controller/main/print/debug/rule/execute.h +++ b/sources/c/program/controller/main/print/debug/rule/execute.h @@ -37,9 +37,8 @@ extern "C" { * Must not be NULL. * @param action * The ID of the Action being re-run. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -50,7 +49,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_main_print_debug_rule_execute_rerun_ - extern f_status_t controller_main_print_debug_rule_execute_rerun(fl_print_t * const print, controller_instance_t * const instance, controller_rule_rerun_item_t * const rerun, const uint8_t action, const f_string_t line_file); + extern f_status_t controller_main_print_debug_rule_execute_rerun(fl_print_t * const print, controller_instance_t * const instance, controller_rule_rerun_item_t * const rerun, const uint8_t action, const f_string_t debug); #endif // _di_controller_main_print_debug_rule_execute_rerun_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/debug/rule/instance.c b/sources/c/program/controller/main/print/debug/rule/instance.c index 635b3d0..5c073c2 100644 --- a/sources/c/program/controller/main/print/debug/rule/instance.c +++ b/sources/c/program/controller/main/print/debug/rule/instance.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_debug_rule_instance_need_want_wish_ - f_status_t controller_print_debug_rule_instance_need_want_wish(fl_print_t * const print, controller_instance_t * const instance, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t line_file) { + f_status_t controller_print_debug_rule_instance_need_want_wish(fl_print_t * const print, controller_instance_t * const instance, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t debug) { if (!print || !print->custom || !instance) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -14,9 +14,9 @@ extern "C" { controller_lock_print(print->to, &main->thread); - controller_print_error_rule_item_need_want_wish(print, need_want_wish, value, why, line_file); + controller_print_error_rule_item_need_want_wish(print, need_want_wish, value, why, debug); - controller_print_error_rule_cache(print, &instance->cache.action, F_true, line_file); + controller_print_error_rule_cache(print, &instance->cache.action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/debug/rule/instance.h b/sources/c/program/controller/main/print/debug/rule/instance.h index 2c0cdad..fb9b146 100644 --- a/sources/c/program/controller/main/print/debug/rule/instance.h +++ b/sources/c/program/controller/main/print/debug/rule/instance.h @@ -38,9 +38,8 @@ extern "C" { * The value that is the error or warning. * @param why * A short explanation on why this is an error or warning. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -51,7 +50,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_debug_rule_instance_need_want_wish_ - extern f_status_t controller_print_debug_rule_instance_need_want_wish(fl_print_t * const print, controller_instance_t * const instance, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t line_file); + extern f_status_t controller_print_debug_rule_instance_need_want_wish(fl_print_t * const print, controller_instance_t * const instance, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t debug); #endif // #ifndef _di_controller_print_debug_rule_instance_need_want_wish_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/error/entry.c b/sources/c/program/controller/main/print/error/entry.c index 2128410..72be129 100644 --- a/sources/c/program/controller/main/print/error/entry.c +++ b/sources/c/program/controller/main/print/error/entry.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_error_entry_ - f_status_t controller_print_error_entry(fl_print_t * const print, const uint8_t is_entry, const f_status_t status, const f_string_t debug, const uint8_t fallback, const f_string_t line_file) { + f_status_t controller_print_error_entry(fl_print_t * const print, const uint8_t is_entry, const f_status_t status, const f_string_t debug, const uint8_t fallback) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -19,7 +19,7 @@ extern "C" { f_file_stream_lock(print->to); - controller_print_error_entry_cache(print, &main->thread.cache.action, is_entry, line_file); + controller_print_error_entry_cache(print, &main->thread.cache.action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -28,7 +28,7 @@ extern "C" { #endif // _di_controller_print_error_entry_ #ifndef _di_controller_print_error_entry_cache_ - f_status_t controller_print_error_entry_cache(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t line_file) { + f_status_t controller_print_error_entry_cache(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t debug) { if (!print || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -55,14 +55,17 @@ extern "C" { fl_print_format("%r file '%]%[%Q%]%['", print->to, is_entry ? controller_entry_s : controller_exit_s, print->context, print->notable, action->name_file, print->notable, print->context); } - fl_print_format(".%]%r", print->to, print->context, f_string_eol_s); + fll_error_print_debug(print, debug); + + //fl_print_format(f_string_format_sentence_end_basic_s.string, print->to, print->context, f_string_eol_s); + fl_print_format(".%]%r", print->to, print->context, f_string_eol_s); // @todo remove this and use above line once FLL has bug fixed where f_string_format_sentence_end_basic_s is missing. return F_okay; } #endif // _di_controller_print_error_entry_cache_ #ifndef _di_controller_print_error_entry_file_ - f_status_t controller_print_error_entry_file(fl_print_t * const print, const uint8_t is_entry, const f_status_t status, const f_string_t debug, const uint8_t fallback, const f_string_static_t name, const f_string_static_t operation, const uint8_t type, const f_string_t line_file) { + f_status_t controller_print_error_entry_file(fl_print_t * const print, const uint8_t is_entry, const f_status_t status, const f_string_t debug, const uint8_t fallback, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -77,7 +80,7 @@ extern "C" { f_file_stream_lock(print->to); - controller_print_error_entry_cache(print, &main->thread.cache.action, is_entry, line_file); + controller_print_error_entry_cache(print, &main->thread.cache.action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/error/entry.h b/sources/c/program/controller/main/print/error/entry.h index 9177fee..c5dcd34 100644 --- a/sources/c/program/controller/main/print/error/entry.h +++ b/sources/c/program/controller/main/print/error/entry.h @@ -41,11 +41,6 @@ extern "C" { * Set to F_true to print the fallback error message for unknown errors. * @param thread * The thread data. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. - * - * Set to NULL to disable. * * @return * F_okay on success. @@ -54,7 +49,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_ - extern f_status_t controller_print_error_entry(fl_print_t * const print, const uint8_t is_entry, const f_status_t status, const f_string_t debug, const uint8_t fallback, const f_string_t line_file); + extern f_status_t controller_print_error_entry(fl_print_t * const print, const uint8_t is_entry, const f_status_t status, const f_string_t debug, const uint8_t fallback); #endif // _di_controller_print_error_entry_ /** @@ -79,9 +74,8 @@ extern "C" { * @param is_entry * If TRUE, then this loads as an Entry. * If FALSE, then this loads as an Exit. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -92,7 +86,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_cache_ - extern f_status_t controller_print_error_entry_cache(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t line_file); + extern f_status_t controller_print_error_entry_cache(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t debug); #endif // _di_controller_print_error_entry_cache_ /** @@ -125,11 +119,6 @@ extern "C" { * The operation that fails, such as 'create' or 'access'. * @param type * A valid file type code from the fll_error_file_type enum. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. - * - * Set to NULL to disable. * * @return * F_okay on success. @@ -138,7 +127,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_file_ - extern f_status_t controller_print_error_entry_file(fl_print_t * const print, const uint8_t is_entry, const f_status_t status, const f_string_t debug, const uint8_t fallback, const f_string_static_t name, const f_string_static_t operation, const uint8_t type, const f_string_t line_file); + extern f_status_t controller_print_error_entry_file(fl_print_t * const print, const uint8_t is_entry, const f_status_t status, const f_string_t debug, const uint8_t fallback, const f_string_static_t name, const f_string_static_t operation, const uint8_t type); #endif // _di_controller_print_error_entry_file_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/error/entry/action.c b/sources/c/program/controller/main/print/error/entry/action.c index d2408ea..d43c3c9 100644 --- a/sources/c/program/controller/main/print/error/entry/action.c +++ b/sources/c/program/controller/main/print/error/entry/action.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_error_entry_action_execution_failure_ - f_status_t controller_print_error_entry_action_execution_failure(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const int code, const f_string_t line_file) { + f_status_t controller_print_error_entry_action_execution_failure(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const int code, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -18,7 +18,7 @@ extern "C" { fl_print_format(f_string_format_i_single_s.string, print->to, print->notable, code, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, action, is_entry, line_file); + controller_print_error_entry_cache(print, action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -27,7 +27,7 @@ extern "C" { #endif // _di_controller_print_error_entry_action_execution_failure_ #ifndef _di_controller_print_error_entry_action_execution_missing_ - f_status_t controller_print_error_entry_action_execution_missing(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_string_t line_file) { + f_status_t controller_print_error_entry_action_execution_missing(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -40,7 +40,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, action, is_entry, line_file); + controller_print_error_entry_cache(print, action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -49,7 +49,7 @@ extern "C" { #endif // _di_controller_print_error_entry_action_execution_missing_ #ifndef _di_controller_print_error_entry_action_invalid_allow_1_ - f_status_t controller_print_error_entry_action_invalid_allow_1(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_static_t has, const f_string_static_t allow, const f_string_t line_file) { + f_status_t controller_print_error_entry_action_invalid_allow_1(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_static_t has, const f_string_static_t allow, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -71,7 +71,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, has, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, action, is_entry, line_file); + controller_print_error_entry_cache(print, action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -80,7 +80,7 @@ extern "C" { #endif // _di_controller_print_error_entry_action_invalid_allow_1_ #ifndef _di_controller_print_error_entry_action_invalid_allow_3_ - f_status_t controller_print_error_entry_action_invalid_allow_3(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_static_t has, const f_string_static_t allow_1, const f_string_static_t allow_2, const f_string_static_t allow_3, const f_string_t line_file) { + f_status_t controller_print_error_entry_action_invalid_allow_3(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_static_t has, const f_string_static_t allow_1, const f_string_static_t allow_2, const f_string_static_t allow_3, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -105,7 +105,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, has, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, action, is_entry, line_file); + controller_print_error_entry_cache(print, action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -113,8 +113,32 @@ extern "C" { } #endif // _di_controller_print_error_entry_action_invalid_allow_3_ +#ifndef _di_controller_print_error_entry_action_missing_rule_ + f_status_t controller_print_error_entry_action_missing_rule(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug) { + + if (!print || !print->custom || !action) return F_status_set_error(F_output_not); + if (print->verbosity < f_console_verbosity_error_e) return F_output_not; + + controller_t * const main = (controller_t *) print->custom; + + controller_lock_print(print->to, &main->thread); + + fl_print_format("%r%[%QCannot execute item action rule '%]", print->to, f_string_eol_s, print->context, print->prefix, print->context); + fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); + fl_print_format("%[', could not load", print->to, print->context); + //fl_print_format(f_string_format_sentence_end_basic_s.string, print->to, print->context, f_string_eol_s); + fl_print_format(".%]%r", print->to, print->context, f_string_eol_s); // @todo remove this and use above line once FLL has bug fixed where f_string_format_sentence_end_basic_s is missing. + + controller_print_error_entry_cache(print, action, is_entry, debug); + + controller_unlock_print_flush(print->to, &main->thread); + + return F_okay; + } +#endif // _di_controller_print_error_entry_action_missing_rule_ + #ifndef _di_controller_print_error_entry_action_parameter_empty_ - f_status_t controller_print_error_entry_action_parameter_empty(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_t line_file) { + f_status_t controller_print_error_entry_action_parameter_empty(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -125,7 +149,7 @@ extern "C" { fl_print_format("%r%[%QThe %r Item Action %S must not be an empty string.%]", print->to, f_string_eol_s, print->context, print->prefix, is_entry ? controller_entry_s : controller_exit_s, message, print->context); - controller_print_error_entry_cache(print, action, is_entry, line_file); + controller_print_error_entry_cache(print, action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -134,7 +158,7 @@ extern "C" { #endif // _di_controller_print_error_entry_action_parameter_empty_ #ifndef _di_controller_print_error_entry_action_parameter_second_base_ - f_status_t controller_print_error_entry_action_parameter_second_base(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t has, const f_string_static_t example, const f_string_t line_file) { + f_status_t controller_print_error_entry_action_parameter_second_base(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t has, const f_string_static_t example, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -149,7 +173,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, example, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, action, is_entry, line_file); + controller_print_error_entry_cache(print, action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -158,7 +182,7 @@ extern "C" { #endif // _di_controller_print_error_entry_action_parameter_second_base_ #ifndef _di_controller_print_error_entry_action_requires_range_ - f_status_t controller_print_error_entry_action_requires_range(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_number_unsigned_t at_least, const f_number_unsigned_t at_most, const uint8_t type, const f_string_t line_file) { + f_status_t controller_print_error_entry_action_requires_range(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_number_unsigned_t at_least, const f_number_unsigned_t at_most, const uint8_t type, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -192,7 +216,7 @@ extern "C" { } } - controller_print_error_entry_cache(print, action, is_entry, line_file); + controller_print_error_entry_cache(print, action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -201,7 +225,7 @@ extern "C" { #endif // _di_controller_print_error_entry_action_requires_range_ #ifndef _di_controller_print_error_entry_action_unsupported_number_ - f_status_t controller_print_error_entry_action_unsupported_number(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t has, const f_string_t line_file) { + f_status_t controller_print_error_entry_action_unsupported_number(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t has, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -214,7 +238,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, has, print->notable); fl_print_format("%[' is not a valid supported number.%]%r", print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, action, is_entry, line_file); + controller_print_error_entry_cache(print, action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -223,7 +247,7 @@ extern "C" { #endif // _di_controller_print_error_entry_action_unsupported_number_ #ifndef _di_controller_print_error_entry_action_unsupported_reserve_ - f_status_t controller_print_error_entry_action_unsupported_reserve(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t item, const f_string_t line_file) { + f_status_t controller_print_error_entry_action_unsupported_reserve(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t item, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -236,7 +260,7 @@ extern "C" { fl_print_format(f_string_format_r_single_s.string, print->to, print->notable, item, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, action, is_entry, line_file); + controller_print_error_entry_cache(print, action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/error/entry/action.h b/sources/c/program/controller/main/print/error/entry/action.h index 173b953..5d78080 100644 --- a/sources/c/program/controller/main/print/error/entry/action.h +++ b/sources/c/program/controller/main/print/error/entry/action.h @@ -36,9 +36,8 @@ extern "C" { * If FALSE, then this loads as an Exit. * @param code * The return code. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -49,7 +48,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_action_execution_failure_ - extern f_status_t controller_print_error_entry_action_execution_failure(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const int code, const f_string_t line_file); + extern f_status_t controller_print_error_entry_action_execution_failure(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const int code, const f_string_t debug); #endif // _di_controller_print_error_entry_action_execution_failure_ /** @@ -72,9 +71,8 @@ extern "C" { * If FALSE, then this loads as an Exit. * @param name * The program or script name. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -85,7 +83,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_action_execution_missing_ - extern f_status_t controller_print_error_entry_action_execution_missing(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_string_t line_file); + extern f_status_t controller_print_error_entry_action_execution_missing(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug); #endif // _di_controller_print_error_entry_action_execution_missing_ /** @@ -116,9 +114,8 @@ extern "C" { * The invalid value that is not supported. * @param allow * The allowed value that is supported. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -129,7 +126,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_action_invalid_allow_1_ - extern f_status_t controller_print_error_entry_action_invalid_allow_1(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_static_t has, const f_string_static_t allow, const f_string_t line_file); + extern f_status_t controller_print_error_entry_action_invalid_allow_1(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_static_t has, const f_string_static_t allow, const f_string_t debug); #endif // _di_controller_print_error_entry_action_invalid_allow_1_ /** @@ -164,9 +161,8 @@ extern "C" { * The second allowed value that is supported. * @param allow_3 * The third allowed value that is supported. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -177,10 +173,45 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_action_invalid_allow_3_ - extern f_status_t controller_print_error_entry_action_invalid_allow_3(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_static_t has, const f_string_static_t allow_1, const f_string_static_t allow_2, const f_string_static_t allow_3, const f_string_t line_file); + extern f_status_t controller_print_error_entry_action_invalid_allow_3(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_static_t has, const f_string_static_t allow_1, const f_string_static_t allow_2, const f_string_static_t allow_3, const f_string_t debug); #endif // _di_controller_print_error_entry_action_invalid_allow_3_ /** + * Print an error when an Item Action Rule could not be loaded. + * + * @param print + * The output structure to print to. + * + * This requires print.custom to be controller_t. + * + * This does not alter print.custom.setting.state.status. + * + * Must not be NULL. + * @param action + * The Action cache. + * + * Must not be NULL. + * @param is_entry + * If TRUE, then this loads as an Entry. + * If FALSE, then this loads as an Exit. + * @param name + * The Item Action Rule name. + * @param debug + * (optional) The debug details, such as file, line number, and function. + * + * Set to NULL to disable. + * + * @return + * F_okay on success. + * F_output_not on success, but no printing is performed. + * + * F_output_not (with error bit) if setting is NULL. + */ +#ifndef _di_controller_print_error_entry_action_missing_rule_ + extern f_status_t controller_print_error_entry_action_missing_rule(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug); +#endif // _di_controller_print_error_entry_action_missing_rule_ + +/** * Print an error when an Item Action parameter is empty. * * @param print @@ -200,9 +231,8 @@ extern "C" { * If FALSE, then this loads as an Exit. * @param message * A message describing which parameter is empty. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -213,7 +243,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_action_parameter_empty_ - extern f_status_t controller_print_error_entry_action_parameter_empty(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_t line_file); + extern f_status_t controller_print_error_entry_action_parameter_empty(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_t message, const f_string_t debug); #endif // _di_controller_print_error_entry_action_parameter_empty_ /** @@ -238,9 +268,8 @@ extern "C" { * The second parameter value. * @param example * An example of a valid base path name. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -251,7 +280,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_action_parameter_second_base_ - extern f_status_t controller_print_error_entry_action_parameter_second_base(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t has, const f_string_static_t example, const f_string_t line_file); + extern f_status_t controller_print_error_entry_action_parameter_second_base(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t has, const f_string_static_t example, const f_string_t debug); #endif // _di_controller_print_error_entry_action_parameter_second_base_ /** @@ -280,9 +309,8 @@ extern "C" { * The maximum number that is allowed. * @param type * The Action type code. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -293,7 +321,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_action_requires_range_ - extern f_status_t controller_print_error_entry_action_requires_range(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_number_unsigned_t at_least, const f_number_unsigned_t at_most, const uint8_t type, const f_string_t line_file); + extern f_status_t controller_print_error_entry_action_requires_range(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_number_unsigned_t at_least, const f_number_unsigned_t at_most, const uint8_t type, const f_string_t debug); #endif // _di_controller_print_error_entry_action_requires_range_ /** @@ -316,9 +344,8 @@ extern "C" { * If FALSE, then this loads as an Exit. * @param has * The invalid value that is not supported. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -329,7 +356,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_action_unsupported_number_ - extern f_status_t controller_print_error_entry_action_unsupported_number(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t has, const f_string_t line_file); + extern f_status_t controller_print_error_entry_action_unsupported_number(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t has, const f_string_t debug); #endif // _di_controller_print_error_entry_action_unsupported_number_ /** @@ -352,9 +379,8 @@ extern "C" { * If FALSE, then this loads as an Exit. * @param item * The reserved item that is not allowed to be used. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -365,7 +391,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_action_unsupported_reserve_ - extern f_status_t controller_print_error_entry_action_unsupported_reserve(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t item, const f_string_t line_file); + extern f_status_t controller_print_error_entry_action_unsupported_reserve(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t item, const f_string_t debug); #endif // _di_controller_print_error_entry_action_unsupported_reserve_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/error/entry/item.c b/sources/c/program/controller/main/print/error/entry/item.c index 49c4037..b74f50c 100644 --- a/sources/c/program/controller/main/print/error/entry/item.c +++ b/sources/c/program/controller/main/print/error/entry/item.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_error_entry_item_failure_ - f_status_t controller_print_error_entry_item_failure(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t message, const f_string_t line_file) { + f_status_t controller_print_error_entry_item_failure(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t message, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -18,7 +18,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format("%[' %S.%]%r", print->to, print->context, message, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -27,7 +27,7 @@ extern "C" { #endif // _di_controller_print_error_entry_item_failure_ #ifndef _di_controller_print_error_entry_item_invalid_ - f_status_t controller_print_error_entry_item_invalid(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t number, const f_string_t line_file) { + f_status_t controller_print_error_entry_item_invalid(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t number, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -40,7 +40,7 @@ extern "C" { fl_print_format(f_string_format_un_single_s.string, print->to, print->notable, number, print->notable); fl_print_format("%[' detected.%]%r", print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -49,7 +49,7 @@ extern "C" { #endif // _di_controller_print_error_entry_item_invalid_ #ifndef _di_controller_print_error_entry_item_setting_support_not_option_ - f_status_t controller_print_error_entry_item_setting_support_not_option(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file) { + f_status_t controller_print_error_entry_item_setting_support_not_option(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t buffer, const f_range_t range, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -65,7 +65,7 @@ extern "C" { fl_print_format(f_string_format_Q_range_single_s.string, print->to, print->notable, buffer, range, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/error/entry/item.h b/sources/c/program/controller/main/print/error/entry/item.h index 859d690..6fcc3b9 100644 --- a/sources/c/program/controller/main/print/error/entry/item.h +++ b/sources/c/program/controller/main/print/error/entry/item.h @@ -38,9 +38,8 @@ extern "C" { * The item name. * @param message * A short message describing the reason for the failure. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -51,7 +50,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_item_failure_ - extern f_status_t controller_print_error_entry_item_failure(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t message, const f_string_t line_file); + extern f_status_t controller_print_error_entry_item_failure(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t message, const f_string_t debug); #endif // _di_controller_print_error_entry_item_failure_ /** @@ -74,9 +73,8 @@ extern "C" { * If FALSE, then this loads as an Exit. * @param number * The index position of the invalid item. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -87,7 +85,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_item_invalid_ - extern f_status_t controller_print_error_entry_item_invalid(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t number, const f_string_t line_file); + extern f_status_t controller_print_error_entry_item_invalid(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t number, const f_string_t debug); #endif // _di_controller_print_error_entry_item_invalid_ /** @@ -112,9 +110,8 @@ extern "C" { * The buffer containing the setting name. * @param range * The range within the buffer representing the setting name. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -125,7 +122,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_item_setting_support_not_option_ - extern f_status_t controller_print_error_entry_item_setting_support_not_option(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file); + extern f_status_t controller_print_error_entry_item_setting_support_not_option(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t buffer, const f_range_t range, const f_string_t debug); #endif // _di_controller_print_error_entry_item_setting_support_not_option_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/error/entry/setting.c b/sources/c/program/controller/main/print/error/entry/setting.c index a22d880..ad05e5f 100644 --- a/sources/c/program/controller/main/print/error/entry/setting.c +++ b/sources/c/program/controller/main/print/error/entry/setting.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_error_entry_setting_with_range_ - f_status_t controller_print_error_entry_setting_with_range(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t before, const f_range_t range, const f_string_t after, const f_string_t line_file) { + f_status_t controller_print_error_entry_setting_with_range(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t before, const f_range_t range, const f_string_t after, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -18,7 +18,7 @@ extern "C" { fl_print_format("%[%/Q%]", print->to, print->notable, cache->buffer_file, range, print->notable); fl_print_format("%['%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -27,7 +27,7 @@ extern "C" { #endif // _di_controller_print_error_entry_setting_with_range_ #ifndef _di_controller_print_error_entry_setting_ignored_ - f_status_t controller_print_error_entry_setting_ignored(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t line_file) { + f_status_t controller_print_error_entry_setting_ignored(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -40,7 +40,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, cache->action.name_action, print->notable); fl_print_format("%[' is being ignored.%]%r", print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -49,7 +49,7 @@ extern "C" { #endif // _di_controller_print_error_entry_setting_ignored_ #ifndef _di_controller_print_error_entry_setting_requires_between_ - f_status_t controller_print_error_entry_setting_requires_between(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t minimum, const f_number_unsigned_t maximum, const f_string_t line_file) { + f_status_t controller_print_error_entry_setting_requires_between(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t minimum, const f_number_unsigned_t maximum, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -66,7 +66,7 @@ extern "C" { fl_print_format(f_string_format_un_single_s.string, print->to, print->notable, maximum, print->notable); fl_print_format("%[ Content.%]%r", print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -75,7 +75,7 @@ extern "C" { #endif // _di_controller_print_error_entry_setting_requires_between_ #ifndef _di_controller_print_error_entry_setting_requires_exactly_ - f_status_t controller_print_error_entry_setting_requires_exactly(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t total, const f_string_t line_file) { + f_status_t controller_print_error_entry_setting_requires_exactly(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t total, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -90,7 +90,7 @@ extern "C" { fl_print_format(f_string_format_un_single_s.string, print->to, print->notable, total, print->notable); fl_print_format("%[ Content.%]%r", print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -99,7 +99,7 @@ extern "C" { #endif // _di_controller_print_error_entry_setting_requires_exactly_ #ifndef _di_controller_print_error_entry_setting_support_not_number_ - f_status_t controller_print_error_entry_setting_support_not_number(fl_print_t * const print, const uint8_t is_entry, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file) { + f_status_t controller_print_error_entry_setting_support_not_number(fl_print_t * const print, const uint8_t is_entry, const f_string_static_t buffer, const f_range_t range, const f_string_t debug) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -110,7 +110,11 @@ extern "C" { fl_print_format("%r%[%QThe %r setting '%]", print->to, f_string_eol_s, print->context, print->prefix, is_entry ? controller_entry_s : controller_exit_s, print->context); fl_print_format(f_string_format_Q_range_single_s.string, print->to, print->notable, buffer, range, print->notable); - fl_print_format("%[' is not a valid supported number.%]", print->to, print->context, print->context, f_string_eol_s); + fl_print_format("%[' is not a valid supported number", print->to, print->context, print->context); + + fll_error_print_debug(print, debug); + + fl_print_format(".%]%r", print->to, print->context, f_string_eol_s); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/error/entry/setting.h b/sources/c/program/controller/main/print/error/entry/setting.h index 813584c..963375e 100644 --- a/sources/c/program/controller/main/print/error/entry/setting.h +++ b/sources/c/program/controller/main/print/error/entry/setting.h @@ -43,9 +43,8 @@ extern "C" { * The range within the cache item buffer representing the value. * @param after * The string to add to the message being printed (after the value). - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -56,7 +55,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_setting_with_range_ - extern f_status_t controller_print_error_entry_setting_with_range(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t before, const f_range_t range, const f_string_t after, const f_string_t line_file); + extern f_status_t controller_print_error_entry_setting_with_range(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t before, const f_range_t range, const f_string_t after, const f_string_t debug); #endif // _di_controller_print_error_entry_setting_with_range_ /** @@ -77,9 +76,8 @@ extern "C" { * @param is_entry * If TRUE, then this loads as an Entry. * If FALSE, then this loads as an Exit. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -90,7 +88,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_setting_ignored_ - extern f_status_t controller_print_error_entry_setting_ignored(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t line_file); + extern f_status_t controller_print_error_entry_setting_ignored(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t debug); #endif // _di_controller_print_error_entry_setting_ignored_ /** @@ -115,9 +113,8 @@ extern "C" { * The expected minimum number of arguments. * @param maximum * The expected maximum number of arguments. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -128,7 +125,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_setting_requires_between_ - extern f_status_t controller_print_error_entry_setting_requires_between(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t minimum, const f_number_unsigned_t maximum, const f_string_t line_file); + extern f_status_t controller_print_error_entry_setting_requires_between(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t minimum, const f_number_unsigned_t maximum, const f_string_t debug); #endif // _di_controller_print_error_entry_setting_requires_between_ /** @@ -151,9 +148,8 @@ extern "C" { * If FALSE, then this loads as an Exit. * @param total * The expected number of arguments. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -164,7 +160,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_setting_requires_exactly_ - extern f_status_t controller_print_error_entry_setting_requires_exactly(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t total, const f_string_t line_file); + extern f_status_t controller_print_error_entry_setting_requires_exactly(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_number_unsigned_t total, const f_string_t debug); #endif // _di_controller_print_error_entry_setting_requires_exactly_ /** @@ -187,9 +183,8 @@ extern "C" { * The buffer containing the settings. * @param range * The range within the buffer representing the unsupported number. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -200,7 +195,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_entry_setting_support_not_number_ - extern f_status_t controller_print_error_entry_setting_support_not_number(fl_print_t * const print, const uint8_t is_entry, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file); + extern f_status_t controller_print_error_entry_setting_support_not_number(fl_print_t * const print, const uint8_t is_entry, const f_string_static_t buffer, const f_range_t range, const f_string_t debug); #endif // _di_controller_print_error_entry_setting_support_not_number_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/error/lock.c b/sources/c/program/controller/main/print/error/lock.c index c0855b0..d442344 100644 --- a/sources/c/program/controller/main/print/error/lock.c +++ b/sources/c/program/controller/main/print/error/lock.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_error_lock_critical_ - f_status_t controller_print_error_lock_critical(fl_print_t * const print, const f_status_t status, const uint8_t is_read, const f_string_t line_file) { + f_status_t controller_print_error_lock_critical(fl_print_t * const print, const f_status_t status, const uint8_t is_read, const f_string_t debug) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e || status == F_interrupt) return F_output_not; @@ -34,7 +34,15 @@ extern "C" { } } - fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); + if (debug) { + fll_error_print_debug(print, debug); + + //fl_print_format(f_string_format_sentence_end_basic_s.string, print->to, print->context, f_string_eol_s); + fl_print_format(".%]%r", print->to, print->context, f_string_eol_s); // @todo remove this and use above line once FLL has bug fixed where f_string_format_sentence_end_basic_s is missing. + } + else { + fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); + } controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/error/lock.h b/sources/c/program/controller/main/print/error/lock.h index 18b3f63..0d26c3a 100644 --- a/sources/c/program/controller/main/print/error/lock.h +++ b/sources/c/program/controller/main/print/error/lock.h @@ -35,9 +35,8 @@ extern "C" { * @param is_read * If TRUE, then this is for a read lock. * If FALSE, then this is for a write lock. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -48,7 +47,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_lock_critical_ - extern f_status_t controller_print_error_lock_critical(fl_print_t * const print, const f_status_t status, const uint8_t is_read, const f_string_t line_file); + extern f_status_t controller_print_error_lock_critical(fl_print_t * const print, const f_status_t status, const uint8_t is_read, const f_string_t debug); #endif // _di_controller_print_error_lock_critical_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/error/perform/pid.c b/sources/c/program/controller/main/print/error/perform/pid.c index 4d41077..6ff74aa 100644 --- a/sources/c/program/controller/main/print/error/perform/pid.c +++ b/sources/c/program/controller/main/print/error/perform/pid.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_error_perform_pid_file_create_ - f_status_t controller_print_error_perform_pid_file_create(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t is_entry, const f_string_t line_file) { + f_status_t controller_print_error_perform_pid_file_create(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t is_entry) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -18,7 +18,7 @@ extern "C" { f_file_stream_lock(print->to); - controller_print_error_entry_cache(print, &main->thread.cache.action, is_entry, line_file); + controller_print_error_entry_cache(print, &main->thread.cache.action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); } diff --git a/sources/c/program/controller/main/print/error/perform/pid.h b/sources/c/program/controller/main/print/error/perform/pid.h index d599152..04b2247 100644 --- a/sources/c/program/controller/main/print/error/perform/pid.h +++ b/sources/c/program/controller/main/print/error/perform/pid.h @@ -37,11 +37,6 @@ extern "C" { * @param is_entry * If TRUE, then this operates as an Entry. * If FALSE, then this operates as an Exit. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. - * - * Set to NULL to disable. * * @return * F_okay on success. @@ -50,7 +45,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_perform_pid_file_create_ - extern f_status_t controller_print_error_perform_pid_file_create(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t is_entry, const f_string_t line_file); + extern f_status_t controller_print_error_perform_pid_file_create(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t is_entry); #endif // _di_controller_print_error_perform_pid_file_create_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/error/rule.c b/sources/c/program/controller/main/print/error/rule.c index b38594b..27fd3bb 100644 --- a/sources/c/program/controller/main/print/error/rule.c +++ b/sources/c/program/controller/main/print/error/rule.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_error_rule_ - f_status_t controller_print_error_rule(fl_print_t * const print, controller_cache_action_t * const action, const f_status_t status, const f_string_t debug, const uint8_t fallback, const uint8_t item, const f_string_t line_file) { + f_status_t controller_print_error_rule(fl_print_t * const print, controller_cache_action_t * const action, const f_status_t status, const f_string_t debug, const uint8_t fallback, const uint8_t item) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -19,7 +19,7 @@ extern "C" { f_file_stream_lock(print->to); - controller_print_error_rule_cache(print, action, item, line_file); + controller_print_error_rule_cache(print, action, item, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -28,7 +28,7 @@ extern "C" { #endif // _di_controller_print_error_rule_ #ifndef _di_controller_print_error_rule_cache_ - f_status_t controller_print_error_rule_cache(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t item, const f_string_t line_file) { + f_status_t controller_print_error_rule_cache(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t item, const f_string_t debug) { if (!print || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -55,18 +55,17 @@ extern "C" { fl_print_format("Rule file '%]%[%Q%]%['", print->to, print->context, print->notable, action->name_file, print->notable, print->context); } - if (line_file) { - fl_print_format(" (file: %s)", print->to, line_file); - } + fll_error_print_debug(print, debug); - fl_print_format(".%]%r", print->to, print->context, f_string_eol_s); + //fl_print_format(f_string_format_sentence_end_basic_s.string, print->to, print->context, f_string_eol_s); + fl_print_format(".%]%r", print->to, print->context, f_string_eol_s); // @todo remove this and use above line once FLL has bug fixed where f_string_format_sentence_end_basic_s is missing. return F_okay; } #endif // _di_controller_print_error_rule_cache_ #ifndef _di_controller_print_error_rule_stack_already_ - f_status_t controller_print_error_rule_stack_already(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const uint8_t item, const f_string_t line_file) { + f_status_t controller_print_error_rule_stack_already(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const uint8_t item, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -79,7 +78,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format("%[' is already on the execution dependency stack, this recursion is prohibited.%]%r", print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, item, line_file); + controller_print_error_rule_cache(print, action, item, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/error/rule.h b/sources/c/program/controller/main/print/error/rule.h index 3427c1a..3b6a6d5 100644 --- a/sources/c/program/controller/main/print/error/rule.h +++ b/sources/c/program/controller/main/print/error/rule.h @@ -45,11 +45,6 @@ extern "C" { * @param item * If TRUE, then this error is associated with an item. * If FALSE, then this error is associated with a Rule setting. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. - * - * Set to NULL to disable. * * @return * F_okay on success. @@ -58,7 +53,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_ - extern f_status_t controller_print_error_rule(fl_print_t * const print, controller_cache_action_t * const action, const f_status_t status, const f_string_t debug, const uint8_t fallback, const uint8_t item, const f_string_t line_file); + extern f_status_t controller_print_error_rule(fl_print_t * const print, controller_cache_action_t * const action, const f_status_t status, const f_string_t debug, const uint8_t fallback, const uint8_t item); #endif // _di_controller_print_error_rule_ /** @@ -90,9 +85,8 @@ extern "C" { * @param item * If TRUE, then this error is associated with an item. * If FALSE, then this error is associated with a Rule setting. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -103,7 +97,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_cache_ - extern f_status_t controller_print_error_rule_cache(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t item, const f_string_t line_file); + extern f_status_t controller_print_error_rule_cache(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t item, const f_string_t debug); #endif // _di_controller_print_error_rule_cache_ /** @@ -126,9 +120,8 @@ extern "C" { * @param item * If TRUE, then this error is associated with an item. * If FALSE, then this error is associated with a Rule setting. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -139,7 +132,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_stack_already_ - extern f_status_t controller_print_error_rule_stack_already(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const uint8_t item, const f_string_t line_file); + extern f_status_t controller_print_error_rule_stack_already(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const uint8_t item, const f_string_t debug); #endif // _di_controller_print_error_rule_stack_already_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/error/rule/action.c b/sources/c/program/controller/main/print/error/rule/action.c index 5785fe3..0701aa0 100644 --- a/sources/c/program/controller/main/print/error/rule/action.c +++ b/sources/c/program/controller/main/print/error/rule/action.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_error_rule_action_first_ - f_status_t controller_print_error_rule_action_first(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file) { + f_status_t controller_print_error_rule_action_first(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -30,7 +30,7 @@ extern "C" { fl_print_format(f_string_format_r_single_s.string, print->to, print->notable, controller_thaw_s, print->notable, print->context); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -39,7 +39,7 @@ extern "C" { #endif // _di_controller_print_error_rule_action_first_ #ifndef _di_controller_print_error_rule_action_fss_0003_unsupported_ - f_status_t controller_print_error_rule_action_fss_0003_unsupported(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t line_file) { + f_status_t controller_print_error_rule_action_fss_0003_unsupported(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -52,7 +52,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -61,7 +61,7 @@ extern "C" { #endif // _di_controller_print_error_rule_action_fss_0003_unsupported_ #ifndef _di_controller_print_error_rule_action_missing_pid_ - f_status_t controller_print_error_rule_action_missing_pid(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const f_string_t line_file) { + f_status_t controller_print_error_rule_action_missing_pid(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const f_string_t debug) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -74,7 +74,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, alias, print->notable); fl_print_format("%[' is not designating a PID file.%]%r", print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -83,7 +83,7 @@ extern "C" { #endif // _di_controller_print_error_rule_action_missing_pid_ #ifndef _di_controller_print_error_rule_action_positive_number_not_ - f_status_t controller_print_error_rule_action_positive_number_not(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t buffer, const f_ranges_t contents, const f_number_unsigned_t index, const f_status_t status, const f_string_t line_file) { + f_status_t controller_print_error_rule_action_positive_number_not(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t buffer, const f_ranges_t contents, const f_number_unsigned_t index, const f_status_t status, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -115,7 +115,7 @@ extern "C" { } } - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -124,7 +124,7 @@ extern "C" { #endif // _di_controller_print_error_rule_action_positive_number_not_ #ifndef _di_controller_print_error_rule_action_second_ - f_status_t controller_print_error_rule_action_second(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file) { + f_status_t controller_print_error_rule_action_second(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -142,7 +142,7 @@ extern "C" { fl_print_format(f_string_format_r_single_s.string, print->to, print->notable, controller_thaw_s, print->notable, print->context); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -151,7 +151,7 @@ extern "C" { #endif // _di_controller_print_error_rule_action_second_ #ifndef _di_controller_print_error_rule_action_type_unsupported_ - f_status_t controller_print_error_rule_action_type_unsupported(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t type, const f_string_t message, const f_string_t line_file) { + f_status_t controller_print_error_rule_action_type_unsupported(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t type, const f_string_t message, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -164,7 +164,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, type, print->notable); fl_print_format("%[' while attempting to %S.%]%r", print->to, print->context, message, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -173,7 +173,7 @@ extern "C" { #endif // _di_controller_print_error_rule_action_type_unsupported_ #ifndef _di_controller_print_error_rule_action_unknown_ - f_status_t controller_print_error_rule_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file) { + f_status_t controller_print_error_rule_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t buffer, const f_range_t range, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -188,7 +188,7 @@ extern "C" { fl_print_format(f_string_format_Q_range_single_s.string, print->to, print->notable, buffer, range, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -197,7 +197,7 @@ extern "C" { #endif // _di_controller_print_error_rule_action_unknown_ #ifndef _di_controller_print_error_rule_action_unknown_execute_ - f_status_t controller_print_error_rule_action_unknown_execute(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t type, const f_number_unsigned_t total, const f_string_t line_file) { + f_status_t controller_print_error_rule_action_unknown_execute(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t type, const f_number_unsigned_t total, const f_string_t debug) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -229,7 +229,7 @@ extern "C" { fl_print_format("%[') to execute.%]%r", print->to, print->context, print->context, f_string_eol_s); } - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/error/rule/action.h b/sources/c/program/controller/main/print/error/rule/action.h index e24dfe6..c741985 100644 --- a/sources/c/program/controller/main/print/error/rule/action.h +++ b/sources/c/program/controller/main/print/error/rule/action.h @@ -39,9 +39,8 @@ extern "C" { * The buffer containing the setting name. * @param range * The range within the buffer representing the unknown Action name. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -52,7 +51,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_action_first_ - extern f_status_t controller_print_error_rule_action_first(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file); + extern f_status_t controller_print_error_rule_action_first(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug); #endif // _di_controller_print_error_rule_action_first_ /** @@ -72,9 +71,8 @@ extern "C" { * Must not be NULL. * @param alias * The Rule alias of the Rule that is missing the pid file designation. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -85,7 +83,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_action_fss_0003_unsupported_ - extern f_status_t controller_print_error_rule_action_fss_0003_unsupported(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t line_file); + extern f_status_t controller_print_error_rule_action_fss_0003_unsupported(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t debug); #endif // _di_controller_print_error_rule_action_fss_0003_unsupported_ /** @@ -105,9 +103,8 @@ extern "C" { * Must not be NULL. * @param alias * The Rule alias of the Rule that is missing the pid file designation. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -118,7 +115,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_action_missing_pid_ - extern f_status_t controller_print_error_rule_action_missing_pid(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const f_string_t line_file); + extern f_status_t controller_print_error_rule_action_missing_pid(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const f_string_t debug); #endif // _di_controller_print_error_rule_action_missing_pid_ /** @@ -146,9 +143,8 @@ extern "C" { * The index position in content representing the Content range for the buffer. * @param status * The status code of the error. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -159,7 +155,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_action_positive_number_not_ - extern f_status_t controller_print_error_rule_action_positive_number_not(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t buffer, const f_ranges_t contents, const f_number_unsigned_t index, const f_status_t status, const f_string_t line_file); + extern f_status_t controller_print_error_rule_action_positive_number_not(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t buffer, const f_ranges_t contents, const f_number_unsigned_t index, const f_status_t status, const f_string_t debug); #endif // _di_controller_print_error_rule_action_positive_number_not_ /** @@ -181,9 +177,8 @@ extern "C" { * The buffer containing the second Action. * @param range * The range within the buffer representing the second Action. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -194,7 +189,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_action_second_ - extern f_status_t controller_print_error_rule_action_second(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file); + extern f_status_t controller_print_error_rule_action_second(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug); #endif // _di_controller_print_error_rule_action_second_ /** @@ -216,9 +211,8 @@ extern "C" { * The Action type name. * @param message * A specific message on what is being attempted by the Action. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -229,7 +223,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_action_type_unsupported_ - extern f_status_t controller_print_error_rule_action_type_unsupported(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t type, const f_string_t message, const f_string_t line_file); + extern f_status_t controller_print_error_rule_action_type_unsupported(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t type, const f_string_t message, const f_string_t debug); #endif // _di_controller_print_error_rule_action_type_unsupported_ /** @@ -253,9 +247,8 @@ extern "C" { * The buffer containing the setting name. * @param range * The range within the buffer representing the unknown Action name. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -266,7 +259,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_action_unknown_ - extern f_status_t controller_print_error_rule_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file); + extern f_status_t controller_print_error_rule_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t buffer, const f_range_t range, const f_string_t debug); #endif // _di_controller_print_error_rule_action_unknown_ /** @@ -288,9 +281,8 @@ extern "C" { * The Rule name. * @param type * The Action type name. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -301,7 +293,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_action_unknown_execute_ - extern f_status_t controller_print_error_rule_action_unknown_execute(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t type, const f_number_unsigned_t total, const f_string_t line_file); + extern f_status_t controller_print_error_rule_action_unknown_execute(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_static_t type, const f_number_unsigned_t total, const f_string_t debug); #endif // _di_controller_print_error_rule_action_unknown_execute_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/error/rule/instance.c b/sources/c/program/controller/main/print/error/rule/instance.c index 889eeb1..66e41bc 100644 --- a/sources/c/program/controller/main/print/error/rule/instance.c +++ b/sources/c/program/controller/main/print/error/rule/instance.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_error_rule_instance_need_want_wish_ - f_status_t controller_print_error_rule_instance_need_want_wish(fl_print_t * const print, controller_instance_t * const instance, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t line_file) { + f_status_t controller_print_error_rule_instance_need_want_wish(fl_print_t * const print, controller_instance_t * const instance, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t debug) { if (!print || !print->custom || !instance) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -14,9 +14,9 @@ extern "C" { controller_lock_print(print->to, &main->thread); - controller_print_error_rule_item_need_want_wish(print, need_want_wish, value, why, line_file); + controller_print_error_rule_item_need_want_wish(print, need_want_wish, value, why, debug); - controller_print_error_rule_cache(print, &instance->cache.action, F_true, line_file); + controller_print_error_rule_cache(print, &instance->cache.action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/error/rule/instance.h b/sources/c/program/controller/main/print/error/rule/instance.h index 9cb0ca2..4544d74 100644 --- a/sources/c/program/controller/main/print/error/rule/instance.h +++ b/sources/c/program/controller/main/print/error/rule/instance.h @@ -38,9 +38,8 @@ extern "C" { * The value that is the error or warning. * @param why * A short explanation on why this is an error or warning. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -51,7 +50,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_instance_need_want_wish_ - extern f_status_t controller_print_error_rule_instance_need_want_wish(fl_print_t * const print, controller_instance_t * const instance, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t line_file); + extern f_status_t controller_print_error_rule_instance_need_want_wish(fl_print_t * const print, controller_instance_t * const instance, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t debug); #endif // _di_controller_print_error_rule_instance_need_want_wish_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/error/rule/item.c b/sources/c/program/controller/main/print/error/rule/item.c index 167e399..8d7831a 100644 --- a/sources/c/program/controller/main/print/error/rule/item.c +++ b/sources/c/program/controller/main/print/error/rule/item.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_error_rule_item_ - f_status_t controller_print_error_rule_item(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t item, const f_status_t status, const f_string_t line_file) { + f_status_t controller_print_error_rule_item(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t item, const f_status_t status, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e || status == F_interrupt) return F_output_not; @@ -14,7 +14,7 @@ extern "C" { controller_lock_print(print->to, &main->thread); - controller_print_error_rule_cache(print, action, item, line_file); + controller_print_error_rule_cache(print, action, item, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -23,7 +23,7 @@ extern "C" { #endif // _di_controller_print_error_rule_item_ #ifndef _di_controller_print_error_rule_item_execute_ - f_status_t controller_print_error_rule_item_execute(fl_print_t * const print, const uint8_t script_is, const f_string_static_t name, const f_status_t status, const int result, const f_string_t line_file) { + f_status_t controller_print_error_rule_item_execute(fl_print_t * const print, const uint8_t script_is, const f_string_static_t name, const f_status_t status, const int result, const f_string_t debug) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -277,7 +277,7 @@ extern "C" { #endif // _di_controller_print_error_rule_item_execute_ #ifndef _di_controller_print_error_rule_item_execute_none_ - f_status_t controller_print_error_rule_item_execute_none(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const uint8_t no_action, const f_string_t line_file) { + f_status_t controller_print_error_rule_item_execute_none(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const uint8_t no_action, const f_string_t debug) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -301,7 +301,7 @@ extern "C" { #endif // _di_controller_print_error_rule_item_execute_none_ #ifndef _di_controller_print_error_rule_item_need_want_wish_ - f_status_t controller_print_error_rule_item_need_want_wish(fl_print_t * const print, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t line_file) { + f_status_t controller_print_error_rule_item_need_want_wish(fl_print_t * const print, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t debug) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -319,7 +319,7 @@ extern "C" { #endif // _di_controller_print_error_rule_item_need_want_wish_ #ifndef _di_controller_print_error_rule_item_rule_not_loaded_ - f_status_t controller_print_error_rule_item_rule_not_loaded(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const f_string_t line_file) { + f_status_t controller_print_error_rule_item_rule_not_loaded(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const f_string_t debug) { if (!print || !print->custom) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_error_e) return F_output_not; @@ -332,7 +332,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, alias, print->notable); fl_print_format("%[' is no longer loaded.%]%r", print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_false, line_file); + controller_print_error_rule_cache(print, action, F_false, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/error/rule/item.h b/sources/c/program/controller/main/print/error/rule/item.h index 0b1481a..9db4b5f 100644 --- a/sources/c/program/controller/main/print/error/rule/item.h +++ b/sources/c/program/controller/main/print/error/rule/item.h @@ -38,9 +38,8 @@ extern "C" { * If FALSE, then this error is associated with a Rule setting. * @param status * The status code representing the failure (without the error bit set). - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -51,7 +50,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_item_ - extern f_status_t controller_print_error_rule_item(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t item, const f_status_t status, const f_string_t line_file); + extern f_status_t controller_print_error_rule_item(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t item, const f_status_t status, const f_string_t debug); #endif // _di_controller_print_error_rule_item_ /** @@ -76,9 +75,8 @@ extern "C" { * The status code representing the failure (without the error bit set). * @param result * The status code result. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -89,7 +87,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_item_execute_ - extern f_status_t controller_print_error_rule_item_execute(fl_print_t * const print, const uint8_t script_is, const f_string_static_t name, const f_status_t status, const int result, const f_string_t line_file); + extern f_status_t controller_print_error_rule_item_execute(fl_print_t * const print, const uint8_t script_is, const f_string_static_t name, const f_status_t status, const int result, const f_string_t debug); #endif // _di_controller_print_error_rule_item_execute_ /** @@ -112,9 +110,8 @@ extern "C" { * @param no_action * If TRUE, then nothing to execute because there is no item actions. * If FALSE, then nothing to execute because there is no items. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -125,7 +122,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_item_execute_none_ - extern f_status_t controller_print_error_rule_item_execute_none(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const uint8_t no_action, const f_string_t line_file); + extern f_status_t controller_print_error_rule_item_execute_none(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const uint8_t no_action, const f_string_t debug); #endif // _di_controller_print_error_rule_item_execute_none_ /** @@ -146,9 +143,8 @@ extern "C" { * The value that is the error or warning. * @param why * A short explanation on why this is an error or warning. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -159,7 +155,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_item_need_want_wish_ - extern f_status_t controller_print_error_rule_item_need_want_wish(fl_print_t * const print, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t line_file); + extern f_status_t controller_print_error_rule_item_need_want_wish(fl_print_t * const print, const f_string_static_t need_want_wish, const f_string_static_t value, const f_string_t why, const f_string_t debug); #endif // _di_controller_print_error_rule_item_need_want_wish_ /** @@ -179,9 +175,8 @@ extern "C" { * Must not be NULL. * @param alias * The Rule alias of the Rule that is not loaded. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -192,7 +187,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_item_rule_not_loaded_ - extern f_status_t controller_print_error_rule_item_rule_not_loaded(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const f_string_t line_file); + extern f_status_t controller_print_error_rule_item_rule_not_loaded(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t alias, const f_string_t debug); #endif // _di_controller_print_error_rule_item_rule_not_loaded_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/error/rule/setting.c b/sources/c/program/controller/main/print/error/rule/setting.c index c87b7e3..7db40c7 100644 --- a/sources/c/program/controller/main/print/error/rule/setting.c +++ b/sources/c/program/controller/main/print/error/rule/setting.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_error_rule_setting_ - f_status_t controller_print_error_rule_setting(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t message, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t message, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not; @@ -16,7 +16,7 @@ extern "C" { fl_print_format("%r%[%QRule setting %S.%]%r", print->to, f_string_eol_s, print->context, print->prefix, message, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_false, line_file); + controller_print_error_rule_cache(print, action, F_false, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -25,7 +25,7 @@ extern "C" { #endif // _di_controller_print_error_rule_setting_ #ifndef _di_controller_print_error_rule_setting_reason_name_ - f_status_t controller_print_error_rule_setting_reason_name(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t reason, const f_string_static_t name, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting_reason_name(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t reason, const f_string_static_t name, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not; @@ -38,7 +38,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_false, line_file); + controller_print_error_rule_cache(print, action, F_false, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -47,7 +47,7 @@ extern "C" { #endif // _di_controller_print_error_rule_setting_reason_name_ #ifndef _di_controller_print_error_rule_setting_with_range_ - f_status_t controller_print_error_rule_setting_with_range(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t before, const f_string_static_t buffer, const f_range_t range_content, const f_string_t after, const f_number_unsigned_t start, const f_number_unsigned_t line, f_state_t * const state, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting_with_range(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t before, const f_string_static_t buffer, const f_range_t range_content, const f_string_t after, const f_number_unsigned_t start, const f_number_unsigned_t line, f_state_t * const state, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not; @@ -62,7 +62,7 @@ extern "C" { fl_print_format(f_string_format_Q_range_single_s.string, print->to, print->notable, buffer, range_content, print->notable); fl_print_format("%['%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_false, line_file); + controller_print_error_rule_cache(print, action, F_false, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -71,7 +71,7 @@ extern "C" { #endif // _di_controller_print_error_rule_setting_with_range_ #ifndef _di_controller_print_error_rule_setting_mapping_ - f_status_t controller_print_error_rule_setting_mapping(fl_print_t * const print, const f_string_static_t name, const f_string_map_t map, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting_mapping(fl_print_t * const print, const f_string_static_t name, const f_string_map_t map, const f_string_t debug) { if (!print || !print->custom) return F_status_set_error(F_output_not); @@ -96,7 +96,7 @@ extern "C" { #endif // _di_controller_print_error_rule_setting_mapping_ #ifndef _di_controller_print_error_rule_setting_name_invalid_ - f_status_t controller_print_error_rule_setting_name_invalid(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting_name_invalid(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not; @@ -109,7 +109,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format("%[', there must be at least 1 graph character.%]%r", print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_false, line_file); + controller_print_error_rule_cache(print, action, F_false, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -118,7 +118,7 @@ extern "C" { #endif // _di_controller_print_error_rule_setting_name_invalid_ #ifndef _di_controller_print_error_rule_setting_number_invalid_nice_ - f_status_t controller_print_error_rule_setting_number_invalid_nice(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting_number_invalid_nice(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not; @@ -133,7 +133,7 @@ extern "C" { fl_print_format("%[-20%] %[and%]", print->to, print->notable, print->notable, print->context, print->context); fl_print_format("%[19%] %[are allowed.%]%r", print->to, print->notable, print->notable, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_false, line_file); + controller_print_error_rule_cache(print, action, F_false, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -142,7 +142,7 @@ extern "C" { #endif // _di_controller_print_error_rule_setting_number_invalid_nice_ #ifndef _di_controller_print_error_rule_setting_number_invalid_on_first_ - f_status_t controller_print_error_rule_setting_number_invalid_on_first(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting_number_invalid_on_first(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not; @@ -158,7 +158,7 @@ extern "C" { fl_print_format("%[' but only %r, %r, %r, %r, %r", print->to, print->context, controller_freeze_s, controller_kill_s, controller_pause_s, controller_reload_s, controller_restart_s); fl_print_format("%r, %r, %r, and %r are supported.%]%r", print->to, controller_resume_s, controller_start_s, controller_stop_s, controller_thaw_s, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_false, line_file); + controller_print_error_rule_cache(print, action, F_false, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -167,7 +167,7 @@ extern "C" { #endif // _di_controller_print_error_rule_setting_number_invalid_on_first_ #ifndef _di_controller_print_error_rule_setting_number_invalid_on_second_ - f_status_t controller_print_error_rule_setting_number_invalid_on_second(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting_number_invalid_on_second(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not; @@ -182,7 +182,7 @@ extern "C" { fl_print_format(f_string_format_Q_range_single_s.string, print->to, print->notable, buffer, range, print->notable); fl_print_format("%[' but only supports %r, %r, and %r.%]%r", print->to, print->context, controller_need_s, controller_want_s, controller_wish_s, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_false, line_file); + controller_print_error_rule_cache(print, action, F_false, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -191,7 +191,7 @@ extern "C" { #endif // _di_controller_print_error_rule_setting_number_invalid_on_second_ #ifndef _di_controller_print_error_rule_setting_number_invalid_scheduler_ - f_status_t controller_print_error_rule_setting_number_invalid_scheduler(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const uint8_t zero_only, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting_number_invalid_scheduler(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const uint8_t zero_only, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not; @@ -215,7 +215,7 @@ extern "C" { fl_print_format(" allowed for the designated scheduler.%]%r", print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_false, line_file); + controller_print_error_rule_cache(print, action, F_false, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -224,7 +224,7 @@ extern "C" { #endif // _di_controller_print_error_rule_setting_number_invalid_scheduler_ #ifndef _di_controller_print_error_rule_setting_number_invalid_timeout_ - f_status_t controller_print_error_rule_setting_number_invalid_timeout(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting_number_invalid_timeout(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not; @@ -239,7 +239,7 @@ extern "C" { fl_print_format(f_string_format_Q_range_single_s.string, print->to, print->notable, buffer, range, print->notable); fl_print_format("%[' but only %r, %r, and %r are supported.%]%r", print->to, print->context, controller_kill_s, controller_start_s, controller_stop_s, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_false, line_file); + controller_print_error_rule_cache(print, action, F_false, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -248,7 +248,7 @@ extern "C" { #endif // _di_controller_print_error_rule_setting_number_invalid_timeout_ #ifndef _di_controller_print_error_rule_setting_value_ - f_status_t controller_print_error_rule_setting_value(fl_print_t * const print, const f_string_static_t name, const f_string_static_t name_sub, const f_string_static_t value, const f_string_t suffix, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting_value(fl_print_t * const print, const f_string_static_t name, const f_string_static_t name_sub, const f_string_static_t value, const f_string_t suffix, const f_string_t debug) { if (!print || !print->custom) return F_status_set_error(F_output_not); @@ -281,7 +281,7 @@ extern "C" { #endif // _di_controller_print_error_rule_setting_value_ #ifndef _di_controller_print_error_rule_setting_values_ - f_status_t controller_print_error_rule_setting_values(fl_print_t * const print, controller_cache_t * const cache, const f_string_static_t name, const f_number_unsigned_t index, const f_string_t line_file) { + f_status_t controller_print_error_rule_setting_values(fl_print_t * const print, controller_cache_t * const cache, const f_string_static_t name, const f_number_unsigned_t index, const f_string_t debug) { if (!print || !print->custom) return F_status_set_error(F_output_not); diff --git a/sources/c/program/controller/main/print/error/rule/setting.h b/sources/c/program/controller/main/print/error/rule/setting.h index f7c9916..f2516ad 100644 --- a/sources/c/program/controller/main/print/error/rule/setting.h +++ b/sources/c/program/controller/main/print/error/rule/setting.h @@ -38,9 +38,8 @@ extern "C" { * Must not be NULL. * @param message * The string to append to the message being printed. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -51,7 +50,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_setting_ - extern f_status_t controller_print_error_rule_setting(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t message, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t message, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_ /** @@ -73,9 +72,8 @@ extern "C" { * The reason for the error. * @param name * The name or value of the setting associated with the error. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -86,7 +84,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_setting_reason_name_ - extern f_status_t controller_print_error_rule_setting_reason_name(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t reason, const f_string_static_t name, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting_reason_name(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t reason, const f_string_static_t name, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_reason_name_ /** @@ -127,9 +125,8 @@ extern "C" { * The state.status is modified. * * Must not be NULL. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -140,7 +137,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_setting_with_range_ - extern f_status_t controller_print_error_rule_setting_with_range(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t before, const f_string_static_t buffer, const f_range_t range_content, const f_string_t after, const f_number_unsigned_t start, const f_number_unsigned_t line, f_state_t * const state, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting_with_range(fl_print_t * const print, controller_cache_action_t * const action, const f_string_t before, const f_string_static_t buffer, const f_range_t range_content, const f_string_t after, const f_number_unsigned_t start, const f_number_unsigned_t line, f_state_t * const state, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_with_range_ /** @@ -154,9 +151,8 @@ extern "C" { * The Object name of the setting being populated. * @param map * The map being applied. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -167,7 +163,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_setting_mapping_ - extern f_status_t controller_print_error_rule_setting_mapping(fl_print_t * const print, const f_string_static_t name, const f_string_map_t map, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting_mapping(fl_print_t * const print, const f_string_static_t name, const f_string_map_t map, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_mapping_ /** @@ -189,14 +185,13 @@ extern "C" { * F_output_not on success, but no printing is performed. * * F_output_not (with error bit) if setting is NULL. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. */ #ifndef _di_controller_print_error_rule_setting_name_invalid_ - extern f_status_t controller_print_error_rule_setting_name_invalid(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting_name_invalid(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_name_invalid_ /** @@ -214,9 +209,8 @@ extern "C" { * The buffer containing the invalid number. * @param range * The ranger within the buffer representing the invalid number. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -227,7 +221,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_setting_number_invalid_nice_ - extern f_status_t controller_print_error_rule_setting_number_invalid_nice(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting_number_invalid_nice(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_number_invalid_nice_ /** @@ -245,9 +239,8 @@ extern "C" { * The buffer containing the invalid value. * @param range * The ranger within the buffer representing the invalid value. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -258,7 +251,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_setting_number_invalid_on_first_ - extern f_status_t controller_print_error_rule_setting_number_invalid_on_first(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting_number_invalid_on_first(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_number_invalid_on_first_ /** @@ -276,9 +269,8 @@ extern "C" { * The buffer containing the invalid value. * @param range * The ranger within the buffer representing the invalid value. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -289,7 +281,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_setting_number_invalid_on_second_ - extern f_status_t controller_print_error_rule_setting_number_invalid_on_second(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting_number_invalid_on_second(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_number_invalid_on_second_ /** @@ -310,9 +302,8 @@ extern "C" { * @param zero_only * If TRUE, then only 0 is supported. * If FALSE, then only the range 1 through 99 is supported. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -323,7 +314,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_setting_number_invalid_scheduler_ - extern f_status_t controller_print_error_rule_setting_number_invalid_scheduler(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const uint8_t zero_only, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting_number_invalid_scheduler(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const uint8_t zero_only, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_number_invalid_scheduler_ /** @@ -341,9 +332,8 @@ extern "C" { * The buffer containing the invalid value. * @param range * The ranger within the buffer representing the invalid value. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -354,7 +344,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_setting_number_invalid_timeout_ - extern f_status_t controller_print_error_rule_setting_number_invalid_timeout(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting_number_invalid_timeout(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t buffer, const f_range_t range, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_number_invalid_timeout_ /** @@ -373,9 +363,8 @@ extern "C" { * The value being set. * @param suffix * An additional message to append at the end (before the final period). - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -386,7 +375,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_setting_value_ - extern f_status_t controller_print_error_rule_setting_value(fl_print_t * const print, const f_string_static_t name, const f_string_static_t name_sub, const f_string_static_t value, const f_string_t suffix, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting_value(fl_print_t * const print, const f_string_static_t name, const f_string_static_t name_sub, const f_string_static_t value, const f_string_t suffix, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_value_ /** @@ -406,9 +395,8 @@ extern "C" { * The Object name of the setting being populated. * @param index * Position within the content_actions range cache array. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -419,7 +407,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_error_rule_setting_values_ - extern f_status_t controller_print_error_rule_setting_values(fl_print_t * const print, controller_cache_t * const cache, const f_string_static_t name, const f_number_unsigned_t index, const f_string_t line_file); + extern f_status_t controller_print_error_rule_setting_values(fl_print_t * const print, controller_cache_t * const cache, const f_string_static_t name, const f_number_unsigned_t index, const f_string_t debug); #endif // _di_controller_print_error_rule_setting_values_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/warning/entry/action.c b/sources/c/program/controller/main/print/warning/entry/action.c index c496547..4a36cbd 100644 --- a/sources/c/program/controller/main/print/warning/entry/action.c +++ b/sources/c/program/controller/main/print/warning/entry/action.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_warning_entry_action_failsafe_twice_ - f_status_t controller_print_warning_entry_action_failsafe_twice(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t line_file) { + f_status_t controller_print_warning_entry_action_failsafe_twice(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -16,7 +16,7 @@ extern "C" { fl_print_format("%r%[%QFailsafe may not be specified when running in failsafe, ignoring.%]%r", print->to, f_string_eol_s, print->context, print->prefix, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -25,7 +25,7 @@ extern "C" { #endif // _di_controller_print_warning_entry_action_failsafe_twice_ #ifndef _di_controller_print_warning_entry_action_multiple_ - f_status_t controller_print_warning_entry_action_multiple(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t line_file) { + f_status_t controller_print_warning_entry_action_multiple(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -38,7 +38,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format("%[' %r Item Actions detected; only the first will be used.%]%r", print->to, print->context, is_entry ? controller_entry_s : controller_exit_s, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -47,7 +47,7 @@ extern "C" { #endif // _di_controller_print_warning_entry_action_multiple_ #ifndef _di_controller_print_warning_entry_action_unknown_ - f_status_t controller_print_warning_entry_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_string_t line_file) { + f_status_t controller_print_warning_entry_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -60,7 +60,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/warning/entry/action.h b/sources/c/program/controller/main/print/warning/entry/action.h index e8f7912..66433e5 100644 --- a/sources/c/program/controller/main/print/warning/entry/action.h +++ b/sources/c/program/controller/main/print/warning/entry/action.h @@ -34,9 +34,8 @@ extern "C" { * @param is_entry * If TRUE, then this loads as an Entry. * If FALSE, then this loads as an Exit. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -47,7 +46,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_warning_entry_action_failsafe_twice_ - extern f_status_t controller_print_warning_entry_action_failsafe_twice(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t line_file); + extern f_status_t controller_print_warning_entry_action_failsafe_twice(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_t debug); #endif // _di_controller_print_warning_entry_action_failsafe_twice_ /** @@ -70,9 +69,8 @@ extern "C" { * If FALSE, then this loads as an Exit. * @param name * The item name. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -83,7 +81,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_warning_entry_action_multiple_ - extern f_status_t controller_print_warning_entry_action_multiple(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t line_file); + extern f_status_t controller_print_warning_entry_action_multiple(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug); #endif // _di_controller_print_warning_entry_action_multiple_ /** @@ -105,9 +103,8 @@ extern "C" { * The parameter name whose value is unknown. * @param unknown * The unknown value. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -118,7 +115,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_warning_entry_action_unknown_ - extern f_status_t controller_print_warning_entry_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_string_t line_file); + extern f_status_t controller_print_warning_entry_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug); #endif // _di_controller_print_warning_entry_action_unknown_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/warning/entry/item.c b/sources/c/program/controller/main/print/warning/entry/item.c index 8acfed2..6d012ad 100644 --- a/sources/c/program/controller/main/print/warning/entry/item.c +++ b/sources/c/program/controller/main/print/warning/entry/item.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_warning_entry_item_duplicate_ignore_ - f_status_t controller_print_warning_entry_item_duplicate_ignore(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t line_file) { + f_status_t controller_print_warning_entry_item_duplicate_ignore(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -18,7 +18,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/warning/entry/item.h b/sources/c/program/controller/main/print/warning/entry/item.h index 545c1d3..23442c1 100644 --- a/sources/c/program/controller/main/print/warning/entry/item.h +++ b/sources/c/program/controller/main/print/warning/entry/item.h @@ -36,9 +36,8 @@ extern "C" { * If FALSE, then this loads as an Exit. * @param name * The item name. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -49,7 +48,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_warning_entry_item_duplicate_ignore_ - extern f_status_t controller_print_warning_entry_item_duplicate_ignore(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t line_file); + extern f_status_t controller_print_warning_entry_item_duplicate_ignore(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug); #endif // _di_controller_print_warning_entry_item_duplicate_ignore_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/warning/entry/setting.c b/sources/c/program/controller/main/print/warning/entry/setting.c index e72f9a6..fb7cc10 100644 --- a/sources/c/program/controller/main/print/warning/entry/setting.c +++ b/sources/c/program/controller/main/print/warning/entry/setting.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_warning_entry_setting_unknown_action_ - f_status_t controller_print_warning_entry_setting_unknown_action(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t line_file) { + f_status_t controller_print_warning_entry_setting_unknown_action(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -18,7 +18,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); @@ -27,7 +27,7 @@ extern "C" { #endif // _di_controller_print_warning_entry_setting_unknown_action_ #ifndef _di_controller_print_warning_entry_setting_unknown_action_value_ - f_status_t controller_print_warning_entry_setting_unknown_action_value(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file) { + f_status_t controller_print_warning_entry_setting_unknown_action_value(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_static_t buffer, const f_range_t range, const f_string_t debug) { if (!print || !print->custom || !cache) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -42,7 +42,7 @@ extern "C" { fl_print_format(f_string_format_Q_range_single_s.string, print->to, print->notable, buffer, range, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_entry_cache(print, &cache->action, is_entry, line_file); + controller_print_error_entry_cache(print, &cache->action, is_entry, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/warning/entry/setting.h b/sources/c/program/controller/main/print/warning/entry/setting.h index 9fa231a..2f2baf3 100644 --- a/sources/c/program/controller/main/print/warning/entry/setting.h +++ b/sources/c/program/controller/main/print/warning/entry/setting.h @@ -38,9 +38,8 @@ extern "C" { * If FALSE, then this loads as an Exit. * @param name * The parameter name whose value is unknown. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -51,7 +50,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_warning_entry_setting_unknown_action_ - extern f_status_t controller_print_warning_entry_setting_unknown_action(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t line_file); + extern f_status_t controller_print_warning_entry_setting_unknown_action(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_t debug); #endif // _di_controller_print_warning_entry_setting_unknown_action_ /** @@ -78,9 +77,8 @@ extern "C" { * The buffer containing the unknown value. * @param range * The range within the buffer representing the unknown value. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -91,7 +89,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_warning_entry_setting_unknown_action_value_ - extern f_status_t controller_print_warning_entry_setting_unknown_action_value(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_static_t buffer, const f_range_t range, const f_string_t line_file); + extern f_status_t controller_print_warning_entry_setting_unknown_action_value(fl_print_t * const print, controller_cache_t * const cache, const uint8_t is_entry, const f_string_static_t name, const f_string_static_t buffer, const f_range_t range, const f_string_t debug); #endif // _di_controller_print_warning_entry_setting_unknown_action_value_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/warning/rule/action.c b/sources/c/program/controller/main/print/warning/rule/action.c index 037e55f..0dda5f3 100644 --- a/sources/c/program/controller/main/print/warning/rule/action.c +++ b/sources/c/program/controller/main/print/warning/rule/action.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_warning_rule_action_unknown_ - f_status_t controller_print_warning_rule_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t line_file) { + f_status_t controller_print_warning_rule_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -18,7 +18,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/warning/rule/action.h b/sources/c/program/controller/main/print/warning/rule/action.h index 289afdb..9677970 100644 --- a/sources/c/program/controller/main/print/warning/rule/action.h +++ b/sources/c/program/controller/main/print/warning/rule/action.h @@ -33,9 +33,8 @@ extern "C" { * Must not be NULL. * @param name * The Action name that is unknown. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -46,7 +45,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_warning_rule_action_unknown_ - extern f_status_t controller_print_warning_rule_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t line_file); + extern f_status_t controller_print_warning_rule_action_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t debug); #endif // _di_controller_print_warning_rule_action_unknown_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/warning/rule/item.c b/sources/c/program/controller/main/print/warning/rule/item.c index af2821d..16f7e45 100644 --- a/sources/c/program/controller/main/print/warning/rule/item.c +++ b/sources/c/program/controller/main/print/warning/rule/item.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_warning_rule_item_unknown_ - f_status_t controller_print_warning_rule_item_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t line_file) { + f_status_t controller_print_warning_rule_item_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -18,7 +18,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/warning/rule/item.h b/sources/c/program/controller/main/print/warning/rule/item.h index 2110996..f735610 100644 --- a/sources/c/program/controller/main/print/warning/rule/item.h +++ b/sources/c/program/controller/main/print/warning/rule/item.h @@ -33,9 +33,8 @@ extern "C" { * Must not be NULL. * @param name * The Item name that is unknown. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -46,7 +45,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_warning_rule_item_unknown_ - extern f_status_t controller_print_warning_rule_item_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t line_file); + extern f_status_t controller_print_warning_rule_item_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t debug); #endif // _di_controller_print_warning_rule_item_unknown_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/print/warning/rule/setting.c b/sources/c/program/controller/main/print/warning/rule/setting.c index 151290b..4fb4a34 100644 --- a/sources/c/program/controller/main/print/warning/rule/setting.c +++ b/sources/c/program/controller/main/print/warning/rule/setting.c @@ -5,7 +5,7 @@ extern "C" { #endif #ifndef _di_controller_print_warning_rule_setting_unknown_ - f_status_t controller_print_warning_rule_setting_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t what, const f_string_t line_file) { + f_status_t controller_print_warning_rule_setting_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t what, const f_string_t debug) { if (!print || !print->custom || !action) return F_status_set_error(F_output_not); if (print->verbosity < f_console_verbosity_debug_e) return F_output_not; @@ -18,7 +18,7 @@ extern "C" { fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable); fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s); - controller_print_error_rule_cache(print, action, F_true, line_file); + controller_print_error_rule_cache(print, action, F_true, debug); controller_unlock_print_flush(print->to, &main->thread); diff --git a/sources/c/program/controller/main/print/warning/rule/setting.h b/sources/c/program/controller/main/print/warning/rule/setting.h index 70ceda9..81ca71e 100644 --- a/sources/c/program/controller/main/print/warning/rule/setting.h +++ b/sources/c/program/controller/main/print/warning/rule/setting.h @@ -33,9 +33,8 @@ extern "C" { * Must not be NULL. * @param name * The Item name that is unknown. - * @param line_file - * The line number and file name associated with the error. - * Set this to macros like F_status_debug_source_d. + * @param debug + * (optional) The debug details, such as file, line number, and function. * * Set to NULL to disable. * @@ -46,7 +45,7 @@ extern "C" { * F_output_not (with error bit) if setting is NULL. */ #ifndef _di_controller_print_warning_rule_setting_unknown_ - extern f_status_t controller_print_warning_rule_setting_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t what, const f_string_t line_file); + extern f_status_t controller_print_warning_rule_setting_unknown(fl_print_t * const print, controller_cache_action_t * const action, const f_string_static_t name, const f_string_t what, const f_string_t debug); #endif // _di_controller_print_warning_rule_setting_unknown_ #ifdef __cplusplus diff --git a/sources/c/program/controller/main/process.c b/sources/c/program/controller/main/process.c index f2f2b6a..f924646 100644 --- a/sources/c/program/controller/main/process.c +++ b/sources/c/program/controller/main/process.c @@ -63,7 +63,7 @@ extern "C" { } else { #ifdef _support_controller_controlfile_ - // @todo load the controlfile/initfile and start the thread. controller_main_flag_loaded_d + status = controller_file_load_controlfile(main); // @todo the main program needs to check if the controlfile exists and do not error when no entry is specified, a custom settings path can be used to override the location of the controlfile of PWD. #endif // _support_controller_controlfile_ if (F_status_is_error_not(status)) { diff --git a/sources/c/program/controller/main/rule/execute.c b/sources/c/program/controller/main/rule/execute.c index a147736..75ce439 100644 --- a/sources/c/program/controller/main/rule/execute.c +++ b/sources/c/program/controller/main/rule/execute.c @@ -248,7 +248,7 @@ extern "C" { status = controller_rule_expand(main, instance->rule.items.array[i].actions.array[j], instance); if (F_status_is_error(status)) { - controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_false); break; } @@ -278,7 +278,7 @@ extern "C" { status = controller_rule_expand(main, instance->rule.items.array[i].actions.array[j], instance); if (F_status_is_error(status)) { - controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_false); break; } @@ -320,7 +320,7 @@ extern "C" { status = controller_rule_expand(main, instance->rule.items.array[i].actions.array[j], instance); if (F_status_is_error(status)) { - controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_false); break; } @@ -358,7 +358,7 @@ extern "C" { status = controller_rule_expand(main, instance->rule.items.array[i].actions.array[j], instance); if (F_status_is_error(status)) { - controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_false); break; } diff --git a/sources/c/program/controller/main/rule/instance.c b/sources/c/program/controller/main/rule/instance.c index e5b54a0..f824bd7 100644 --- a/sources/c/program/controller/main/rule/instance.c +++ b/sources/c/program/controller/main/rule/instance.c @@ -42,7 +42,7 @@ extern "C" { } if (F_status_is_error(status)) { - controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_true, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_true); return status; } @@ -50,7 +50,7 @@ extern "C" { status = f_string_dynamic_append(instance->rule.alias, &instance->cache.action.name_file); if (F_status_is_error(status)) { - controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_true, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_true); return status; } @@ -62,7 +62,7 @@ extern "C" { } if (F_status_is_error(status)) { - controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_true, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &instance->cache.action, F_status_set_fine(status), F_status_debug_source_d, F_true, F_true); return status; } diff --git a/sources/c/program/controller/main/rule/read.c b/sources/c/program/controller/main/rule/read.c index 9381a96..2505420 100644 --- a/sources/c/program/controller/main/rule/read.c +++ b/sources/c/program/controller/main/rule/read.c @@ -176,33 +176,24 @@ extern "C" { if (!(main->setting.flag & controller_main_flag_loaded_d)) { state.status = controller_file_load(main, F_true, controller_rules_s, rule->alias, controller_rule_s); - /* @todo, how should this be handled? - * Load the files at the start, so that this does not need to be loaded here? - f_range_t offset = f_range_t_initialize; + if (F_status_is_error_not(state.status)) { + rule->timestamp = cache->timestamp; - offset = main->thread.cache.object_actions.array[i]; + if (cache->buffer_file.used) { + f_range_t range = macro_f_range_t_initialize_2(cache->buffer_file.used); - if (main->setting.flag & controller_main_flag_loaded_d) { - }*/ - } - - if (F_status_is_error_not(state.status)) { - rule->timestamp = cache->timestamp; - - if (cache->buffer_file.used) { - f_range_t range = macro_f_range_t_initialize_2(cache->buffer_file.used); - - fll_fss_basic_list_read(cache->buffer_file, &range, &cache->object_items, &cache->content_items, &cache->delimits, 0, &cache->comments, &state); - - if (F_status_is_error(state.status)) { - controller_print_error_status(&main->program.error, F_status_debug_source_d, F_status_set_fine(state.status)); - } - else { - f_fss_apply_delimit(cache->delimits, &cache->buffer_file, &state); + fll_fss_basic_list_read(cache->buffer_file, &range, &cache->object_items, &cache->content_items, &cache->delimits, 0, &cache->comments, &state); if (F_status_is_error(state.status)) { controller_print_error_status(&main->program.error, F_status_debug_source_d, F_status_set_fine(state.status)); } + else { + f_fss_apply_delimit(cache->delimits, &cache->buffer_file, &state); + + if (F_status_is_error(state.status)) { + controller_print_error_status(&main->program.error, F_status_debug_source_d, F_status_set_fine(state.status)); + } + } } } } diff --git a/sources/c/program/controller/main/rule/setting.c b/sources/c/program/controller/main/rule/setting.c index 29d7f6a..de6e685 100644 --- a/sources/c/program/controller/main/rule/setting.c +++ b/sources/c/program/controller/main/rule/setting.c @@ -127,7 +127,7 @@ extern "C" { fll_fss_extended_read(cache->buffer_item, &range, &cache->object_actions, &cache->content_actions, 0, 0, &cache->delimits, 0, &state); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); return state.status; } @@ -163,7 +163,7 @@ extern "C" { state.status = f_string_dynamic_partial_append_nulless(cache->buffer_item, cache->object_actions.array[i], &cache->action.name_item); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); if (F_status_set_fine(state.status) == F_memory_not) { status_return = state.status; @@ -258,7 +258,7 @@ extern "C" { state.status = original; } - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); controller_print_error_rule_item(&main->program.error, &cache->action, F_false, F_status_set_fine(state.status), F_status_debug_source_d); @@ -307,7 +307,7 @@ extern "C" { state.status = f_memory_array_increase(controller_allocation_small_d, sizeof(int32_t), (void **) &rule->affinity.array, &rule->affinity.used, &rule->affinity.size); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); break; } @@ -344,7 +344,7 @@ extern "C" { } } else { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); state.status = F_status_set_error(state.status); @@ -387,7 +387,7 @@ extern "C" { state.status = f_memory_array_increase(controller_allocation_small_d, sizeof(f_string_map_t), (void **) &setting_maps->array, &setting_maps->used, &setting_maps->size); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); if (F_status_set_fine(state.status) == F_memory_not) { status_return = state.status; @@ -414,7 +414,7 @@ extern "C" { state.status = f_string_dynamic_partial_append_nulless(cache->buffer_item, cache->content_actions.array[i].array[0], &setting_maps->array[setting_maps->used].key); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); if (F_status_set_fine(state.status) == F_memory_not) { status_return = state.status; @@ -438,7 +438,7 @@ extern "C" { state.status = f_string_dynamic_partial_append_nulless(cache->buffer_item, cache->content_actions.array[i].array[1], &setting_maps->array[setting_maps->used].value); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); if (F_status_set_fine(state.status) == F_memory_not) { status_return = state.status; @@ -500,7 +500,7 @@ extern "C" { state.status = f_string_dynamic_append(main->process.path_cgroup, &rule->cgroup.path); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); } else { rule->cgroup.groups.used = 0; @@ -510,7 +510,7 @@ extern "C" { state.status = f_memory_array_increase(controller_allocation_small_d, sizeof(f_string_dynamic_t), (void **) &rule->cgroup.groups.array, &rule->cgroup.groups.used, &rule->cgroup.groups.size); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); break; } @@ -520,7 +520,7 @@ extern "C" { state.status = f_string_dynamic_partial_append_nulless(cache->buffer_item, cache->content_actions.array[i].array[j], &rule->cgroup.groups.array[rule->cgroup.groups.used]); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); break; } @@ -651,7 +651,7 @@ extern "C" { state.status = f_memory_array_increase(controller_allocation_small_d, sizeof(f_limit_set_t), (void **) &rule->limits.array, &rule->limits.used, &rule->limits.size); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); if (F_status_set_fine(state.status) == F_memory_not) { status_return = state.status; @@ -708,7 +708,7 @@ extern "C" { } } else { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); state.status = F_status_set_error(state.status); @@ -826,7 +826,7 @@ extern "C" { else { // This function should only return F_complete_not_utf on error. - controller_print_error_rule(&main->program.error, &cache->action, F_complete_not_utf, F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_complete_not_utf, F_status_debug_source_d, F_true, F_false); if (F_status_is_error_not(status_return)) { status_return = state.status; @@ -846,7 +846,7 @@ extern "C" { state.status = f_string_dynamic_partial_append_nulless(cache->buffer_item, cache->content_actions.array[i].array[0], setting_value); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); if (F_status_set_fine(state.status) == F_memory_not) { status_return = state.status; @@ -957,7 +957,7 @@ extern "C" { } } else { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); state.status = F_status_set_error(state.status); if (F_status_is_error_not(status_return)) { @@ -1051,7 +1051,7 @@ extern "C" { state.status = original; } - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); } if (F_status_is_error_not(status_return)) { @@ -1125,7 +1125,7 @@ extern "C" { controller_lock_print(main->program.error.to, &main->thread); - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); controller_print_error_rule_cache(&main->program.error, &cache->action, F_false, F_status_debug_source_d); @@ -1156,7 +1156,7 @@ extern "C" { controller_lock_print(main->program.error.to, &main->thread); - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); controller_print_error_rule_cache(&main->program.error, &cache->action, F_false, F_status_debug_source_d); @@ -1213,7 +1213,7 @@ extern "C" { } } else { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); state.status = F_status_set_error(state.status); if (F_status_is_error_not(status_return)) { @@ -1241,7 +1241,7 @@ extern "C" { controller_lock_print(main->program.error.to, &main->thread); - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); controller_print_error_rule_cache(&main->program.error, &cache->action, F_false, F_status_debug_source_d); @@ -1290,7 +1290,7 @@ extern "C" { state.status = original; } - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); controller_print_error_rule_item(&main->program.error, &cache->action, F_false, F_status_set_fine(state.status), F_status_debug_source_d); } @@ -1338,7 +1338,7 @@ extern "C" { state.status = f_memory_array_increase(controller_allocation_small_d, sizeof(f_int32s_t), (void **) &rule->groups.array, &rule->groups.used, &rule->groups.size); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); if (F_status_set_fine(state.status) == F_memory_not) { status_return = state.status; @@ -1382,7 +1382,7 @@ extern "C" { state.status = original; } - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); controller_print_error_rule_item(&main->program.error, &cache->action, F_false, F_status_set_fine(state.status), F_status_debug_source_d); } @@ -1415,7 +1415,7 @@ extern "C" { state.status = f_memory_array_increase(controller_allocation_small_d, sizeof(f_string_dynamic_t), (void **) &setting_values->array, &setting_values->used, &setting_values->size); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); if (F_status_set_fine(state.status) == F_memory_not) { status_return = state.status; @@ -1441,7 +1441,7 @@ extern "C" { state.status = f_string_dynamic_partial_append_nulless(cache->buffer_item, cache->content_actions.array[i].array[j], &setting_values->array[setting_values->used]); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); setting_values->array[setting_values->used].used = 0; @@ -1485,7 +1485,7 @@ extern "C" { else { // This function should only return F_complete_not_utf on error. - controller_print_error_rule(&main->program.error, &cache->action, F_complete_not_utf, F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_complete_not_utf, F_status_debug_source_d, F_true, F_false); if (F_status_is_error_not(status_return)) { status_return = state.status; @@ -1575,7 +1575,7 @@ extern "C" { } if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); } else { if (f_compare_dynamic_partial_string(controller_need_s.string, cache->buffer_item, controller_need_s.used, cache->content_actions.array[i].array[1]) == F_equal_to) { @@ -1602,7 +1602,7 @@ extern "C" { state.status = f_memory_array_increase(controller_allocation_small_d, sizeof(f_string_dynamic_t), (void **) &setting_values->array, &setting_values->used, &setting_values->size); if (F_status_is_error(state.status)) { - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); } } @@ -1657,7 +1657,7 @@ extern "C" { if (F_status_is_error(state.status)) { setting_values->array[setting_values->used].used = 0; - controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false, F_status_debug_source_d); + controller_print_error_rule(&main->program.error, &cache->action, F_status_set_fine(state.status), F_status_debug_source_d, F_true, F_false); if (F_status_set_fine(state.status) == F_memory_not) { status_return = state.status; diff --git a/sources/c/program/controller/main/status.c b/sources/c/program/controller/main/status.c index 30710e6..442bd6a 100644 --- a/sources/c/program/controller/main/status.c +++ b/sources/c/program/controller/main/status.c @@ -45,6 +45,9 @@ extern "C" { case F_valid_not: return F_status_set_error(F_valid_not); + + case F_load_not: + return F_status_set_error(F_load_not); }; return F_status_set_error(F_failure);