]> Kevux Git Server - control/commitdiff
Update: Utilize the F_status_debug_source_d for handling the errors.
authorKevin Day <Kevin@kevux.org>
Wed, 12 Nov 2025 05:26:09 +0000 (23:26 -0600)
committerKevin Day <Kevin@kevux.org>
Wed, 12 Nov 2025 05:26:09 +0000 (23:26 -0600)
This simplifies some of the logic and code.

However, there are some disadvantages of doing this.
One such disadvantage is losing the specific function that has failed.
The location in the source file should be sufficient, if not ideal.

sources/c/program/control/control/main.c
sources/c/program/control/main/common.c
sources/c/program/control/main/common/print.c
sources/c/program/control/main/common/print.h
sources/c/program/control/main/print/error.c
sources/c/program/control/main/print/error.h
sources/c/program/control/main/process.c

index a59c40807921d54b1b2eb518edd7cebb760e76b2..6f55165fa1b057fea7881befb67e66d9139684b7 100644 (file)
@@ -50,7 +50,7 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
       data.setting.state.status = f_thread_create(0, &id_signal, &control_thread_signal, (void *) &data);
 
       if (F_status_is_error(data.setting.state.status)) {
-        control_print_error(&data.program.error, macro_control_f(f_thread_create));
+        control_print_error(&data.program.error, F_status_debug_source_d);
       }
       else {
         {
index d1b1c085260647750aa6ce4b429fa2f33c665f5e..23c7b118891623bcec8a6fade9e0ddbf17e07fb3 100644 (file)
@@ -16,7 +16,7 @@ extern "C" {
     main->setting.state.step_small = control_allocation_small_d;
 
     if (F_status_is_error(main->setting.state.status)) {
-      control_print_error(&main->program.error, macro_control_f(f_console_parameter_process));
+      control_print_error(&main->program.error, F_status_debug_source_d);
 
       return;
     }
@@ -24,7 +24,7 @@ extern "C" {
     main->setting.state.status = fll_program_parameter_process_context_standard(F_true, &main->program);
 
     if (F_status_is_error(main->setting.state.status)) {
-      control_print_error(&main->program.error, macro_control_f(fll_program_parameter_process_context_standard));
+      control_print_error(&main->program.error, F_status_debug_source_d);
 
       return;
     }
@@ -32,7 +32,7 @@ extern "C" {
     main->setting.state.status = fll_program_parameter_process_verbosity_standard(F_true, &main->program);
 
     if (F_status_is_error(main->setting.state.status)) {
-      control_print_error(&main->program.error, macro_control_f(fll_program_parameter_process_verbosity_standard));
+      control_print_error(&main->program.error, F_status_debug_source_d);
 
       return;
     }
@@ -90,7 +90,7 @@ extern "C" {
       main->setting.state.status = f_file_stream_open(main->setting.path_settings, f_file_open_mode_read_s, &file);
 
       if (F_status_is_error(main->setting.state.status)) {
-        control_print_error_file(&main->program.error, macro_control_f(f_file_stream_open), main->setting.path_settings, f_file_operation_open_s, fll_error_file_type_file_e);
+        control_print_error_file(&main->program.error, F_status_debug_source_d, main->setting.path_settings, f_file_operation_open_s, fll_error_file_type_file_e);
 
         return;
       }
@@ -101,7 +101,7 @@ extern "C" {
       f_file_stream_close(&file);
 
       if (F_status_is_error(main->setting.state.status)) {
-        control_print_error_file(&main->program.error, macro_control_f(f_file_stream_read), main->setting.path_settings, f_file_operation_read_s, fll_error_file_type_file_e);
+        control_print_error_file(&main->program.error, F_status_debug_source_d, main->setting.path_settings, f_file_operation_read_s, fll_error_file_type_file_e);
 
         return;
       }
@@ -119,7 +119,7 @@ extern "C" {
     fll_fss_extended_read(main->cache.large, &main->setting.range, &main->cache.objects, &main->cache.contents, 0, 0, &main->cache.delimits, 0, &main->setting.state);
 
     if (F_status_is_error(main->setting.state.status)) {
-      control_print_error_file(&main->program.error, macro_control_f(fll_fss_extended_read), main->setting.path_settings, f_file_operation_process_s, fll_error_file_type_file_e);
+      control_print_error_file(&main->program.error, F_status_debug_source_d, main->setting.path_settings, f_file_operation_process_s, fll_error_file_type_file_e);
 
       return;
     }
@@ -127,7 +127,7 @@ extern "C" {
     f_fss_apply_delimit(main->cache.delimits, &main->cache.large, &main->setting.state);
 
     if (F_status_is_error(main->setting.state.status)) {
-      control_print_error_file(&main->program.error, macro_control_f(f_fss_apply_delimit), main->setting.path_settings, f_file_operation_process_s, fll_error_file_type_file_e);
+      control_print_error_file(&main->program.error, F_status_debug_source_d, main->setting.path_settings, f_file_operation_process_s, fll_error_file_type_file_e);
 
       return;
     }
@@ -178,7 +178,7 @@ extern "C" {
       main->setting.state.status = f_string_dynamic_partial_append_nulless(main->cache.large, main->cache.objects.array[parameter_ats[1]], &main->setting.path_socket);
 
       if (F_status_is_error(main->setting.state.status)) {
-        control_print_error_file(&main->program.error, macro_control_f(f_string_dynamic_partial_append_nulless), main->setting.path_socket, f_file_operation_process_s, fll_error_file_type_file_e);
+        control_print_error_file(&main->program.error, F_status_debug_source_d, main->setting.path_socket, f_file_operation_process_s, fll_error_file_type_file_e);
 
         return;
       }
@@ -193,7 +193,7 @@ extern "C" {
 
     if (F_status_is_error(main->setting.state.status) || main->setting.state.status == F_false) {
       if (F_status_is_error(main->setting.state.status)) {
-        control_print_error_file(&main->program.error, macro_control_f(f_file_exists), main->setting.path_socket, f_file_operation_find_s, fll_error_file_type_directory_e);
+        control_print_error_file(&main->program.error, F_status_debug_source_d, main->setting.path_socket, f_file_operation_find_s, fll_error_file_type_directory_e);
 
         if (main->program.error.verbosity > f_console_verbosity_quiet_e) {
           fll_print_dynamic_raw(f_string_eol_s, main->program.error.to);
@@ -212,7 +212,7 @@ extern "C" {
       main->setting.state.status = f_string_dynamic_append_assure(f_path_separator_s, &main->setting.path_socket);
 
       if (F_status_is_error(main->setting.state.status)) {
-        control_print_error(&main->program.error, macro_control_f(f_string_dynamic_append_assure));
+        control_print_error(&main->program.error, F_status_debug_source_d);
 
         return;
       }
@@ -251,12 +251,7 @@ extern "C" {
           }
 
           if (F_status_is_error(main->setting.state.status)) {
-            control_print_error(
-              &main->program.error,
-              ((append_ids[i] && main->program.parameters.array[append_ids[i]].result & f_console_result_value_d) || !append_hass[i])
-                ? macro_control_f(f_string_dynamic_append)
-                : macro_control_f(f_string_dynamic_partial_append_nulless)
-            );
+            control_print_error(&main->program.error, F_status_debug_source_d);
 
             return;
           }
@@ -266,7 +261,7 @@ extern "C" {
 
         if (F_status_is_error(main->setting.state.status) || main->setting.state.status == F_false) {
           if (F_status_is_error(main->setting.state.status)) {
-            control_print_error_file(&main->program.error, macro_control_f(f_file_exists), main->setting.path_socket, f_file_operation_find_s, fll_error_file_type_directory_e);
+            control_print_error_file(&main->program.error, F_status_debug_source_d, main->setting.path_socket, f_file_operation_find_s, fll_error_file_type_directory_e);
 
             if (main->program.error.verbosity > f_console_verbosity_quiet_e) {
               fll_print_dynamic_raw(f_string_eol_s, main->program.error.to);
@@ -293,7 +288,7 @@ extern "C" {
     main->setting.state.status = f_socket_create(&main->setting.socket);
 
     if (F_status_is_error(main->setting.state.status)) {
-      control_print_error(&main->program.error, macro_control_f(f_socket_create));
+      control_print_error(&main->program.error, F_status_debug_source_d);
 
       control_print_error_socket_file_failed(&main->program.error, main->setting.path_socket);
 
@@ -303,7 +298,7 @@ extern "C" {
     main->setting.state.status = f_socket_connect(&main->setting.socket);
 
     if (F_status_is_error(main->setting.state.status)) {
-      control_print_error(&main->program.error, macro_control_f(f_socket_connect));
+      control_print_error(&main->program.error, F_status_debug_source_d);
 
       control_print_error_socket_file_failed(&main->program.error, main->setting.path_socket);
 
@@ -362,7 +357,7 @@ extern "C" {
       main->setting.state.status = f_memory_array_resize(control_default_buffer_limit_soft_large_d, sizeof(f_char_t), (void **) &main->cache.large.string, &main->cache.large.used, &main->cache.large.size);
 
       if (F_status_is_error(main->setting.state.status)) {
-        control_print_error(&main->program.error, macro_control_f(f_memory_array_resize));
+        control_print_error(&main->program.error, F_status_debug_source_d);
 
         return;
       }
@@ -372,7 +367,7 @@ extern "C" {
       main->setting.state.status = f_memory_array_increase_by(main->program.parameters.remaining.used, sizeof(f_string_dynamic_t), (void **) &main->setting.actions.array, &main->setting.actions.used, &main->setting.actions.size);
 
       if (F_status_is_error(main->setting.state.status)) {
-        control_print_error(&main->program.error, macro_control_f(f_memory_array_increase_by));
+        control_print_error(&main->program.error, F_status_debug_source_d);
 
         return;
       }
index 046aa492827a7927ab450805847a22155c0fee29..39790a2ade54086ff199674229f5c8da4e92a79b 100644 (file)
@@ -4,31 +4,6 @@
 extern "C" {
 #endif
 
-#ifndef _di_control_f_a_
-  const f_string_t control_f_a[] = {
-    "control_packet_build",
-    "control_packet_process",
-    "control_packet_receive",
-    "control_packet_send",
-    "f_console_parameter_process",
-    "f_file_exists",
-    "f_file_stream_open",
-    "f_file_stream_read",
-    "f_fss_apply_delimit",
-    "f_memory_array_increase_by",
-    "f_memory_array_resize",
-    "f_socket_connect",
-    "f_socket_create",
-    "f_string_dynamic_append",
-    "f_string_dynamic_append_assure",
-    "f_string_dynamic_partial_append_nulless",
-    "f_thread_create",
-    "fll_fss_extended_read",
-    "fll_program_parameter_process_context_standard",
-    "fll_program_parameter_process_verbosity_standard",
-  };
-#endif // _di_control_f_a_
-
 #ifdef __cplusplus
 } // extern "C"
 #endif
index a60b1e05378079c03591ceeb344bb3d7f34915f6..794ff1d1de891f4945c22e099972d0cbd5a723f9 100644 (file)
@@ -17,22 +17,6 @@ extern "C" {
 #endif
 
 /**
- * A special array of strings intended for representing funciton names.
- *
- * These are primarily used for printing errors with the function names.
- *
- * The macro macro_control_f() is used to reference the array index by the enum name.
- *
- * macro_control_f():
- *   - name: The name of the function.
- */
-#ifndef _di_control_f_a_
-  extern const f_string_t control_f_a[];
-
-  #define macro_control_f(name) control_f_a[control_f_##name##_e]
-#endif // _di_control_f_a_
-
-/**
  * An enum representing specific indexes within the above array.
  *
  * This is a convenience enum used to make code slightly more readable.
index a014454037eb39798e31bb18dd153faded8e633d..0e89fda932ead415e40284cfe6b2a72ba86fb488 100644 (file)
@@ -5,24 +5,24 @@ extern "C" {
 #endif
 
 #ifndef _di_control_print_error_
-  f_status_t control_print_error(fl_print_t * const print, const f_string_t function) {
+  f_status_t control_print_error(fl_print_t * const print, 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;
 
-    fll_error_print(print, F_status_set_fine(((control_main_t *) print->custom)->setting.state.status), function, fll_error_file_flag_fallback_e);
+    fll_error_print(print, F_status_set_fine(((control_main_t *) print->custom)->setting.state.status), debug, fll_error_file_flag_fallback_e);
 
     return F_okay;
   }
 #endif // _di_control_print_error_
 
 #ifndef _di_control_print_error_file_
-  f_status_t control_print_error_file(fl_print_t * const print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) {
+  f_status_t control_print_error_file(fl_print_t * const print, const f_string_t debug, 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;
 
-    fll_error_file_print(print, F_status_set_fine(((control_main_t *) print->custom)->setting.state.status), function, fll_error_file_flag_fallback_e, name, operation, type);
+    fll_error_file_print(print, F_status_set_fine(((control_main_t *) print->custom)->setting.state.status), debug, fll_error_file_flag_fallback_e, name, operation, type);
 
     return F_okay;
   }
index d1b9cbb9915ad1a76ed76a8bf3e4021f8da98e20..1a2c499f342fc42a41bd0b9c7eeb845a37d8cf6d 100644 (file)
@@ -25,8 +25,10 @@ extern "C" {
  *   This does not alter print.custom.setting.state.status.
  *
  *   Must not be NULL.
- * @param function
- *   The name of the function associated with the error.
+ * @param debug
+ *   (optional) The debug details, such as file, line number, and function.
+ *
+ *   Set to NULL to disable.
  *
  * @return
  *   F_okay on success.
@@ -37,7 +39,7 @@ extern "C" {
  * @see fll_error_print()
  */
 #ifndef _di_control_print_error_
-  extern f_status_t control_print_error(fl_print_t * const print, const f_string_t function);
+  extern f_status_t control_print_error(fl_print_t * const print, const f_string_t debug);
 #endif // _di_control_print_error_
 
 /**
@@ -49,9 +51,10 @@ extern "C" {
  *   This does not alter print.custom.setting.state.status.
  *
  *   Must not be NULL.
- * @param function
- *   The name of the function where the error happened.
- *   Set to 0 to disable.
+ * @param debug
+ *   (optional) The debug details, such as file, line number, and function.
+ *
+ *   Set to NULL to disable.
  * @param name
  *   The name of the file or directory.
  * @param operation
@@ -68,7 +71,7 @@ extern "C" {
  * @see fll_error_file_print()
  */
 #ifndef _di_control_print_error_file_
-  extern f_status_t control_print_error_file(fl_print_t * const print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
+  extern f_status_t control_print_error_file(fl_print_t * const print, const f_string_t debug, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
 #endif // _di_control_print_error_file_
 
 /**
index 87c9e4ed2892f9e87339a377ebbeb6ed19f74de5..a321b47f50606cfdc1f2f3d46972700136d420f6 100644 (file)
@@ -54,7 +54,7 @@ extern "C" {
             control_print_error_request_packet_too_large(&main->program.error);
           }
           else {
-            control_print_error(&main->program.error, macro_control_f(control_packet_build));
+            control_print_error(&main->program.error, F_status_debug_source_d);
           }
         }
 
@@ -62,7 +62,7 @@ extern "C" {
           control_packet_send(main);
 
           if (F_status_is_error(main->setting.state.status)) {
-            control_print_error(&main->program.error, macro_control_f(control_packet_send));
+            control_print_error(&main->program.error, F_status_debug_source_d);
           }
         }
 
@@ -76,7 +76,7 @@ extern "C" {
               control_print_error_response_packet_valid_not(&main->program.error);
             }
             else {
-              control_print_error(&main->program.error, macro_control_f(control_packet_receive));
+              control_print_error(&main->program.error, F_status_debug_source_d);
             }
           }
           else {
@@ -85,7 +85,7 @@ extern "C" {
             // Print the error message only if the error message is not already printed.
             if (F_status_is_error(main->setting.state.status)) {
               if (header.type != control_payload_type_error_e && (header.type != control_payload_type_controller_e || F_status_set_fine(main->setting.state.status) != header.status || (header.status != F_failure && header.status != F_busy))) {
-                control_print_error(&main->program.error, macro_control_f(control_packet_process));
+                control_print_error(&main->program.error, F_status_debug_source_d);
               }
             }
           }