From fd0eb2b17f4bbf86ae5d725185a7d848178a1a95 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Tue, 29 Mar 2022 23:12:55 -0500 Subject: [PATCH] Update: Move the program data into the main for fss_extended_list_read. Move parameter initialization and deallocation for FLL program data into main.c. --- level_3/fss_extended_list_read/c/common.h | 2 -- .../c/fss_extended_list_read.c | 23 ++-------------------- .../c/fss_extended_list_read.h | 4 ---- level_3/fss_extended_list_read/c/main.c | 6 ++++++ 4 files changed, 8 insertions(+), 27 deletions(-) diff --git a/level_3/fss_extended_list_read/c/common.h b/level_3/fss_extended_list_read/c/common.h index 0b17064..c431d35 100644 --- a/level_3/fss_extended_list_read/c/common.h +++ b/level_3/fss_extended_list_read/c/common.h @@ -289,8 +289,6 @@ extern "C" { /** * Deallocate main. * - * Be sure to call this after executing fss_extended_list_read_main(). - * * @param main * The main program data. * diff --git a/level_3/fss_extended_list_read/c/fss_extended_list_read.c b/level_3/fss_extended_list_read/c/fss_extended_list_read.c index ebb472c..4e6bcd0 100644 --- a/level_3/fss_extended_list_read/c/fss_extended_list_read.c +++ b/level_3/fss_extended_list_read/c/fss_extended_list_read.c @@ -122,10 +122,6 @@ extern "C" { f_status_t status = F_none; - f_console_parameter_t parameters[] = fss_extended_list_read_console_parameter_t_initialize; - main->parameters.array = parameters; - main->parameters.used = fss_extended_list_read_total_parameters_d; - { f_console_parameter_id_t ids[3] = { fss_extended_list_read_parameter_no_color_e, fss_extended_list_read_parameter_light_e, fss_extended_list_read_parameter_dark_e }; const f_console_parameter_ids_t choices = { ids, 3 }; @@ -152,11 +148,7 @@ extern "C" { fll_program_parameter_process_empty(&main->context, sets); } - if (F_status_is_error(status)) { - fss_extended_list_read_main_delete(main); - - return F_status_set_error(status); - } + if (F_status_is_error(status)) return status; } // Identify priority of verbosity related parameters. @@ -166,12 +158,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)) { - fss_extended_list_read_main_delete(main); - - return status; - } + if (F_status_is_error(status)) return status; if (choice == fss_extended_list_read_parameter_verbosity_quiet_e) { main->output.verbosity = f_console_verbosity_quiet_e; @@ -200,16 +187,12 @@ extern "C" { if (main->parameters.array[fss_extended_list_read_parameter_help_e].result == f_console_result_found_e) { fss_extended_list_read_print_help(main->output.to, main->context); - fss_extended_list_read_main_delete(main); - return status; } if (main->parameters.array[fss_extended_list_read_parameter_version_e].result == f_console_result_found_e) { fll_program_print_version(main->output.to, fss_extended_list_read_program_version_s); - fss_extended_list_read_main_delete(main); - return status; } @@ -501,7 +484,6 @@ extern "C" { } fss_extended_list_read_data_delete_simple(&data); - fss_extended_list_read_main_delete(main); return F_none; } @@ -645,7 +627,6 @@ extern "C" { } fss_extended_list_read_data_delete_simple(&data); - fss_extended_list_read_main_delete(main); return status; } diff --git a/level_3/fss_extended_list_read/c/fss_extended_list_read.h b/level_3/fss_extended_list_read/c/fss_extended_list_read.h index 6783035..f5752c1 100644 --- a/level_3/fss_extended_list_read/c/fss_extended_list_read.h +++ b/level_3/fss_extended_list_read/c/fss_extended_list_read.h @@ -72,8 +72,6 @@ extern "C" { /** * Execute main program. * - * Be sure to call fss_extended_list_read_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 @@ -91,8 +89,6 @@ extern "C" { * F_none on success. * * Status codes (with error bit) are returned on any problem. - * - * @see fss_extended_list_read_main_delete() */ #ifndef _di_fss_extended_list_read_main_ extern f_status_t fss_extended_list_read_main(fll_program_data_t * const main, const f_console_arguments_t *arguments); diff --git a/level_3/fss_extended_list_read/c/main.c b/level_3/fss_extended_list_read/c/main.c index 2f686c5..61b2ee1 100644 --- a/level_3/fss_extended_list_read/c/main.c +++ b/level_3/fss_extended_list_read/c/main.c @@ -5,6 +5,10 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) { f_console_arguments_t arguments = { argc, argv }; fll_program_data_t data = fll_program_data_t_initialize; + f_console_parameter_t parameters[] = fss_extended_list_read_console_parameter_t_initialize; + data.parameters.array = parameters; + data.parameters.used = fss_extended_list_read_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 = fss_extended_list_read_main(&data, &arguments); + fll_program_data_delete(&data); + fll_program_standard_setdown(&data.signal); if (F_status_is_error(status)) return 1; -- 1.8.3.1