]> Kevux Git Server - fll/commitdiff
Update: Move the program data into the main for control.
authorKevin Day <thekevinday@gmail.com>
Thu, 31 Mar 2022 03:45:34 +0000 (22:45 -0500)
committerKevin Day <thekevinday@gmail.com>
Thu, 31 Mar 2022 03:45:34 +0000 (22:45 -0500)
Move parameter initialization and deallocation for FLL program data into main.c.

level_3/control/c/common.c
level_3/control/c/common.h
level_3/control/c/control.c
level_3/control/c/control.h
level_3/control/c/main.c

index 7408506ffe84f32f0228e9bf27c2770d5d7a297b..846c3d57d4a90d34c9a81b391041ca3e2387f719 100644 (file)
@@ -170,13 +170,6 @@ extern "C" {
   }
 #endif // _di_control_payload_type_name_
 
-#ifndef _di_control_main_delete_
-  f_status_t control_main_delete(fll_program_data_t * const main) {
-
-    return fll_program_data_delete(main);
-  }
-#endif // _di_control_main_delete_
-
 #ifdef __cplusplus
 } // extern "C"
 #endif
index bb61eda0e450906b30a0ef2ea4f451d7766c9d1a..7c86200dda1a8b5d4c3ca1153eb2f06c8625cb36 100644 (file)
@@ -236,25 +236,6 @@ extern "C" {
   extern f_string_static_t control_payload_type_name(const uint8_t type);
 #endif // _di_control_payload_type_name_
 
-/**
- * Deallocate main.
- *
- * Be sure to call this after executing control_main().
- *
- * @param main
- *   The main program data.
- *
- * @return
- *   F_none on success.
- *
- *   Status codes (with error bit) are returned on any problem.
- *
- * @see control_main()
- */
-#ifndef _di_control_main_delete_
-  extern f_status_t control_main_delete(fll_program_data_t * const main);
-#endif // _di_control_main_delete_
-
 #ifdef __cplusplus
 } // extern "C"
 #endif
index 4dde4e5e684cf12160e8786f30dffc5c52c1fb70..330b2b6b44071e6e6dcbb12ac894840333b09dda 100644 (file)
@@ -56,10 +56,6 @@ extern "C" {
 
     f_status_t status = F_none;
 
-    f_console_parameter_t parameters[] = control_console_parameter_t_initialize;
-    main->parameters.array = parameters;
-    main->parameters.used = control_total_parameters_d;
-
     {
       f_console_parameter_id_t ids[3] = { control_parameter_no_color_e, control_parameter_light_e, control_parameter_dark_e };
       const f_console_parameter_ids_t choices = macro_f_console_parameter_ids_t_initialize(ids, 3);
@@ -92,8 +88,6 @@ extern "C" {
           fll_print_dynamic_raw(f_string_eol_s, main->error.to.stream);
         }
 
-        control_main_delete(main);
-
         return F_status_set_error(status);
       }
     }
@@ -105,12 +99,7 @@ extern "C" {
       const f_console_parameter_ids_t choices = macro_f_console_parameter_ids_t_initialize(ids, 4);
 
       status = f_console_parameter_prioritize_right(main->parameters, choices, &choice);
-
-      if (F_status_is_error(status)) {
-        control_main_delete(main);
-
-        return status;
-      }
+      if (F_status_is_error(status)) return status;
 
       if (choice == control_parameter_verbosity_quiet_e) {
         main->output.verbosity = f_console_verbosity_quiet_e;
@@ -139,16 +128,12 @@ extern "C" {
     if (main->parameters.array[control_parameter_help_e].result == f_console_result_found_e) {
       control_print_help(main);
 
-      control_main_delete(main);
-
       return F_none;
     }
 
     if (main->parameters.array[control_parameter_version_e].result == f_console_result_found_e) {
       fll_program_print_version(main->output.to, control_program_version_s);
 
-      control_main_delete(main);
-
       return F_none;
     }
 
@@ -289,8 +274,6 @@ extern "C" {
       }
     }
 
-    control_main_delete(main);
-
     return status;
   }
 #endif // _di_control_main_
index e36c237e5b3e5cd0186f9fceca7964dc72661970..6e066c60043c6e1098b296688aeeebd8409ab1d9 100644 (file)
@@ -75,8 +75,6 @@ extern "C" {
 /**
  * Execute main program.
  *
- * Be sure to call control_main_delete() after executing this.
- *
  * If main.signal is non-zero, then this blocks and handles the following signals:
  *   - F_signal_abort
  *   - F_signal_broken_pipe
@@ -96,8 +94,6 @@ extern "C" {
  *   F_interrupt (with error bit) on receiving a process signal, such as an interrupt signal.
  *
  *   Status codes (with error bit) are returned on any problem.
- *
- * @see control_main_delete()
  */
 #ifndef _di_control_main_
   extern f_status_t control_main(fll_program_data_t * const main, const f_console_arguments_t *arguments);
index d71ff3b539410ba1a57ed6e546afdd9562d9425d..c475e01de0876620cdb876eeeeaf9d67387756a2 100644 (file)
@@ -5,6 +5,10 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
   const f_console_arguments_t arguments = macro_f_console_arguments_t_initialize(argc, argv, envp);
   fll_program_data_t data = fll_program_data_t_initialize;
 
+  f_console_parameter_t parameters[] = control_console_parameter_t_initialize;
+  data.parameters.array = parameters;
+  data.parameters.used = control_total_parameters_d;
+
   if (f_pipe_input_exists()) {
     data.process_pipe = F_true;
   }
@@ -13,6 +17,8 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) {
 
   const f_status_t status = control_main(&data, &arguments);
 
+  fll_program_data_delete(&data);
+
   fll_program_standard_setdown(&data.signal);
 
   if (F_status_is_error(status)) return 1;