Move parameter initialization and deallocation for FLL program data into main.c.
const f_string_static_t fss_embedded_list_write_long_trim_s = macro_f_string_static_t_initialize(FSS_EMBEDDED_LIST_WRITE_long_trim_s, 0, FSS_EMBEDDED_LIST_WRITE_long_trim_s_length);
#endif // _di_fss_embedded_list_write_parameters_
-#ifndef _di_fss_embedded_list_write_main_delete_
- f_status_t fss_embedded_list_write_main_delete(fll_program_data_t * const main) {
-
- return fll_program_data_delete(main);
- }
-#endif // _di_fss_embedded_list_write_main_delete_
-
#ifdef __cplusplus
} // extern "C"
#endif
#define fss_embedded_list_write_total_parameters_d 18
#endif // _di_fss_embedded_list_write_parameters_
-/**
- * Deallocate main.
- *
- * Be sure to call this after executing fss_embedded_list_write_main().
- *
- * @param main
- * The main program data.
- *
- * @return
- * F_none on success.
- *
- * Status codes (with error bit) are returned on any problem.
- *
- * @see fss_embedded_list_write_main()
- */
-#ifndef _di_fss_embedded_list_write_main_delete_
- extern f_status_t fss_embedded_list_write_main_delete(fll_program_data_t * const main);
-#endif // _di_fss_embedded_list_write_main_delete_
-
#ifdef __cplusplus
} // extern "C"
#endif
f_status_t status = F_none;
- f_console_parameter_t parameters[] = fss_embedded_list_write_console_parameter_t_initialize;
- main->parameters.array = parameters;
- main->parameters.used = fss_embedded_list_write_total_parameters_d;
-
{
f_console_parameter_id_t ids[3] = { fss_embedded_list_write_parameter_no_color_e, fss_embedded_list_write_parameter_light_e, fss_embedded_list_write_parameter_dark_e };
const f_console_parameter_ids_t choices = macro_f_console_parameter_ids_t_initialize(ids, 3);
fll_program_parameter_process_empty(&main->context, sets);
}
- if (F_status_is_error(status)) {
- fss_embedded_list_write_main_delete(main);
-
- return F_status_set_error(status);
- }
+ if (F_status_is_error(status)) return status;
}
// Identify priority of verbosity related parameters.
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_embedded_list_write_main_delete(main);
-
- return status;
- }
+ if (F_status_is_error(status)) return status;
if (choice == fss_embedded_list_write_parameter_verbosity_quiet_e) {
main->output.verbosity = f_console_verbosity_quiet_e;
if (main->parameters.array[fss_embedded_list_write_parameter_help_e].result == f_console_result_found_e) {
fss_embedded_list_write_print_help(main->output.to, main->context);
- fss_embedded_list_write_main_delete(main);
-
return status;
}
if (main->parameters.array[fss_embedded_list_write_parameter_version_e].result == f_console_result_found_e) {
fll_program_print_version(main->output.to, fss_embedded_list_write_program_version_s);
- fss_embedded_list_write_main_delete(main);
-
return status;
}
}
f_string_dynamic_resize(0, &buffer);
- fss_embedded_list_write_main_delete(main);
return status;
}
* F_none on success.
*
* Status codes (with error bit) are returned on any problem.
- *
- * @see fss_embedded_list_write_main_delete()
*/
#ifndef _di_fss_embedded_list_write_main_
extern f_status_t fss_embedded_list_write_main(fll_program_data_t * const main, const f_console_arguments_t *arguments);
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[] = fss_embedded_list_write_console_parameter_t_initialize;
+ data.parameters.array = parameters;
+ data.parameters.used = fss_embedded_list_write_total_parameters_d;
+
if (f_pipe_input_exists()) {
data.process_pipe = F_true;
}
const f_status_t status = fss_embedded_list_write_main(&data, &arguments);
+ fll_program_data_delete(&data);
+
fll_program_standard_setdown(&data.signal);
if (F_status_is_error(status)) return 1;
* @see f_signal_read()
*/
#ifndef _di_fss_embedded_list_write_signal_received_
- extern f_status_t fss_embedded_list_write_signal_received(fll_program_data_t * const main);
+ extern f_status_t fss_embedded_list_write_signal_received(fll_program_data_t * const main) F_attribute_visibility_internal_d;
#endif // _di_fss_embedded_list_write_signal_received_
#ifdef __cplusplus