From: Kevin Day Date: Sat, 18 Mar 2023 00:48:45 +0000 (-0500) Subject: Progress: Continue program related work, focusing on Featureless Make. X-Git-Url: https://git.kevux.org/?a=commitdiff_plain;h=766e46ca1d8d39966f73f1f9695035225d89acdf;p=fll Progress: Continue program related work, focusing on Featureless Make. THis mostly addresses comments. This is a rather annoying and time-consuming process but it is worth it for long term maintenance. I may have missed something but this should be acceptable. --- diff --git a/level_3/control/c/private-control.h b/level_3/control/c/private-control.h index 2b42a53..c5fd006 100644 --- a/level_3/control/c/private-control.h +++ b/level_3/control/c/private-control.h @@ -182,7 +182,7 @@ extern "C" { * @return * F_none on success. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * F_socket_not (with error bit) on socket related error preventing the socket from being created or connected to. * * Errors (with error bit) from: f_file_exists(). diff --git a/level_3/fake/c/main/build.c b/level_3/fake/c/main/build.c index e97589f..c74f4da 100644 --- a/level_3/fake/c/main/build.c +++ b/level_3/fake/c/main/build.c @@ -159,7 +159,8 @@ extern "C" { void fake_build_copy(fake_data_t * const data, const f_mode_t mode, const f_string_static_t label, const f_string_static_t source, const f_string_static_t destination, const f_string_statics_t files, const f_string_static_t file_stage, const f_array_length_t perserve_offset) { if (!data || !data->main || !data->setting) return; - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return; + if (data->setting->state.status == F_child) return; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return; if (!((++data->main->signal_check) % fake_signal_check_d)) { if (fll_program_standard_signal_received(data->main)) { @@ -359,8 +360,9 @@ extern "C" { #ifndef _di_fake_build_execute_process_script_ int fake_build_execute_process_script(fake_data_t * const data, fake_build_data_t * const data_build, const f_string_static_t process_script, const f_string_static_t file_stage) { - if (!data) return 0; - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return data->main->child; + if (!data || !data->main || !data->setting || !data_build) return 0; + if (data->setting->state.status == F_child) return data->main->child; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0; if (!process_script.used) return 0; f_string_dynamics_t arguments = f_string_dynamics_t_initialize; @@ -802,8 +804,8 @@ extern "C" { fake_build_execute_process_script(data, &data_build, data_build.setting.process_post, stage.file_process_post); - macro_fake_build_main_delete_simple(data_build); - macro_fake_build_stage_t_delete_simple(stage); + fake_build_data_delete(&data_build); + fake_build_stage_delete(&stage); } #endif // _di_fake_build_operate_ diff --git a/level_3/fake/c/main/build.h b/level_3/fake/c/main/build.h index 5362c7c..54b5f1e 100644 --- a/level_3/fake/c/main/build.h +++ b/level_3/fake/c/main/build.h @@ -113,6 +113,7 @@ extern "C" { * Errors (with error bit) from: fll_execute_arguments_add() * Errors (with error bit) from: fll_execute_arguments_add_parameter_set() * Errors (with error bit) from: fll_execute_program() + * * Errors (with error bit) from: fake_build_touch() * @param data_build * The build data. @@ -131,6 +132,7 @@ extern "C" { * @see fll_execute_arguments_add() * @see fll_execute_arguments_add_parameter_set() * @see fll_execute_program() + * * @see fake_build_touch() */ #ifndef _di_fake_build_execute_process_script_ @@ -197,6 +199,7 @@ extern "C" { * F_interrupt (with error bit) on interrupt signal received. * * Errors (with error bit) from: fll_program_print_signal_received() + * * Errors (with error bit) from: fake_build_copy() * Errors (with error bit) from: fake_build_execute_process_script() * Errors (with error bit) from: fake_build_library_script() @@ -229,6 +232,7 @@ extern "C" { * If FALSE, then ignore the program input pipe. * * @see fll_program_print_signal_received() + * * @see fake_build_copy() * @see fake_build_execute_process_script() * @see fake_build_library_script() diff --git a/level_3/fake/c/main/build/library.c b/level_3/fake/c/main/build/library.c index 3280009..91a3fc5 100644 --- a/level_3/fake/c/main/build/library.c +++ b/level_3/fake/c/main/build/library.c @@ -8,8 +8,8 @@ extern "C" { int fake_build_library_script(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) { if (!data || !data->main || !data->setting) return 0; - - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return data->main->child; + if (data->setting->state.status == F_child) return data->main->child; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0; fake_build_touch(data, file_stage); @@ -21,8 +21,8 @@ extern "C" { int fake_build_library_shared(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) { if (!data || !data->main || !data->setting || !data_build) return 0; - - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return data->main->child; + if (data->setting->state.status == F_child) return data->main->child; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0; if (!data_build->setting.build_sources_library.used && !data_build->setting.build_sources_library_shared.used) return 0; fake_build_print_compile_library_shared(data->setting, data->main->message); @@ -437,8 +437,8 @@ extern "C" { int fake_build_library_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) { if (!data || !data->main || !data->setting || !data_build) return 0; - - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return data->main->child; + if (data->setting->state.status == F_child) return data->main->child; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0; if (!data_build->setting.build_sources_library.used && !data_build->setting.build_sources_library_static.used) return 0; fake_build_print_compile_library_static(data->setting, data->main->message); diff --git a/level_3/fake/c/main/build/library.h b/level_3/fake/c/main/build/library.h index 176563c..b8e01d6 100644 --- a/level_3/fake/c/main/build/library.h +++ b/level_3/fake/c/main/build/library.h @@ -30,7 +30,15 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: f_file_link() + * Errors (with error bit) from: f_string_dynamics_resize() + * Errors (with error bit) from: fll_execute_arguments_add() + * + * Errors (with error bit) from: fake_execute() + * Errors (with error bit) from: fake_build_arguments_standard_add() + * Errors (with error bit) from: fake_build_objects_add() + * Errors (with error bit) from: fake_build_sources_add() + * Errors (with error bit) from: fake_build_touch() * @param data_build * The build data. * @param mode @@ -41,6 +49,16 @@ extern "C" { * @return * The return code of the execution process. * This generally is only needed when F_child is returned, where this holds the return status of the child process. + * + * @see f_file_link() + * @see f_string_dynamics_resize() + * @see fll_execute_arguments_add() + * + * @see fake_execute() + * @see fake_build_arguments_standard_add() + * @see fake_build_objects_add() + * @see fake_build_sources_add() + * @see fake_build_touch() */ #ifndef _di_fake_build_library_script_ extern int fake_build_library_script(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage); @@ -55,7 +73,13 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: f_file_link() + * Errors (with error bit) from: fll_execute_arguments_add() + * + * Errors (with error bit) from: fake_build_objects_add() + * Errors (with error bit) from: fake_build_sources_add() + * Errors (with error bit) from: fake_build_touch() + * Errors (with error bit) from: fake_execute() * @param data_build * The build data. * @param mode @@ -66,6 +90,14 @@ extern "C" { * @return * The return code of the execution process. * This generally is only needed when F_child is returned, where this holds the return status of the child process. + * + * @see f_file_link() + * @see fll_execute_arguments_add() + * + * @see fake_build_objects_add() + * @see fake_build_sources_add() + * @see fake_build_touch() + * @see fake_execute() */ #ifndef _di_fake_build_library_shared_ extern int fake_build_library_shared(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage); @@ -80,7 +112,15 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: f_file_name_directory() + * Errors (with error bit) from: f_string_dynamic_append_assure() + * Errors (with error bit) from: f_string_dynamic_prepend() + * Errors (with error bit) from: fll_execute_arguments_add() + * + * Errors (with error bit) from: fake_build_get_file_name_without_extension() + * Errors (with error bit) from: fake_build_print_compile_library_static() + * Errors (with error bit) from: fake_build_touch() + * Errors (with error bit) from: fake_execute() * @param data_build * The build data. * @param mode @@ -93,6 +133,16 @@ extern "C" { * @return * The return code of the execution process. * This generally is only needed when F_child is returned, where this holds the return status of the child process. + * + * @see f_file_name_directory() + * @see f_string_dynamic_append_assure() + * @see f_string_dynamic_prepend() + * @see fll_execute_arguments_add() + * + * @see fake_build_get_file_name_without_extension() + * @see fake_build_print_compile_library_static() + * @see fake_build_touch() + * @see fake_execute() */ #ifndef _di_fake_build_library_static_ extern int fake_build_library_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage); diff --git a/level_3/fake/c/main/build/load.h b/level_3/fake/c/main/build/load.h index 7d8aea7..d08bf1a 100644 --- a/level_3/fake/c/main/build/load.h +++ b/level_3/fake/c/main/build/load.h @@ -52,10 +52,16 @@ extern "C" { * * F_interrupt (with error bit) on interrupt signal received. * + * F_failure (with error bit) on error. + * * Errors (with error bit) from: f_fss_apply_delimit(). * Errors (with error bit) from: f_string_dynamic_append_assure(). * Errors (with error bit) from: fll_fss_extended_read(). + * + * Errors (with error bit) from: fake_build_load_setting_override(). * Errors (with error bit) from: fake_build_load_setting_process(). + * Errors (with error bit) from: fake_file_buffer(). + * Errors (with error bit) from: fake_pipe_buffer(). * @param build_arguments * (optional) A set of custom arguments to pass to the build. * The first argument represents the name of the settings file to use. @@ -75,7 +81,11 @@ extern "C" { * @see f_string_dynamic_append_assure() * @see fll_fss_extended_read() * @see fll_program_print_signal_received() + * + * @see fake_build_load_setting_override() * @see fake_build_load_setting_process() + * @see fake_file_buffer() + * @see fake_pipe_buffer() */ #ifndef _di_fake_build_load_setting_ extern void fake_build_load_setting(fake_data_t * const data, const f_string_statics_t * const build_arguments, const bool process_pipe, fake_build_setting_t * const setting); @@ -86,18 +96,18 @@ extern "C" { * * @param data * The program data. - * @param path_file - * The path to the buffer. - * @param buffer - * The loaded file data. + * + * This alters data.setting.state.status: + * F_none on success. + * + * F_failure (with error bit) on error. + * + * Errors (with error bit) from: f_string_dynamic_append_assure(). * @param setting * All build related setting data from the build setting file are loaded into this. * These setting will have any specified mode property applied. * - * @return - * F_none on success. - * - * Status codes (with error bit) are returned on any problem. + * @see f_string_dynamic_append_assure() */ #ifndef _di_fake_build_load_setting_override_ extern void fake_build_load_setting_override(fake_data_t * const data, fake_build_setting_t * const setting); @@ -108,6 +118,19 @@ extern "C" { * * @param data * The program data. + * + * This alters data.setting.state.status: + * F_none on success. + * + * F_interrupt (with error bit) on interrupt signal received. + * + * F_failure (with error bit) on error. + * + * Errors (with error bit) from: f_path_directory_cleanup(). + * Errors (with error bit) from: f_string_dynamic_append(). + * Errors (with error bit) from: f_string_dynamic_append_nulless(). + * Errors (with error bit) from: f_string_dynamic_increase_by(). + * Errors (with error bit) from: fll_fss_snatch_apart(). * @param checks * If TRUE, perform certain "required" sanity checks. * If FALSE, do not perform certain "required" sanity checks (intended for a fakefile rather than a build settings file). @@ -126,16 +149,9 @@ extern "C" { * All build related setting data from the build setting file are loaded into this. * These setting will have any specified mode property applied. * - * @return - * F_none on success. - * - * Errors (with error bit) from: f_path_directory_cleanup(). - * Errors (with error bit) from: f_string_dynamic_append(). - * Errors (with error bit) from: f_string_dynamic_increase_by(). - * Errors (with error bit) from: fll_fss_snatch_apart(). - * * @see f_path_directory_cleanup() * @see f_string_dynamic_append() + * @see f_string_dynamic_append_nulless() * @see f_string_dynamic_increase_by() * @see fll_fss_snatch_apart() */ diff --git a/level_3/fake/c/main/build/object.c b/level_3/fake/c/main/build/object.c index 795b2b5..85fb308 100644 --- a/level_3/fake/c/main/build/object.c +++ b/level_3/fake/c/main/build/object.c @@ -8,7 +8,8 @@ extern "C" { int fake_build_object_script(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) { if (!data || !data->main || !data->setting || !data_build) return 0; - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return data->main->child; + if (data->setting->state.status == F_child) return data->main->child; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0; fake_build_touch(data, file_stage); @@ -20,7 +21,8 @@ extern "C" { int fake_build_object_shared(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) { if (!data || !data->main || !data->setting || !data_build) return 0; - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return data->main->child; + if (data->setting->state.status == F_child) return data->main->child; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0; if (!data_build->setting.build_sources_object.used && !data_build->setting.build_sources_object_shared.used) return 0; fake_build_print_compile_object_shared(data->setting, data->main->message); @@ -90,7 +92,8 @@ extern "C" { int fake_build_object_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) { if (!data || !data->main || !data->setting || !data_build) return 0; - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return data->main->child; + if (data->setting->state.status == F_child) return data->main->child; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0; if (!data_build->setting.build_sources_object.used && !data_build->setting.build_sources_object_static.used) return 0; fake_build_print_compile_object_static(data->setting, data->main->message); diff --git a/level_3/fake/c/main/build/object.h b/level_3/fake/c/main/build/object.h index 50b0a33..f292f14 100644 --- a/level_3/fake/c/main/build/object.h +++ b/level_3/fake/c/main/build/object.h @@ -30,7 +30,7 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: fake_build_touch(). * @param data_build * The build data. * @param mode @@ -41,6 +41,8 @@ extern "C" { * @return * The return code of the execution process. * This generally is only needed when F_child is returned, where this holds the return status of the child process. + * + * @see fake_build_touch() */ #ifndef _di_fake_build_object_script_ extern int fake_build_object_script(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage); @@ -58,7 +60,10 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: fll_execute_arguments_add(). + * + * Errors (with error bit) from: fake_build_arguments_standard_add(). + * Errors (with error bit) from: fake_build_sources_object_add(). * @param data_build * The build data. * @param mode @@ -69,6 +74,11 @@ extern "C" { * @return * The return code of the execution process. * This generally is only needed when F_child is returned, where this holds the return status of the child process. + * + * @see fll_execute_arguments_add() + * + * @see fake_build_arguments_standard_add() + * @see fake_build_sources_object_add() */ #ifndef _di_fake_build_object_shared_ extern int fake_build_object_shared(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage); @@ -86,7 +96,11 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: fll_execute_arguments_add(). + * + * Errors (with error bit) from: fake_build_arguments_standard_add(). + * Errors (with error bit) from: fake_build_sources_object_add(). + * Errors (with error bit) from: fake_execute(). * @param data_build * The build data. * @param mode @@ -97,6 +111,12 @@ extern "C" { * @return * The return code of the execution process. * This generally is only needed when F_child is returned, where this holds the return status of the child process. + * + * @see fll_execute_arguments_add() + * + * @see fake_build_arguments_standard_add() + * @see fake_build_sources_object_add() + * @see fake_execute() */ #ifndef _di_fake_build_object_static_ extern int fake_build_object_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage); diff --git a/level_3/fake/c/main/build/objects.c b/level_3/fake/c/main/build/objects.c index 6941951..868b26e 100644 --- a/level_3/fake/c/main/build/objects.c +++ b/level_3/fake/c/main/build/objects.c @@ -8,7 +8,8 @@ extern "C" { int fake_build_objects_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) { if (!data || !data->main || !data->setting) return 0; - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return data->main->child; + if (data->setting->state.status == F_child) return data->main->child; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0; if (!data_build->setting.build_sources_library.used) return 0; fake_build_print_compile_object_static_library(data->setting, data->main->message); diff --git a/level_3/fake/c/main/build/objects.h b/level_3/fake/c/main/build/objects.h index 649280c..ad93f3b 100644 --- a/level_3/fake/c/main/build/objects.h +++ b/level_3/fake/c/main/build/objects.h @@ -28,7 +28,17 @@ extern "C" { * This alters data.settings.state.status: * F_none on success. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: f_directory_create(). + * Errors (with error bit) from: f_directory_exists(). + * Errors (with error bit) from: f_file_name_directory(). + * Errors (with error bit) from: f_string_dynamic_append_assure(). + * Errors (with error bit) from: f_string_dynamic_prepend(). + * Errors (with error bit) from: fll_execute_arguments_add(). + * + * Errors (with error bit) from: fake_build_arguments_standard_add(). + * Errors (with error bit) from: fake_build_get_file_name_without_extension(). + * Errors (with error bit) from: fake_build_objects_add(). + * Errors (with error bit) from: fake_execute(). * @param data_build * The build data. * @param mode @@ -39,6 +49,18 @@ extern "C" { * @return * The return code of the execution process. * This generally is only needed when F_child is returned, where this holds the return status of the child process. + * + * @see f_directory_create() + * @see f_directory_exists() + * @see f_file_name_directory() + * @see f_string_dynamic_append_assure() + * @see f_string_dynamic_prepend() + * @see fll_execute_arguments_add() + * + * @see fake_build_arguments_standard_add() + * @see fake_build_get_file_name_without_extension() + * @see fake_build_objects_add() + * @see fake_execute() */ #ifndef _di_fake_build_objects_static_ extern int fake_build_objects_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage); diff --git a/level_3/fake/c/main/build/program.c b/level_3/fake/c/main/build/program.c index d7d98c9..212bf7c 100644 --- a/level_3/fake/c/main/build/program.c +++ b/level_3/fake/c/main/build/program.c @@ -8,7 +8,8 @@ extern "C" { int fake_build_program_script(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) { if (!data || !data->main || !data->setting || !data_build) return 0; - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return data->main->child; + if (data->setting->state.status == F_child) return data->main->child; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0; fake_build_touch(data, file_stage); @@ -20,7 +21,8 @@ extern "C" { int fake_build_program_shared(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) { if (!data || !data->main || !data->setting || !data_build) return 0; - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return data->main->child; + if (data->setting->state.status == F_child) return data->main->child; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0; if (!data_build->setting.build_sources_program.used && !data_build->setting.build_sources_program_shared.used) return 0; fake_build_print_compile_program_shared(data->setting, data->main->message); @@ -113,7 +115,8 @@ extern "C" { int fake_build_program_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) { if (!data || !data->main || !data->setting || !data_build) return 0; - if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true || data->setting->state.status == F_child) return data->main->child; + if (data->setting->state.status == F_child) return data->main->child; + if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0; if (!data_build->setting.build_sources_program.used && !data_build->setting.build_sources_program_static.used) return 0; fake_build_print_compile_program_static(data->setting, data->main->message); diff --git a/level_3/fake/c/main/build/program.h b/level_3/fake/c/main/build/program.h index b9fff3b..d36ad0b 100644 --- a/level_3/fake/c/main/build/program.h +++ b/level_3/fake/c/main/build/program.h @@ -31,7 +31,7 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: fake_build_touch(). * @param data_build * The build data. * @param mode @@ -42,6 +42,8 @@ extern "C" { * @return * The return code of the execution process. * This generally is only needed when F_child is returned, where this holds the return status of the child process. + * + * @see fake_build_touch() */ #ifndef _di_fake_build_program_script_ extern int fake_build_program_script(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage); @@ -56,7 +58,12 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: fll_execute_arguments_add(). + * + * Errors (with error bit) from: fake_build_arguments_standard_add(). + * Errors (with error bit) from: fake_build_objects_add(). + * Errors (with error bit) from: fake_build_sources_add(). + * Errors (with error bit) from: fake_execute(). * @param data_build * The build data. * @param mode @@ -67,6 +74,13 @@ extern "C" { * @return * The return code of the execution process. * This generally is only needed when F_child is returned, where this holds the return status of the child process. + * + * @see fll_execute_arguments_add() + * + * @see fake_build_arguments_standard_add() + * @see fake_build_objects_add() + * @see fake_build_sources_add() + * @see fake_execute() */ #ifndef _di_fake_build_program_shared_ extern int fake_build_program_shared(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage); @@ -81,7 +95,12 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: fll_execute_arguments_add(). + * + * Errors (with error bit) from: fake_build_arguments_standard_add(). + * Errors (with error bit) from: fake_build_objects_add(). + * Errors (with error bit) from: fake_build_sources_add(). + * Errors (with error bit) from: fake_execute(). * @param data_build * The build data. * @param mode @@ -92,6 +111,13 @@ extern "C" { * @return * The return code of the execution process. * This generally is only needed when F_child is returned, where this holds the return status of the child process. + * + * @see fll_execute_arguments_add() + * + * @see fake_build_arguments_standard_add() + * @see fake_build_objects_add() + * @see fake_build_sources_add() + * @see fake_execute() */ #ifndef _di_fake_build_program_static_ extern int fake_build_program_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage); diff --git a/level_3/fake/c/main/build/skeleton.h b/level_3/fake/c/main/build/skeleton.h index 68b47d7..8816ce1 100644 --- a/level_3/fake/c/main/build/skeleton.h +++ b/level_3/fake/c/main/build/skeleton.h @@ -29,6 +29,7 @@ extern "C" { * * Errors (with error bit) from: f_directory_create(). * Errors (with error bit) from: f_directory_exists(). + * * Errors (with error bit) from: fake_build_touch(). * @param data_build * The build data. @@ -40,6 +41,7 @@ extern "C" { * @see f_directory_create() * @see f_directory_exists() * @see fll_program_standard_signal_received() + * * @see fake_build_touch() */ #ifndef _di_fake_build_skeleton_ diff --git a/level_3/fake/c/main/common.c b/level_3/fake/c/main/common.c index 342d684..863ac1a 100644 --- a/level_3/fake/c/main/common.c +++ b/level_3/fake/c/main/common.c @@ -4,30 +4,6 @@ extern "C" { #endif -#ifndef _di_fake_setting_delete_ - f_status_t fake_setting_delete(fake_setting_t * const setting) { - - if (!setting) return F_status_set_error(F_parameter); - - f_string_dynamic_resize(0, &setting->build); - f_string_dynamic_resize(0, &setting->data); - f_string_dynamic_resize(0, &setting->documents); - f_string_dynamic_resize(0, &setting->fakefile); - f_string_dynamic_resize(0, &setting->licenses); - f_string_dynamic_resize(0, &setting->process); - f_string_dynamic_resize(0, &setting->settings); - f_string_dynamic_resize(0, &setting->sources); - f_string_dynamic_resize(0, &setting->work); - - f_string_dynamics_resize(0, &setting->defines); - f_string_dynamics_resize(0, &setting->modes); - - f_uint8s_resize(0, &setting->operations); - - return F_none; - } -#endif // _di_fake_setting_delete_ - #ifndef _di_fake_setting_load_ void fake_setting_load(const f_console_arguments_t arguments, fll_program_data_t * const main, fake_setting_t * const setting) { @@ -467,12 +443,12 @@ extern "C" { #endif // _di_fake_setting_load_ #ifndef _di_fake_setting_load_parameter_callback_ - void fake_setting_load_parameter_callback(const f_console_arguments_t arguments, void * const void_parameters, f_console_parameter_state_t * const state_parameter, void * const void_data) { + void fake_setting_load_parameter_callback(const f_console_arguments_t arguments, void * const void_parameters, f_console_parameter_state_t * const parameter_state, void * const void_data) { - if (!state_parameter || !state_parameter->state) return; + if (!parameter_state || !parameter_state->state) return; - if (!void_parameters || !void_data || (state_parameter->type != f_console_parameter_state_type_simple_e && state_parameter->type != f_console_parameter_state_type_miss_e)) { - state_parameter->state->status = F_process; + if (!void_parameters || !void_data || (parameter_state->type != f_console_parameter_state_type_simple_e && parameter_state->type != f_console_parameter_state_type_miss_e)) { + parameter_state->state->status = F_process; return; } @@ -482,9 +458,9 @@ extern "C" { if (!data->setting) return; - state_parameter->state->status = f_uint8s_increase(state_parameter->state->step_small, &data->setting->operations); + parameter_state->state->status = f_uint8s_increase(parameter_state->state->step_small, &data->setting->operations); - if (F_status_is_error(state_parameter->state->status)) { + if (F_status_is_error(parameter_state->state->status)) { fake_print_line_first(data->setting, data->main->message); fake_print_error(data->setting, data->main->error, macro_fake_f(f_uint8s_increase)); @@ -492,7 +468,7 @@ extern "C" { return; } - switch (state_parameter->at) { + switch (parameter_state->at) { case fake_parameter_operation_build_e: data->setting->operations.array[data->setting->operations.used++] = fake_operation_build_e; data->setting->flag |= fake_main_flag_operation_build_e; @@ -518,12 +494,12 @@ extern "C" { break; default: - state_parameter->state->status = F_process; + parameter_state->state->status = F_process; return; } - state_parameter->state->status = F_none; + parameter_state->state->status = F_none; } #endif // _di_fake_setting_load_parameter_callback_ @@ -538,87 +514,6 @@ extern "C" { } #endif // _di_fake_setting_unload_ -#ifndef _di_fake_data_delete_ - f_status_t fake_data_delete(fake_data_t * const data) { - - f_string_dynamic_resize(0, &data->path_build); - f_string_dynamic_resize(0, &data->path_build_documentation); - f_string_dynamic_resize(0, &data->path_build_documents); - f_string_dynamic_resize(0, &data->path_build_includes); - f_string_dynamic_resize(0, &data->path_build_libraries); - f_string_dynamic_resize(0, &data->path_build_libraries_script); - f_string_dynamic_resize(0, &data->path_build_libraries_shared); - f_string_dynamic_resize(0, &data->path_build_libraries_static); - f_string_dynamic_resize(0, &data->path_build_objects); - f_string_dynamic_resize(0, &data->path_build_objects_script); - f_string_dynamic_resize(0, &data->path_build_objects_shared); - f_string_dynamic_resize(0, &data->path_build_objects_static); - f_string_dynamic_resize(0, &data->path_build_programs); - f_string_dynamic_resize(0, &data->path_build_programs_script); - f_string_dynamic_resize(0, &data->path_build_programs_shared); - f_string_dynamic_resize(0, &data->path_build_programs_static); - f_string_dynamic_resize(0, &data->path_build_settings); - f_string_dynamic_resize(0, &data->path_build_stage); - - f_string_dynamic_resize(0, &data->path_data_build); - f_string_dynamic_resize(0, &data->path_data_documentation); - f_string_dynamic_resize(0, &data->path_data_settings); - - f_string_dynamic_resize(0, &data->path_documents); - - f_string_dynamic_resize(0, &data->path_licenses); - - f_string_dynamic_resize(0, &data->path_work_includes); - f_string_dynamic_resize(0, &data->path_work_libraries); - f_string_dynamic_resize(0, &data->path_work_libraries_script); - f_string_dynamic_resize(0, &data->path_work_libraries_shared); - f_string_dynamic_resize(0, &data->path_work_libraries_static); - f_string_dynamic_resize(0, &data->path_work_programs); - f_string_dynamic_resize(0, &data->path_work_programs_script); - f_string_dynamic_resize(0, &data->path_work_programs_shared); - f_string_dynamic_resize(0, &data->path_work_programs_static); - - f_string_dynamic_resize(0, &data->file_data_build_defines); - f_string_dynamic_resize(0, &data->file_data_build_dependencies); - f_string_dynamic_resize(0, &data->file_data_build_process_post); - f_string_dynamic_resize(0, &data->file_data_build_process_pre); - f_string_dynamic_resize(0, &data->file_data_build_fakefile); - f_string_dynamic_resize(0, &data->file_data_build_settings); - - f_string_dynamic_resize(0, &data->file_documents_readme); - - return F_none; - } -#endif // _di_fake_data_delete_ - -#ifndef _di_fake_make_data_delete_ - f_status_t fake_make_data_delete(fake_make_data_t * const data) { - - macro_fake_build_setting_t_delete_simple(data->setting_build); - macro_fake_make_setting_t_delete_simple(data->setting_make); - - f_string_maps_resize(0, &data->environment); - - macro_fake_make_parameter_delete_simple(data->parameter); - macro_fake_make_parameter_delete_simple(data->parameter_option); - macro_fake_make_parameter_delete_simple(data->parameter_value); - macro_fake_make_path_delete_simple(data->path); - - f_fss_nameds_resize(0, &data->fakefile); - - f_string_dynamic_resize(0, &data->buffer); - f_string_dynamic_resize(0, &data->cache_1); - f_string_dynamic_resize(0, &data->cache_2); - f_string_dynamic_resize(0, &data->cache_path); - - f_string_dynamics_resize(0, &data->cache_arguments); - - f_iki_data_delete(&data->cache_iki); - - return F_none; - } -#endif // _di_fake_make_data_delete_ - #ifdef __cplusplus } // extern "C" #endif diff --git a/level_3/fake/c/main/common.h b/level_3/fake/c/main/common.h index 10da11d..fb54d68 100644 --- a/level_3/fake/c/main/common.h +++ b/level_3/fake/c/main/common.h @@ -17,23 +17,6 @@ extern "C" { #endif /** - * Delete the program main setting data. - * - * @param setting - * The program main setting data. - * - * This does not alter setting.state.status. - * - * @return - * F_none on success. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fake_setting_delete_ - extern f_status_t fake_setting_delete(fake_setting_t * const setting); -#endif // _di_fake_setting_delete_ - -/** * Perform the standard program setting load process. * * This prints error messages as appropriate. @@ -51,10 +34,22 @@ extern "C" { * F_none on success. * * Errors (with error bit) from: f_console_parameter_process(). + * Errors (with error bit) from: f_path_directory_cleanup(). + * Errors (with error bit) from: f_string_dynamic_resize(). + * Errors (with error bit) from: f_utf_is_word_dash_plus(). + * Errors (with error bit) from: f_uint8s_increase_by(). + * Errors (with error bit) from: fll_program_parameter_additional_rip(). * Errors (with error bit) from: fll_program_parameter_process_context(). + * Errors (with error bit) from: fll_program_parameter_process_verbosity(). * * @see f_console_parameter_process() + * @see f_path_directory_cleanup() + * @see f_string_dynamic_resize() + * @see f_utf_is_word_dash_plus() + * @see f_uint8s_increase_by() + * @see fll_program_parameter_additional_rip() * @see fll_program_parameter_process_context() + * @see fll_program_parameter_process_verbosity() */ #ifndef _di_fake_setting_load_ extern void fake_setting_load(const f_console_arguments_t arguments, fll_program_data_t * const main, fake_setting_t * const setting); @@ -72,16 +67,23 @@ extern "C" { * @param parameters * The parameters array (generally from main.parameters) representing all of the parameters to look for. * This must be of type f_console_parameters_t. - * @param state + * @param parameter_state * The internal state data primarily managed by f_console_parameter_process(). * The state.status is used to represent the return status of this callback. + * + * This alters parameter_state->state->status: + * F_none on success. + * F_process on success, designating that processing should be performed (see f_console_parameter_process()). + * + * Errors (with error bit) from: f_uint8s_increase(). * @param data * This must be of the type fake_setting_t. * * @see f_console_parameter_process() + * @see f_uint8s_increase() */ #ifndef _di_fake_setting_load_parameter_callback_ - extern void fake_setting_load_parameter_callback(const f_console_arguments_t arguments, void * const parameters, f_console_parameter_state_t * const state, void * const data); + extern void fake_setting_load_parameter_callback(const f_console_arguments_t arguments, void * const parameters, f_console_parameter_state_t * const parameter_state, void * const data); #endif // _di_fake_setting_load_parameter_callback_ /** @@ -108,40 +110,6 @@ extern "C" { extern f_status_t fake_setting_unload(fll_program_data_t * const main, fake_setting_t * const setting); #endif // _di_fake_setting_unload_ -/** - * Deallocate data. - * - * @param data - * The program data. - * - * @return - * F_none on success. - * - * Status codes (with error bit) are returned on any problem. - * - * @see fake_main() - */ -#ifndef _di_fake_data_delete_ - extern f_status_t fake_data_delete(fake_data_t * const data); -#endif // _di_fake_data_delete_ - -/** - * Deallocate make data. - * - * @param data - * The make data. - * - * @return - * F_none on success. - * - * @see f_fss_nameds_resize() - * @see f_string_dynamic_resize() - * @see f_string_maps_resize() - */ -#ifndef _di_fake_make_data_delete_ - extern f_status_t fake_make_data_delete(fake_make_data_t * const data); -#endif // _di_fake_make_data_delete_ - #ifdef __cplusplus } // extern "C" #endif diff --git a/level_3/fake/c/main/common/print.c b/level_3/fake/c/main/common/print.c index e2e8b7a..8a65b32 100644 --- a/level_3/fake/c/main/common/print.c +++ b/level_3/fake/c/main/common/print.c @@ -46,6 +46,7 @@ extern "C" { "f_file_touch", "f_file_write", "f_fss_apply_delimit", + "f_fss_nameds_resize", "f_path_change", "f_path_current", "f_path_directory_cleanup", @@ -105,7 +106,6 @@ extern "C" { "fake_make_path_relative", "fake_path_generate_string_dynamic", "fake_skeleton_operate_directory_create", - "macro_f_fss_nameds_t_resize", "macro_f_string_map_multis_t_resize", }; #endif // _di_fake_f_a_ diff --git a/level_3/fake/c/main/common/print.h b/level_3/fake/c/main/common/print.h index 4942a07..19e4ce4 100644 --- a/level_3/fake/c/main/common/print.h +++ b/level_3/fake/c/main/common/print.h @@ -79,6 +79,7 @@ extern "C" { fake_f_f_file_touch_e, fake_f_f_file_write_e, fake_f_f_fss_apply_delimit_e, + fake_f_f_fss_nameds_resize_e, fake_f_f_path_change_e, fake_f_f_path_current_e, fake_f_f_path_directory_cleanup_e, @@ -137,7 +138,6 @@ extern "C" { fake_f_fake_make_path_relative_e, fake_f_fake_path_generate_string_dynamic_e, fake_f_fake_skeleton_operate_directory_create_e, - fake_f_macro_f_fss_nameds_t_resize_e, fake_f_macro_f_string_map_multis_t_resize_e, }; // enum #endif // _di_fake_f_e_ diff --git a/level_3/fake/c/main/common/type.c b/level_3/fake/c/main/common/type.c index a84a048..a185125 100644 --- a/level_3/fake/c/main/common/type.c +++ b/level_3/fake/c/main/common/type.c @@ -4,6 +4,277 @@ extern "C" { #endif +#ifndef _di_fake_build_data_delete_ + void fake_build_data_delete(fake_build_data_t * const build_data) { + + if (!build_data) return; + + fake_build_setting_delete(&build_data->setting); + f_string_maps_resize(0, &build_data->environment); + } +#endif // _di_fake_build_data_delete_ + +#ifndef _di_fake_build_setting_delete_ + void fake_build_setting_delete(fake_build_setting_t * const build_setting) { + + if (!build_setting) return; + + f_string_dynamic_resize(0, &build_setting->build_compiler); + f_string_dynamic_resize(0, &build_setting->build_indexer); + f_string_dynamic_resize(0, &build_setting->build_name); + f_string_dynamic_resize(0, &build_setting->build_sources_object); + f_string_dynamic_resize(0, &build_setting->build_sources_object_shared); + f_string_dynamic_resize(0, &build_setting->build_sources_object_static); + f_string_dynamic_resize(0, &build_setting->path_headers); + f_string_dynamic_resize(0, &build_setting->path_language); + f_string_dynamic_resize(0, &build_setting->path_library_script); + f_string_dynamic_resize(0, &build_setting->path_library_shared); + f_string_dynamic_resize(0, &build_setting->path_library_static); + f_string_dynamic_resize(0, &build_setting->path_object_script); + f_string_dynamic_resize(0, &build_setting->path_object_shared); + f_string_dynamic_resize(0, &build_setting->path_object_static); + f_string_dynamic_resize(0, &build_setting->path_program_script); + f_string_dynamic_resize(0, &build_setting->path_program_shared); + f_string_dynamic_resize(0, &build_setting->path_program_static); + f_string_dynamic_resize(0, &build_setting->path_sources); + f_string_dynamic_resize(0, &build_setting->path_sources_object); + f_string_dynamic_resize(0, &build_setting->process_post); + f_string_dynamic_resize(0, &build_setting->process_pre); + f_string_dynamic_resize(0, &build_setting->version_major); + f_string_dynamic_resize(0, &build_setting->version_major_prefix); + f_string_dynamic_resize(0, &build_setting->version_micro); + f_string_dynamic_resize(0, &build_setting->version_micro_prefix); + f_string_dynamic_resize(0, &build_setting->version_minor); + f_string_dynamic_resize(0, &build_setting->version_minor_prefix); + f_string_dynamic_resize(0, &build_setting->version_nano); + f_string_dynamic_resize(0, &build_setting->version_nano_prefix); + + f_string_dynamics_resize(0, &build_setting->build_indexer_arguments); + f_string_dynamics_resize(0, &build_setting->build_libraries); + f_string_dynamics_resize(0, &build_setting->build_libraries_shared); + f_string_dynamics_resize(0, &build_setting->build_libraries_static); + f_string_dynamics_resize(0, &build_setting->build_objects_library); + f_string_dynamics_resize(0, &build_setting->build_objects_library_shared); + f_string_dynamics_resize(0, &build_setting->build_objects_library_static); + f_string_dynamics_resize(0, &build_setting->build_objects_program); + f_string_dynamics_resize(0, &build_setting->build_objects_program_shared); + f_string_dynamics_resize(0, &build_setting->build_objects_program_static); + f_string_dynamics_resize(0, &build_setting->build_sources_documentation); + f_string_dynamics_resize(0, &build_setting->build_sources_headers); + f_string_dynamics_resize(0, &build_setting->build_sources_headers_shared); + f_string_dynamics_resize(0, &build_setting->build_sources_headers_static); + f_string_dynamics_resize(0, &build_setting->build_sources_library); + f_string_dynamics_resize(0, &build_setting->build_sources_library_shared); + f_string_dynamics_resize(0, &build_setting->build_sources_library_static); + f_string_dynamics_resize(0, &build_setting->build_sources_program); + f_string_dynamics_resize(0, &build_setting->build_sources_program_shared); + f_string_dynamics_resize(0, &build_setting->build_sources_program_static); + f_string_dynamics_resize(0, &build_setting->build_sources_script); + f_string_dynamics_resize(0, &build_setting->build_sources_setting); + f_string_dynamics_resize(0, &build_setting->defines); + f_string_dynamics_resize(0, &build_setting->defines_library); + f_string_dynamics_resize(0, &build_setting->defines_library_shared); + f_string_dynamics_resize(0, &build_setting->defines_library_static); + f_string_dynamics_resize(0, &build_setting->defines_object); + f_string_dynamics_resize(0, &build_setting->defines_object_shared); + f_string_dynamics_resize(0, &build_setting->defines_object_static); + f_string_dynamics_resize(0, &build_setting->defines_program); + f_string_dynamics_resize(0, &build_setting->defines_program_shared); + f_string_dynamics_resize(0, &build_setting->defines_program_static); + f_string_dynamics_resize(0, &build_setting->defines_shared); + f_string_dynamics_resize(0, &build_setting->defines_static); + f_string_dynamics_resize(0, &build_setting->environment); + f_string_dynamics_resize(0, &build_setting->flags); + f_string_dynamics_resize(0, &build_setting->flags_library); + f_string_dynamics_resize(0, &build_setting->flags_library_shared); + f_string_dynamics_resize(0, &build_setting->flags_library_static); + f_string_dynamics_resize(0, &build_setting->flags_object); + f_string_dynamics_resize(0, &build_setting->flags_object_shared); + f_string_dynamics_resize(0, &build_setting->flags_object_static); + f_string_dynamics_resize(0, &build_setting->flags_program); + f_string_dynamics_resize(0, &build_setting->flags_program_shared); + f_string_dynamics_resize(0, &build_setting->flags_program_static); + f_string_dynamics_resize(0, &build_setting->flags_shared); + f_string_dynamics_resize(0, &build_setting->flags_static); + f_string_dynamics_resize(0, &build_setting->modes); + f_string_dynamics_resize(0, &build_setting->modes_default); + } +#endif // _di_fake_build_setting_delete_ + +#ifndef _di_fake_build_stage_delete_ + void fake_build_stage_delete(fake_build_stage_t * const build_stage) { + + if (!build_stage) return; + + f_string_dynamic_resize(0, &build_stage->file_library_script); + f_string_dynamic_resize(0, &build_stage->file_library_shared); + f_string_dynamic_resize(0, &build_stage->file_library_static); + f_string_dynamic_resize(0, &build_stage->file_object_script); + f_string_dynamic_resize(0, &build_stage->file_object_shared); + f_string_dynamic_resize(0, &build_stage->file_object_static); + f_string_dynamic_resize(0, &build_stage->file_objects_static); + f_string_dynamic_resize(0, &build_stage->file_process_post); + f_string_dynamic_resize(0, &build_stage->file_process_pre); + f_string_dynamic_resize(0, &build_stage->file_program_script); + f_string_dynamic_resize(0, &build_stage->file_program_shared); + f_string_dynamic_resize(0, &build_stage->file_program_static); + f_string_dynamic_resize(0, &build_stage->file_skeleton); + f_string_dynamic_resize(0, &build_stage->file_sources_documentation); + f_string_dynamic_resize(0, &build_stage->file_sources_headers); + f_string_dynamic_resize(0, &build_stage->file_sources_script); + f_string_dynamic_resize(0, &build_stage->file_sources_settings); + } +#endif // _di_fake_build_stage_delete_ + +#ifndef _di_fake_data_delete_ + void fake_data_delete(fake_data_t * const data) { + + if (!data) return; + + f_string_dynamic_resize(0, &data->path_build); + f_string_dynamic_resize(0, &data->path_build_documentation); + f_string_dynamic_resize(0, &data->path_build_documents); + f_string_dynamic_resize(0, &data->path_build_includes); + f_string_dynamic_resize(0, &data->path_build_libraries); + f_string_dynamic_resize(0, &data->path_build_libraries_script); + f_string_dynamic_resize(0, &data->path_build_libraries_shared); + f_string_dynamic_resize(0, &data->path_build_libraries_static); + f_string_dynamic_resize(0, &data->path_build_objects); + f_string_dynamic_resize(0, &data->path_build_objects_script); + f_string_dynamic_resize(0, &data->path_build_objects_shared); + f_string_dynamic_resize(0, &data->path_build_objects_static); + f_string_dynamic_resize(0, &data->path_build_programs); + f_string_dynamic_resize(0, &data->path_build_programs_script); + f_string_dynamic_resize(0, &data->path_build_programs_shared); + f_string_dynamic_resize(0, &data->path_build_programs_static); + f_string_dynamic_resize(0, &data->path_build_settings); + f_string_dynamic_resize(0, &data->path_build_stage); + + f_string_dynamic_resize(0, &data->path_data_build); + f_string_dynamic_resize(0, &data->path_data_documentation); + f_string_dynamic_resize(0, &data->path_data_settings); + + f_string_dynamic_resize(0, &data->path_documents); + + f_string_dynamic_resize(0, &data->path_licenses); + + f_string_dynamic_resize(0, &data->path_work_includes); + f_string_dynamic_resize(0, &data->path_work_libraries); + f_string_dynamic_resize(0, &data->path_work_libraries_script); + f_string_dynamic_resize(0, &data->path_work_libraries_shared); + f_string_dynamic_resize(0, &data->path_work_libraries_static); + f_string_dynamic_resize(0, &data->path_work_programs); + f_string_dynamic_resize(0, &data->path_work_programs_script); + f_string_dynamic_resize(0, &data->path_work_programs_shared); + f_string_dynamic_resize(0, &data->path_work_programs_static); + + f_string_dynamic_resize(0, &data->file_data_build_defines); + f_string_dynamic_resize(0, &data->file_data_build_dependencies); + f_string_dynamic_resize(0, &data->file_data_build_process_post); + f_string_dynamic_resize(0, &data->file_data_build_process_pre); + f_string_dynamic_resize(0, &data->file_data_build_fakefile); + f_string_dynamic_resize(0, &data->file_data_build_settings); + + f_string_dynamic_resize(0, &data->file_documents_readme); + } +#endif // _di_fake_data_delete_ + +#ifndef _di_fake_make_data_delete_ + void fake_make_data_delete(fake_make_data_t * const data_make) { + + if (!data_make) return; + + fake_build_setting_delete(&data_make->setting_build); + fake_make_setting_delete(&data_make->setting_make); + + f_string_maps_resize(0, &data_make->environment); + + f_string_dynamics_resize(0, &data_make->parameter.build); + f_string_dynamics_resize(0, &data_make->parameter.color); + f_string_dynamics_resize(0, &data_make->parameter.data); + f_string_dynamics_resize(0, &data_make->parameter.define); + f_string_dynamics_resize(0, &data_make->parameter.documents); + f_string_dynamics_resize(0, &data_make->parameter.fakefile); + f_string_dynamics_resize(0, &data_make->parameter.licenses); + f_string_dynamics_resize(0, &data_make->parameter.mode); + f_string_dynamics_resize(0, &data_make->parameter.process); + f_string_dynamics_resize(0, &data_make->parameter.settings); + f_string_dynamics_resize(0, &data_make->parameter.sources); + f_string_dynamics_resize(0, &data_make->parameter.verbosity); + f_string_dynamics_resize(0, &data_make->parameter.work); + + f_string_dynamics_resize(0, &data_make->parameter_option.build); + f_string_dynamics_resize(0, &data_make->parameter_option.color); + f_string_dynamics_resize(0, &data_make->parameter_option.data); + f_string_dynamics_resize(0, &data_make->parameter_option.define); + f_string_dynamics_resize(0, &data_make->parameter_option.documents); + f_string_dynamics_resize(0, &data_make->parameter_option.fakefile); + f_string_dynamics_resize(0, &data_make->parameter_option.licenses); + f_string_dynamics_resize(0, &data_make->parameter_option.mode); + f_string_dynamics_resize(0, &data_make->parameter_option.process); + f_string_dynamics_resize(0, &data_make->parameter_option.settings); + f_string_dynamics_resize(0, &data_make->parameter_option.sources); + f_string_dynamics_resize(0, &data_make->parameter_option.verbosity); + f_string_dynamics_resize(0, &data_make->parameter_option.work); + + f_string_dynamics_resize(0, &data_make->parameter_value.build); + f_string_dynamics_resize(0, &data_make->parameter_value.color); + f_string_dynamics_resize(0, &data_make->parameter_value.data); + f_string_dynamics_resize(0, &data_make->parameter_value.define); + f_string_dynamics_resize(0, &data_make->parameter_value.documents); + f_string_dynamics_resize(0, &data_make->parameter_value.fakefile); + f_string_dynamics_resize(0, &data_make->parameter_value.licenses); + f_string_dynamics_resize(0, &data_make->parameter_value.mode); + f_string_dynamics_resize(0, &data_make->parameter_value.process); + f_string_dynamics_resize(0, &data_make->parameter_value.settings); + f_string_dynamics_resize(0, &data_make->parameter_value.sources); + f_string_dynamics_resize(0, &data_make->parameter_value.verbosity); + f_string_dynamics_resize(0, &data_make->parameter_value.work); + + f_string_dynamics_resize(0, &data_make->path.stack); + + f_fss_nameds_resize(0, &data_make->fakefile); + + f_string_dynamic_resize(0, &data_make->buffer); + f_string_dynamic_resize(0, &data_make->cache_1); + f_string_dynamic_resize(0, &data_make->cache_2); + f_string_dynamic_resize(0, &data_make->cache_path); + + f_string_dynamics_resize(0, &data_make->cache_arguments); + + f_iki_data_delete(&data_make->cache_iki); + } +#endif // _di_fake_make_data_delete_ + +#ifndef _di_fake_make_setting_delete_ + void fake_make_setting_delete(fake_make_setting_t * const setting_make) { + + f_string_map_multis_resize(0, &setting_make->parameter); + } +#endif // _di_fake_make_setting_delete_ + +#ifndef _di_fake_setting_delete_ + void fake_setting_delete(fake_setting_t * const setting) { + + if (!setting) return; + + f_string_dynamic_resize(0, &setting->build); + f_string_dynamic_resize(0, &setting->data); + f_string_dynamic_resize(0, &setting->documents); + f_string_dynamic_resize(0, &setting->fakefile); + f_string_dynamic_resize(0, &setting->licenses); + f_string_dynamic_resize(0, &setting->process); + f_string_dynamic_resize(0, &setting->settings); + f_string_dynamic_resize(0, &setting->sources); + f_string_dynamic_resize(0, &setting->work); + + f_string_dynamics_resize(0, &setting->defines); + f_string_dynamics_resize(0, &setting->modes); + + f_uint8s_resize(0, &setting->operations); + } +#endif // _di_fake_setting_delete_ + #ifdef __cplusplus } // extern "C" #endif diff --git a/level_3/fake/c/main/common/type.h b/level_3/fake/c/main/common/type.h index 1c33e55..297e5f8 100644 --- a/level_3/fake/c/main/common/type.h +++ b/level_3/fake/c/main/common/type.h @@ -574,86 +574,6 @@ extern "C" { f_string_dynamics_t_initialize, \ } - #define macro_fake_build_setting_t_delete_simple(setting) \ - macro_f_string_dynamic_t_delete_simple(setting.build_compiler) \ - macro_f_string_dynamic_t_delete_simple(setting.build_indexer) \ - macro_f_string_dynamic_t_delete_simple(setting.build_name) \ - macro_f_string_dynamic_t_delete_simple(setting.build_sources_object) \ - macro_f_string_dynamic_t_delete_simple(setting.build_sources_object_shared) \ - macro_f_string_dynamic_t_delete_simple(setting.build_sources_object_static) \ - macro_f_string_dynamic_t_delete_simple(setting.path_headers) \ - macro_f_string_dynamic_t_delete_simple(setting.path_language) \ - macro_f_string_dynamic_t_delete_simple(setting.path_library_script) \ - macro_f_string_dynamic_t_delete_simple(setting.path_library_shared) \ - macro_f_string_dynamic_t_delete_simple(setting.path_library_static) \ - macro_f_string_dynamic_t_delete_simple(setting.path_object_script) \ - macro_f_string_dynamic_t_delete_simple(setting.path_object_shared) \ - macro_f_string_dynamic_t_delete_simple(setting.path_object_static) \ - macro_f_string_dynamic_t_delete_simple(setting.path_program_script) \ - macro_f_string_dynamic_t_delete_simple(setting.path_program_shared) \ - macro_f_string_dynamic_t_delete_simple(setting.path_program_static) \ - macro_f_string_dynamic_t_delete_simple(setting.path_sources) \ - macro_f_string_dynamic_t_delete_simple(setting.path_sources_object) \ - macro_f_string_dynamic_t_delete_simple(setting.process_post) \ - macro_f_string_dynamic_t_delete_simple(setting.process_pre) \ - macro_f_string_dynamic_t_delete_simple(setting.version_major) \ - macro_f_string_dynamic_t_delete_simple(setting.version_major_prefix) \ - macro_f_string_dynamic_t_delete_simple(setting.version_micro) \ - macro_f_string_dynamic_t_delete_simple(setting.version_micro_prefix) \ - macro_f_string_dynamic_t_delete_simple(setting.version_minor) \ - macro_f_string_dynamic_t_delete_simple(setting.version_minor_prefix) \ - macro_f_string_dynamic_t_delete_simple(setting.version_nano) \ - macro_f_string_dynamic_t_delete_simple(setting.version_nano_prefix) \ - macro_f_string_dynamics_t_delete_simple(setting.build_indexer_arguments) \ - macro_f_string_dynamics_t_delete_simple(setting.build_libraries) \ - macro_f_string_dynamics_t_delete_simple(setting.build_libraries_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.build_libraries_static) \ - macro_f_string_dynamics_t_delete_simple(setting.build_objects_library) \ - macro_f_string_dynamics_t_delete_simple(setting.build_objects_library_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.build_objects_library_static) \ - macro_f_string_dynamics_t_delete_simple(setting.build_objects_program) \ - macro_f_string_dynamics_t_delete_simple(setting.build_objects_program_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.build_objects_program_static) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_documentation) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_headers) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_headers_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_headers_static) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_library) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_library_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_library_static) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_program) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_program_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_program_static) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_script) \ - macro_f_string_dynamics_t_delete_simple(setting.build_sources_setting) \ - macro_f_string_dynamics_t_delete_simple(setting.defines) \ - macro_f_string_dynamics_t_delete_simple(setting.defines_library) \ - macro_f_string_dynamics_t_delete_simple(setting.defines_library_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.defines_library_static) \ - macro_f_string_dynamics_t_delete_simple(setting.defines_object) \ - macro_f_string_dynamics_t_delete_simple(setting.defines_object_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.defines_object_static) \ - macro_f_string_dynamics_t_delete_simple(setting.defines_program) \ - macro_f_string_dynamics_t_delete_simple(setting.defines_program_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.defines_program_static) \ - macro_f_string_dynamics_t_delete_simple(setting.defines_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.defines_static) \ - macro_f_string_dynamics_t_delete_simple(setting.environment) \ - macro_f_string_dynamics_t_delete_simple(setting.flags) \ - macro_f_string_dynamics_t_delete_simple(setting.flags_library) \ - macro_f_string_dynamics_t_delete_simple(setting.flags_library_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.flags_library_static) \ - macro_f_string_dynamics_t_delete_simple(setting.flags_object) \ - macro_f_string_dynamics_t_delete_simple(setting.flags_object_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.flags_object_static) \ - macro_f_string_dynamics_t_delete_simple(setting.flags_program) \ - macro_f_string_dynamics_t_delete_simple(setting.flags_program_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.flags_program_static) \ - macro_f_string_dynamics_t_delete_simple(setting.flags_shared) \ - macro_f_string_dynamics_t_delete_simple(setting.flags_static) \ - macro_f_string_dynamics_t_delete_simple(setting.modes) \ - macro_f_string_dynamics_t_delete_simple(setting.modes_default) - #define fake_build_setting_total_d 89 #endif // _di_fake_build_setting_t_ @@ -699,25 +619,6 @@ extern "C" { } #define fake_build_stage_total_d 17 - - #define macro_fake_build_stage_t_delete_simple(stage) \ - macro_f_string_dynamic_t_delete_simple(stage.file_library_script) \ - macro_f_string_dynamic_t_delete_simple(stage.file_library_shared) \ - macro_f_string_dynamic_t_delete_simple(stage.file_library_static) \ - macro_f_string_dynamic_t_delete_simple(stage.file_object_script) \ - macro_f_string_dynamic_t_delete_simple(stage.file_object_shared) \ - macro_f_string_dynamic_t_delete_simple(stage.file_object_static) \ - macro_f_string_dynamic_t_delete_simple(stage.file_objects_static) \ - macro_f_string_dynamic_t_delete_simple(stage.file_process_post) \ - macro_f_string_dynamic_t_delete_simple(stage.file_process_pre) \ - macro_f_string_dynamic_t_delete_simple(stage.file_program_script) \ - macro_f_string_dynamic_t_delete_simple(stage.file_program_shared) \ - macro_f_string_dynamic_t_delete_simple(stage.file_program_static) \ - macro_f_string_dynamic_t_delete_simple(stage.file_skeleton) \ - macro_f_string_dynamic_t_delete_simple(stage.file_sources_documentation) \ - macro_f_string_dynamic_t_delete_simple(stage.file_sources_headers) \ - macro_f_string_dynamic_t_delete_simple(stage.file_sources_script) \ - macro_f_string_dynamic_t_delete_simple(stage.file_sources_settings) #endif // _di_fake_build_stage_t_ /** @@ -736,10 +637,6 @@ extern "C" { fake_build_setting_t_initialize, \ f_string_maps_t_initialize, \ } - - #define macro_fake_build_main_delete_simple(build) \ - macro_fake_build_setting_t_delete_simple(build.setting) \ - macro_f_string_maps_t_delete_simple(build.environment); #endif // _di_fake_build_data_t_ #ifndef _di_fake_make_setting_t_ @@ -756,9 +653,6 @@ extern "C" { 0, \ f_string_map_multis_t_initialize, \ } - - #define macro_fake_make_setting_t_delete_simple(setting) \ - macro_f_string_map_multis_t_delete_simple(setting.parameter) #endif // _di_fake_make_setting_t_ #ifndef _di_fake_make_parameter_t_ @@ -793,21 +687,6 @@ extern "C" { f_string_dynamics_t_initialize, \ f_string_dynamics_t_initialize, \ } - - #define macro_fake_make_parameter_delete_simple(parameter) \ - macro_f_string_dynamics_t_delete_simple(parameter.build) \ - macro_f_string_dynamics_t_delete_simple(parameter.color) \ - macro_f_string_dynamics_t_delete_simple(parameter.data) \ - macro_f_string_dynamics_t_delete_simple(parameter.define) \ - macro_f_string_dynamics_t_delete_simple(parameter.documents) \ - macro_f_string_dynamics_t_delete_simple(parameter.fakefile) \ - macro_f_string_dynamics_t_delete_simple(parameter.licenses) \ - macro_f_string_dynamics_t_delete_simple(parameter.mode) \ - macro_f_string_dynamics_t_delete_simple(parameter.process) \ - macro_f_string_dynamics_t_delete_simple(parameter.settings) \ - macro_f_string_dynamics_t_delete_simple(parameter.sources) \ - macro_f_string_dynamics_t_delete_simple(parameter.verbosity) \ - macro_f_string_dynamics_t_delete_simple(parameter.work) #endif // _di_fake_make_parameter_t_ #ifndef _di_fake_make_path_t_ @@ -821,9 +700,6 @@ extern "C" { f_file_t_initialize, \ f_string_dynamics_t_initialize, \ } - - #define macro_fake_make_path_delete_simple(path) \ - macro_f_string_dynamics_t_delete_simple(path.stack); #endif // _di_fake_make_path_t_ /** @@ -902,6 +778,90 @@ extern "C" { } #endif // _di_fake_make_data_t_ +/** + * Delete the build data. + * + * @param build_data + * The build data. + * + * This does not alter setting.state.status. + */ +#ifndef _di_fake_build_data_delete_ + extern void fake_build_data_delete(fake_build_data_t * const build_data); +#endif // _di_fake_build_data_delete_ + +/** + * Delete the build data. + * + * @param build_setting + * The build setting. + * + * This does not alter setting.state.status. + */ +#ifndef _di_fake_build_setting_delete_ + extern void fake_build_setting_delete(fake_build_setting_t * const build_setting); +#endif // _di_fake_build_setting_delete_ + +/** + * Delete the build data. + * + * @param build_stage + * The build stage. + * + * This does not alter setting.state.status. + */ +#ifndef _di_fake_build_stage_delete_ + extern void fake_build_stage_delete(fake_build_stage_t * const build_stage); +#endif // _di_fake_build_stage_delete_ + +/** + * Deallocate program data. + * + * @param data + * The program data. + * + * This does not alter data.settings.state.status. + */ +#ifndef _di_fake_data_delete_ + extern void fake_data_delete(fake_data_t * const data); +#endif // _di_fake_data_delete_ + +/** + * Deallocate make data. + * + * @param data_make + * The make data. + * + * This does not alter data_make.setting.state.status. + */ +#ifndef _di_fake_make_data_delete_ + extern void fake_make_data_delete(fake_make_data_t * const data_make); +#endif // _di_fake_make_data_delete_ + +/** + * Deallocate make setting data. + * + * @param setting_make + * The make setting data. + * + * This does not alter data_make.setting.state.status. + */ +#ifndef _di_fake_make_setting_delete_ + extern void fake_make_setting_delete(fake_make_setting_t * const setting_make); +#endif // _di_fake_make_setting_delete_ + +/** + * Delete the program main setting data. + * + * @param setting + * The program main setting data. + * + * This does not alter setting.state.status. + */ +#ifndef _di_fake_setting_delete_ + extern void fake_setting_delete(fake_setting_t * const setting); +#endif // _di_fake_setting_delete_ + #ifdef __cplusplus } // extern "C" #endif diff --git a/level_3/fake/c/main/fake.c b/level_3/fake/c/main/fake.c index b865f29..b03c4b2 100644 --- a/level_3/fake/c/main/fake.c +++ b/level_3/fake/c/main/fake.c @@ -52,6 +52,8 @@ extern "C" { if (F_status_is_error(setting->state.status)) { fake_data_delete(&data); + fake_print_line_last(setting, main->message); + return; } @@ -71,7 +73,7 @@ extern "C" { } } - { + if (F_status_is_error_not(setting->state.status)) { f_array_length_t i = 0; // Pre-process and perform validation when "clean" is before a "build" or "make" command as a safety check. diff --git a/level_3/fake/c/main/fake.h b/level_3/fake/c/main/fake.h index ac8d406..8b0491f 100644 --- a/level_3/fake/c/main/fake.h +++ b/level_3/fake/c/main/fake.h @@ -159,6 +159,7 @@ extern "C" { * * Errors (with error bit) from: f_string_dynamic_append() * Errors (with error bit) from: fake_build_operate() + * Errors (with error bit) from: fake_clean_operate() * Errors (with error bit) from: fake_make_operate() * Errors (with error bit) from: fake_path_generate() * Errors (with error bit) from: fake_skeleton_operate() @@ -167,6 +168,7 @@ extern "C" { * @see f_string_dynamic_append() * @see fll_program_standard_signal_received() * @see fake_build_operate() + * @see fake_clean_operate() * @see fake_make_operate() * @see fake_path_generate() * @see fake_skeleton_operate() diff --git a/level_3/fake/c/main/fake/path_generate.c b/level_3/fake/c/main/fake/path_generate.c index 28b41e5..ee7d1c1 100644 --- a/level_3/fake/c/main/fake/path_generate.c +++ b/level_3/fake/c/main/fake/path_generate.c @@ -364,7 +364,7 @@ extern "C" { #ifndef _di_fake_path_generate_string_dynamic_ void fake_path_generate_string_dynamic(fake_data_t * const data, const f_string_dynamic_t source, f_string_dynamic_t *destination[], const uint8_t length) { - if (!data || !data->main || !data->setting) return; + if (!data || !data->main || !data->setting || !destination) return; data->setting->state.status = F_none; diff --git a/level_3/fake/c/main/make.h b/level_3/fake/c/main/make.h index 6b9c3e3..8fbcfdd 100644 --- a/level_3/fake/c/main/make.h +++ b/level_3/fake/c/main/make.h @@ -27,10 +27,12 @@ extern "C" { * F_true if inside the project. * F_false (with error bit) if path exists outside of the root project path. * + * Errors (with error bit) from: fl_string_dynamic_partial_compare() * Errors (with error bit) from: fll_path_canonical() * @param path * file path to get the real path of. * + * @see fl_string_dynamic_partial_compare() * @see fll_path_canonical() */ #ifndef _di_fake_make_assure_inside_project_ @@ -51,6 +53,8 @@ extern "C" { * F_exist_not (with error bit) if there is no owner or group by the given name. * F_parameter (with error bit) on invalid parameter. * + * Errors (with error bit) from: f_account_group_id_by_name() + * Errors (with error bit) from: f_account_id_by_name() * Errors (with error bit) from: fl_conversion_dynamic_to_unsigned_detect() * @param is_owner * If TRUE, then buffer represents a UID. @@ -64,6 +68,8 @@ extern "C" { * When is_owner is TRUE, then this should be cast to type (gid_t *). * This is set to 0 on any error, check data_make.setting.state.status for error. * + * @see f_account_group_id_by_name() + * @see f_account_id_by_name() * @see fl_conversion_dynamic_to_unsigned_detect() */ #ifndef _di_fake_make_get_id_ diff --git a/level_3/fake/c/main/make/load_fakefile.c b/level_3/fake/c/main/make/load_fakefile.c index 674e093..921687e 100644 --- a/level_3/fake/c/main/make/load_fakefile.c +++ b/level_3/fake/c/main/make/load_fakefile.c @@ -66,12 +66,12 @@ extern "C" { delimits.used = 0; } - macro_f_fss_comments_t_delete_simple(comments); + f_string_ranges_resize(0, &comments); if (F_status_is_error(data_make->setting->state.status)) { - macro_f_fss_objects_t_delete_simple(list_objects); - macro_f_fss_contents_t_delete_simple(list_contents); - macro_f_fss_delimits_t_delete_simple(delimits); + f_string_ranges_resize(0, &list_objects); + f_string_rangess_resize(0, &list_contents); + f_array_lengths_resize(0, &delimits); return; } @@ -84,16 +84,16 @@ extern "C" { f_fss_set_t settings = f_fss_set_t_initialize; if (list_objects.used > data_make->fakefile.size) { - macro_f_fss_nameds_t_resize((data_make->setting->state.status), data_make->fakefile, list_objects.used); + data_make->setting->state.status = f_fss_nameds_resize(list_objects.used, &data_make->fakefile); } if (F_status_is_error(data_make->setting->state.status)) { - fake_print_error(data_make->setting, data_make->main->error, macro_fake_f(macro_f_fss_nameds_t_resize)); + fake_print_error(data_make->setting, data_make->main->error, macro_fake_f(f_fss_nameds_resize)); - macro_f_fss_set_t_delete_simple(settings); - macro_f_fss_objects_t_delete_simple(list_objects); - macro_f_fss_contents_t_delete_simple(list_contents); - macro_f_fss_delimits_t_delete_simple(delimits); + f_fss_set_resize(0, &settings); + f_string_ranges_resize(0, &list_objects); + f_string_rangess_resize(0, &list_contents); + f_array_lengths_resize(0, &delimits); return; } @@ -187,12 +187,12 @@ extern "C" { } // for } - macro_f_fss_objects_t_delete_simple(list_objects); - macro_f_fss_contents_t_delete_simple(list_contents); - macro_f_fss_delimits_t_delete_simple(delimits); + f_string_ranges_resize(0, &list_objects); + f_string_rangess_resize(0, &list_contents); + f_array_lengths_resize(0, &delimits); if (F_status_is_error(data_make->setting->state.status)) { - macro_f_fss_set_t_delete_simple(settings); + f_fss_set_resize(0, &settings); return; } @@ -202,7 +202,7 @@ extern "C" { data_make->setting->state.status = F_status_set_error(F_failure); - macro_f_fss_set_t_delete_simple(settings); + f_fss_set_resize(0, &settings); return; } @@ -228,7 +228,7 @@ extern "C" { if (F_status_is_error(data_make->setting->state.status)) { fake_print_error(data_make->setting, data_make->main->error, function_name); - macro_f_fss_set_t_delete_simple(settings); + f_fss_set_resize(0, &settings); return; } @@ -267,7 +267,7 @@ extern "C" { } // for if (F_status_is_error(data_make->setting->state.status)) { - macro_f_fss_set_t_delete_simple(settings); + f_fss_set_resize(0, &settings); return; } @@ -282,7 +282,7 @@ extern "C" { } if (F_status_is_error(data_make->setting->state.status)) { - macro_f_fss_set_t_delete_simple(settings); + f_fss_set_resize(0, &settings); return; } @@ -305,14 +305,14 @@ extern "C" { fake_print_error(data_make->setting, data_make->main->error, macro_fake_f(f_string_dynamic_partial_append)); } - macro_f_fss_set_t_delete_simple(settings); + f_fss_set_resize(0, &settings); return; } fake_make_load_fakefile_setting_define_and_parameter(data_make, &settings); - macro_f_fss_set_t_delete_simple(settings); + f_fss_set_resize(0, &settings); } data_make->setting->state.status = F_none; diff --git a/level_3/fake/c/main/make/load_fakefile.h b/level_3/fake/c/main/make/load_fakefile.h index a8011ec..fccae48 100644 --- a/level_3/fake/c/main/make/load_fakefile.h +++ b/level_3/fake/c/main/make/load_fakefile.h @@ -24,17 +24,53 @@ extern "C" { * @param data_make * All make related setting data, including data from the fakefile and the build settings file. * - * This alters data_make.settings.state.status: + * This alters data_make.setting.state.status: * F_none on success. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. + * + * Errors (with error bit) from: f_fss_apply_delimit(). + * Errors (with error bit) from: f_string_dynamic_append(). + * Errors (with error bit) from: f_string_dynamic_partial_append(). + * Errors (with error bit) from: f_string_dynamics_resize(). + * Errors (with error bit) from: f_string_map_multis_resize(). + * Errors (with error bit) from: fll_fss_basic_list_read(). + * Errors (with error bit) from: fll_fss_extended_read(). + * Errors (with error bit) from: fll_program_standard_signal_received(). * * Errors (with error bit) from: fake_build_load_setting(). + * Errors (with error bit) from: fake_make_load_fakefile_setting_build(). + * Errors (with error bit) from: fake_make_load_fakefile_setting_compiler(). + * Errors (with error bit) from: fake_make_load_fakefile_setting_define_and_parameter(). + * Errors (with error bit) from: fake_make_load_fakefile_setting_environment(). + * Errors (with error bit) from: fake_make_load_fakefile_setting_fail(). + * Errors (with error bit) from: fake_make_load_fakefile_setting_indexer(). + * Errors (with error bit) from: fake_make_load_fakefile_setting_parameter(). + * Errors (with error bit) from: fake_file_buffer(). + * Errors (with error bit) from: fake_pipe_buffer(). * @param process_pipe * If TRUE, then use the program input pipe. * If FALSE, then ignore the program input pipe. * + * @see f_fss_apply_delimit() + * @see f_string_dynamic_append() + * @see f_string_dynamic_partial_append() + * @see f_string_dynamics_resize() + * @see f_string_map_multis_resize() + * @see fll_fss_basic_list_read() + * @see fll_fss_extended_read() + * @see fll_program_standard_signal_received() + * * @see fake_build_load_setting() + * @see fake_make_load_fakefile_setting_build() + * @see fake_make_load_fakefile_setting_compiler() + * @see fake_make_load_fakefile_setting_define_and_parameter() + * @see fake_make_load_fakefile_setting_environment() + * @see fake_make_load_fakefile_setting_fail() + * @see fake_make_load_fakefile_setting_indexer() + * @see fake_make_load_fakefile_setting_parameter() + * @see fake_file_buffer() + * @see fake_pipe_buffer() */ #ifndef _di_fake_make_load_fakefile_ extern void fake_make_load_fakefile(fake_make_data_t * const data_make, const bool process_pipe); @@ -84,14 +120,22 @@ extern "C" { * F_none on success. * * Errors (with error bit) from: f_environment_set(). + * Errors (with error bit) from: f_string_dynamic_mash(). * Errors (with error bit) from: f_string_dynamic_mash_nulless(). * Errors (with error bit) from: fll_fss_snatch_map_apart(). + * + * Errors (with error bit) from: fake_build_load_setting_process(). + * Errors (with error bit) from: fake_make_operate_validate_define_name(). * @param settings * The settings data. * * @see f_environment_set() + * @see f_string_dynamic_mash() * @see f_string_dynamic_mash_nulless() * @see fll_fss_snatch_map_apart() + * + * @see fake_build_load_setting_process() + * @see fake_make_operate_validate_define_name() */ #ifndef _di_fake_make_load_fakefile_setting_define_and_parameter_ extern void fake_make_load_fakefile_setting_define_and_parameter(fake_make_data_t * const data_make, f_fss_set_t * const settings); @@ -107,12 +151,16 @@ extern "C" { * F_none on success. * * Errors (with error bit) from: f_string_dynamic_append(). + * Errors (with error bit) from: f_string_dynamic_append_nulless(). + * Errors (with error bit) from: f_string_dynamic_increase_by(). * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). * Errors (with error bit) from: f_string_dynamics_increase(). * @param content * The setting content. * * @see f_string_dynamic_append() + * @see f_string_dynamic_append_nulless() + * @see f_string_dynamic_increase_by() * @see f_string_dynamic_partial_append_nulless() * @see f_string_dynamics_increase() */ @@ -167,6 +215,7 @@ extern "C" { * F_none on success. * * Errors (with error bit) from: f_string_append_assure(). + * Errors (with error bit) from: f_string_dynamic_append_assure(). * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). * Errors (with error bit) from: fake_make_load_fakefile_setting_define_and_parameter(). * @param object @@ -175,6 +224,7 @@ extern "C" { * The setting content. * * @see f_string_append_assure() + * @see f_string_dynamic_append_assure() * @see f_string_dynamic_partial_append_nulless() * * @see fake_make_load_fakefile_setting_define_and_parameter() diff --git a/level_3/fake/c/main/make/load_parameters.h b/level_3/fake/c/main/make/load_parameters.h index d9d1b76..0401b78 100644 --- a/level_3/fake/c/main/make/load_parameters.h +++ b/level_3/fake/c/main/make/load_parameters.h @@ -22,12 +22,18 @@ extern "C" { * @param data_make * All make related setting data, including data from the fakefile and the build settings file. * - * This alters data_make.settings.state.status: + * This alters data_make.setting.state.status: * F_none on success. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * Errors (with error bit) from: f_string_dynamic_append(). + * Errors (with error bit) from: f_string_dynamic_append_nulless(). + * Errors (with error bit) from: f_string_dynamics_increase(). + * Errors (with error bit) from: f_string_dynamics_increase_by(). * - * Status codes (with error bit) are returned on any problem. + * @see f_string_dynamic_append() + * @see f_string_dynamic_append_nulless() + * @see f_string_dynamics_increase() + * @see f_string_dynamics_increase_by() */ #ifndef _di_fake_make_load_parameters_ extern void fake_make_load_parameters(fake_make_data_t * const data_make); diff --git a/level_3/fake/c/main/make/operate.h b/level_3/fake/c/main/make/operate.h index 29f9a03..67321f9 100644 --- a/level_3/fake/c/main/make/operate.h +++ b/level_3/fake/c/main/make/operate.h @@ -29,9 +29,26 @@ extern "C" { * F_none on success. * F_data_not on success but fakefile is empty. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. + * + * Errors (with error bit) from: f_directory_open() + * Errors (with error bit) from: f_path_change_at() + * Errors (with error bit) from: f_path_current() + * Errors (with error bit) from: f_string_dynamics_increase() + * + * Errors (with error bit) from: fake_make_load_fakefile() + * Errors (with error bit) from: fake_make_load_parameters() + * Errors (with error bit) from: fake_make_operate_section() + * + * @see f_directory_open() + * @see f_path_change_at() + * @see f_path_current() + * @see f_string_dynamics_increase() + * @see fll_program_print_signal_received() * - * Status codes (with error bit) are returned on any problem. + * @see fake_make_load_fakefile() + * @see fake_make_load_parameters() + * @see fake_make_operate_section() */ #ifndef _di_fake_make_operate_ extern void fake_make_operate(fake_data_t * const data); @@ -49,21 +66,74 @@ extern "C" { * F_none on success. * F_data_not on success but fakefile is empty. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: f_string_dynamic_append() + * Errors (with error bit) from: f_string_dynamic_append_assure() + * Errors (with error bit) from: f_string_dynamic_append_nulless() + * Errors (with error bit) from: f_string_dynamic_increase_by() + * Errors (with error bit) from: f_string_dynamic_partial_append_nulless() + * Errors (with error bit) from: f_string_dynamics_increase() + * Errors (with error bit) from: f_string_dynamics_increase_by() + * Errors (with error bit) from: fl_iki_read() + * Errors (with error bit) from: fl_string_dynamic_partial_compare_string() + * + * Errors (with error bit) from: fake_make_operate_expand_build() + * Errors (with error bit) from: fake_make_operate_expand_context() + * Errors (with error bit) from: fake_make_operate_expand_environment() * @param section_name * The section name. * @param content * The content array. * @param quotes * The array of quotes associated with the content. + * + * @see f_string_dynamic_append() + * @see f_string_dynamic_append_assure() + * @see f_string_dynamic_append_nulless() + * @see f_string_dynamic_increase_by() + * @see f_string_dynamic_partial_append_nulless() + * @see f_string_dynamics_increase() + * @see f_string_dynamics_increase_by() + * @see fl_iki_read() + * @see fl_string_dynamic_partial_compare_string() + * + * @see fake_make_operate_expand_build() + * @see fake_make_operate_expand_context() + * @see fake_make_operate_expand_environment() */ #ifndef _di_fake_make_operate_expand_ extern void fake_make_operate_expand(fake_make_data_t * const data_make, const f_string_range_t section_name, const f_fss_content_t content, const f_uint8s_t quotes); #endif // _di_fake_make_operate_expand_ /** + * Perform the expand operation, specifically for the build settings. + * + * @param data_make + * All make related setting data, including data from the fakefile and the build settings file. + * + * This alters data.setting.state.status: + * F_data_not on success, but nothing is added (data length to append is 0). + * F_true on success and match expanded. + * F_false on no matches to expand. + * + * Errors (with error bit) from: f_string_dynamic_append_nulless() + * Errors (with error bit) from: f_string_dynamic_mash() + * Errors (with error bit) from: f_string_dynamics_increase() + * @param quote + * The quote associated with the content. + * @param range_name + * The range representing the variable content name string within the data_make->buffer. + * + * @see f_string_dynamic_append_nulless() + * @see f_string_dynamic_mash() + * @see f_string_dynamics_increase() + */ +#ifndef _di_fake_make_operate_expand_build_ + extern void fake_make_operate_expand_build(fake_make_data_t * const data_make, const uint8_t quote, const f_string_range_t range_name); +#endif // _di_fake_make_operate_expand_build_ + +/** * Perform the expand operation, specifically for the context variables. * * Unknown or unsupported context variables are expanded into an empty string. @@ -75,11 +145,13 @@ extern "C" { * F_true on success and match expanded. * F_false on no matches to expand. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: f_string_dynamic_append_nulless() * @param quote * The quote associated with the content. * @param range_name * The range representing the variable content name string within the data_make->buffer. + * + * @see f_string_dynamic_append_nulless() */ #ifndef _di_fake_make_operate_expand_context_ extern void fake_make_operate_expand_context(fake_make_data_t * const data_make, const uint8_t quote, const f_string_range_t range_name); @@ -96,6 +168,7 @@ extern "C" { * F_true on success and match expanded. * F_false on no matches to expand. * + * Errors (with error bit) from: f_environment_get(). * Errors (with error bit) from: f_string_dynamic_append_nulless(). * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). * Errors (with error bit) from: f_string_dynamic_increase_by(). @@ -105,6 +178,7 @@ extern "C" { * @param range_name * The range representing the variable content name string within the data_make->buffer. * + * @see f_environment_get() * @see f_string_dynamic_append_nulless() * @see f_string_dynamic_partial_append_nulless() * @see f_string_dynamic_increase_by() @@ -115,27 +189,6 @@ extern "C" { #endif // _di_fake_make_operate_expand_environment_ /** - * Perform the expand operation, specifically for the build settings. - * - * @param data_make - * All make related setting data, including data from the fakefile and the build settings file. - * - * This alters data.setting.state.status: - * F_data_not on success, but nothing is added (data length to append is 0). - * F_true on success and match expanded. - * F_false on no matches to expand. - * - * Status codes (with error bit) are returned on any problem. - * @param quote - * The quote associated with the content. - * @param range_name - * The range representing the variable content name string within the data_make->buffer. - */ -#ifndef _di_fake_make_operate_expand_build_ - extern void fake_make_operate_expand_build(fake_make_data_t * const data_make, const uint8_t quote, const f_string_range_t range_name); -#endif // _di_fake_make_operate_expand_build_ - -/** * Perform the make operations within the given section. * * @param data_make @@ -154,6 +207,7 @@ extern "C" { * F_valid_not (with error bit) is returned if any part of the section is invalid, such as an invalid operation name. * * Errors (with error bit) from: f_array_lengths_increase() + * * Errors (with error bit) from: fake_make_operate_block_postprocess() * Errors (with error bit) from: fake_make_operate_block_prepare() * Errors (with error bit) from: fake_make_operate_expand() @@ -170,6 +224,7 @@ extern "C" { * * @see f_array_lengths_increase() * @see fll_program_print_signal_received() + * * @see fake_make_operate_block_postprocess() * @see fake_make_operate_block_prepare() * @see fake_make_operate_expand() diff --git a/level_3/fake/c/main/make/operate_process.h b/level_3/fake/c/main/make/operate_process.h index 43f389e..b2aadab 100644 --- a/level_3/fake/c/main/make/operate_process.h +++ b/level_3/fake/c/main/make/operate_process.h @@ -25,7 +25,7 @@ extern "C" { * This alters data_make.setting.state.status: * F_none on success. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * * Errors (with error bit) from: fake_make_operate_process_run() * Errors (with error bit) from: fake_make_operate_process_type_break() @@ -163,12 +163,14 @@ extern "C" { * F_none on success. * F_data_not if both program.used is 0 and arguments.used is 0. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * * Errors (with error bit) from: f_environment_get_all(). * Errors (with error bit) from: fl_environment_load_names(). * Errors (with error bit) from: fll_execute_program(). * + * Errors (with error bit) from: fake_make_operate_process_return(). + * * Status codes (with error bit) are returned on any problem. * @param program * The program to be executed. @@ -181,6 +183,9 @@ extern "C" { * @see f_environment_get_all() * @see fl_environment_load_names() * @see fll_execute_program() + * @see fll_program_standard_signal_received() + * + * @see fake_make_operate_process_return() */ #ifndef _di_fake_make_operate_process_execute_ extern void fake_make_operate_process_execute(fake_make_data_t * const data_make, const f_string_static_t program, const f_string_statics_t arguments, const bool as_shell); diff --git a/level_3/fake/c/main/make/operate_process_type.c b/level_3/fake/c/main/make/operate_process_type.c index 49d8aa3..c06832e 100644 --- a/level_3/fake/c/main/make/operate_process_type.c +++ b/level_3/fake/c/main/make/operate_process_type.c @@ -199,7 +199,6 @@ extern "C" { const f_array_length_t total = data_make->cache_arguments.used - 1; f_string_static_t destination = f_string_static_t_initialize; - f_directory_recurse_t recurse = f_directory_recurse_t_initialize; if (clone) { diff --git a/level_3/fake/c/main/make/operate_process_type.h b/level_3/fake/c/main/make/operate_process_type.h index 7febe00..805821f 100644 --- a/level_3/fake/c/main/make/operate_process_type.h +++ b/level_3/fake/c/main/make/operate_process_type.h @@ -78,11 +78,13 @@ extern "C" { * Success from: fake_execute() * * Errors (with error bit) from: fake_execute() + * Errors (with error bit) from: fake_make_operate_process_return() * * @return * The return code of the compile operation. * * @see fake_execute() + * @see fake_make_operate_process_return() */ #ifndef _di_fake_make_operate_process_type_compile_ extern int fake_make_operate_process_type_compile(fake_make_data_t * const data_make); @@ -134,7 +136,7 @@ extern "C" { * * F_failure (with error bit) on any error. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * * Errors (with error bit) from: f_directory_is() * Errors (with error bit) from: f_file_clone() @@ -185,7 +187,7 @@ extern "C" { * * F_failure (with error bit) on any error. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * * Errors (with error bit) from: f_file_remove() * Errors (with error bit) from: f_file_stat() @@ -650,7 +652,7 @@ extern "C" { * * F_failure (with error bit) on any error. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * * Errors (with error bit) from: f_path_change() * Errors (with error bit) from: f_string_dynamic_resize() @@ -703,7 +705,7 @@ extern "C" { * * F_failure (with error bit) on any error. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * * Errors (with error bit) from: fake_make_operate_process_return() * Errors (with error bit) from: fake_skeleton_operate() @@ -754,7 +756,7 @@ extern "C" { * * F_failure (with error bit) on any error. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * * Errors (with error bit) from: f_path_change_at() * Errors (with error bit) from: f_string_dynamic_resize() @@ -777,7 +779,7 @@ extern "C" { * * F_failure (with error bit) on any error. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * * Errors (with error bit) from: f_directory_touch() * Errors (with error bit) from: f_file_touch() @@ -801,7 +803,7 @@ extern "C" { * * F_failure (with error bit) on any error. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * * Errors (with error bit) from: f_file_exists() * Errors (with error bit) from: f_file_stream_open() diff --git a/level_3/fake/c/main/make/operate_validate_type.h b/level_3/fake/c/main/make/operate_validate_type.h index c17e2b2..f4436da 100644 --- a/level_3/fake/c/main/make/operate_validate_type.h +++ b/level_3/fake/c/main/make/operate_validate_type.h @@ -71,6 +71,10 @@ extern "C" { * F_none on success. * * F_failure (with error bit) on any error. + * + * @see f_directory_is() + * + * @see fake_make_assure_inside_project() */ #ifndef _di_fake_make_operate_validate_type_clone_ extern void fake_make_operate_validate_type_clone(fake_make_data_t * const data_make); @@ -104,6 +108,12 @@ extern "C" { * F_none on success. * * F_failure (with error bit) on any error. + * + * @see f_file_exists() + * + * @see fake_make_assure_inside_project() + * @see fake_make_get_id() + * @see fake_make_get_id_mode() */ #ifndef _di_fake_make_operate_validate_type_condition_ extern void fake_make_operate_validate_type_condition(fake_make_data_t * const data_make, fake_state_process_t * const state_process); @@ -119,6 +129,11 @@ extern "C" { * F_none on success. * * F_failure (with error bit) on any error. + * + * @see f_directory_is() + * @see f_file_exists() + * + * @see fake_make_assure_inside_project() */ #ifndef _di_fake_make_operate_validate_type_copy_ extern void fake_make_operate_validate_type_copy(fake_make_data_t * const data_make); @@ -134,6 +149,8 @@ extern "C" { * F_none on success. * * F_failure (with error bit) on any error. + * + * @see fake_make_operate_validate_define_name() */ #ifndef _di_fake_make_operate_validate_type_define_ extern void fake_make_operate_validate_type_define(fake_make_data_t * const data_make); @@ -149,6 +166,8 @@ extern "C" { * F_none on success. * * F_failure (with error bit) on any error. + * + * @see fake_make_assure_inside_project() */ #ifndef _di_fake_make_operate_validate_type_delete_ extern void fake_make_operate_validate_type_delete(fake_make_data_t * const data_make); @@ -242,6 +261,12 @@ extern "C" { * F_none on success. * * F_failure (with error bit) on any error. + * + * @see f_file_name_directory() + * @see f_string_dynamic_append() + * @see f_string_dynamic_append_assure() + * + * @see fake_make_assure_inside_project() */ #ifndef _di_fake_make_operate_validate_type_move_ extern void fake_make_operate_validate_type_move(fake_make_data_t * const data_make); @@ -292,6 +317,8 @@ extern "C" { * F_none on success. * * F_failure (with error bit) on any error. + * + * @see f_file_is() */ #ifndef _di_fake_make_operate_validate_type_permission_ extern void fake_make_operate_validate_type_permission(fake_make_data_t * const data_make, fake_state_process_t * const state_process); @@ -337,6 +364,8 @@ extern "C" { * F_none on success. * * F_failure (with error bit) on any error. + * + * @see f_file_is() */ #ifndef _di_fake_make_operate_validate_type_to_ extern void fake_make_operate_validate_type_to(fake_make_data_t * const data_make); @@ -352,6 +381,8 @@ extern "C" { * F_none on success. * * F_failure (with error bit) on any error. + * + * @see fake_make_assure_inside_project() */ #ifndef _di_fake_make_operate_validate_type_touch_ extern void fake_make_operate_validate_type_touch(fake_make_data_t * const data_make); @@ -367,6 +398,8 @@ extern "C" { * F_none on success. * * F_failure (with error bit) on any error. + * + * @see fake_make_assure_inside_project() */ #ifndef _di_fake_make_operate_validate_type_write_ extern void fake_make_operate_validate_type_write(fake_make_data_t * const data_make); diff --git a/level_3/fake/c/main/print.h b/level_3/fake/c/main/print.h index 2ad4f14..efd5381 100644 --- a/level_3/fake/c/main/print.h +++ b/level_3/fake/c/main/print.h @@ -30,6 +30,8 @@ extern "C" { * @return * F_none on success. * F_output_not on success, but no printing is performed. + * + * @see fake_print_simple() */ #ifndef _di_fake_print_generating_skeleton_ extern f_status_t fake_print_generating_skeleton(fake_setting_t * const setting, const fl_print_t print); diff --git a/level_3/fake/c/main/skeleton.c b/level_3/fake/c/main/skeleton.c index ebff9f3..42d88fb 100644 --- a/level_3/fake/c/main/skeleton.c +++ b/level_3/fake/c/main/skeleton.c @@ -119,8 +119,7 @@ extern "C" { #ifndef _di_fake_skeleton_operate_directory_create_ void fake_skeleton_operate_directory_create(fake_data_t * const data, const f_string_static_t path) { - if (!data || !data->main || !data->setting) return; - if (!path.used) return; + if (!data || !data->main || !data->setting || !path.used) return; data->setting->state.status = f_directory_exists(path); @@ -169,8 +168,7 @@ extern "C" { #ifndef _di_fake_skeleton_operate_file_create_ void fake_skeleton_operate_file_create(fake_data_t * const data, const f_string_static_t path, const bool executable, const f_string_static_t content) { - if (!data || !data->main || !data->setting) return; - if (!path.used) return; + if (!data || !data->main || !data->setting || !path.used) return; data->setting->state.status = f_file_is(path, F_file_type_regular_d, F_false); @@ -269,6 +267,8 @@ extern "C" { #ifndef _di_fake_skeleton_path_source_length_ void fake_skeleton_path_source_length(fake_data_t * const data, const f_string_static_t *partial, f_string_static_t * const source) { + if (!data || !partial || !source) return; + source->used = data->setting->sources.used + partial->used; } #endif // _di_fake_skeleton_path_source_length_ @@ -276,6 +276,8 @@ extern "C" { #ifndef _di_fake_skeleton_path_source_string_ void fake_skeleton_path_source_string(fake_data_t * const data, const f_string_static_t *partial, f_string_static_t * const source) { + if (!data || !partial || !source) return; + source->used = 0; memcpy(source->string, data->setting->sources.string, sizeof(f_char_t) * data->setting->sources.used); diff --git a/level_3/fake/c/main/skeleton.h b/level_3/fake/c/main/skeleton.h index 46af9f1..0ee3393 100644 --- a/level_3/fake/c/main/skeleton.h +++ b/level_3/fake/c/main/skeleton.h @@ -25,9 +25,13 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * F_interrupt (with error bit) on receiving a terminate process signal, such as an interrupt signal. + * F_interrupt (with error bit) on interrupt signal received. * - * Status codes (with error bit) are returned on any problem. + * Errors (with error bit) from: fake_skeleton_operate_directory_create() + * Errors (with error bit) from: fake_skeleton_operate_file_create() + * + * @see fake_skeleton_operate_directory_create() + * @see fake_skeleton_operate_file_create() */ #ifndef _di_fake_skeleton_operate_ extern void fake_skeleton_operate(fake_data_t * const data); @@ -42,10 +46,15 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * Status codes (with warning bit) are returned on certain problems that can be ignored. - * Status codes (with error bit) are returned on any problem. + * F_failure (with warning bit) on path exists but is not a directory. + * + * Errors (with error bit) from: f_directory_create() + * Errors (with error bit) from: f_directory_exists() * @param path * The file path for the directory to create. + * + * @see f_directory_create() + * @see f_directory_exists() */ #ifndef _di_fake_skeleton_operate_directory_create_ extern void fake_skeleton_operate_directory_create(fake_data_t * const data, const f_string_static_t path); @@ -60,8 +69,12 @@ extern "C" { * This alters data.setting.state.status: * F_none on success. * - * Status codes (with warning bit) are returned on certain problems that can be ignored. - * Status codes (with error bit) are returned on any problem. + * F_none (with warning bit) on file exists but is not a regular or a link. + * + * Errors (with error bit) from: f_file_create() + * Errors (with error bit) from: f_file_is() + * Errors (with error bit) from: f_file_open() + * Errors (with error bit) from: f_file_write() * @param path * The file path for the directory to create. * @param executable @@ -69,6 +82,11 @@ extern "C" { * Set to FALSE to not make the file executable. * @param content * When creating a new file, write the content specified by this string to that file. + * + * @see f_file_create() + * @see f_file_is() + * @see f_file_open() + * @see f_file_write() */ #ifndef _di_fake_skeleton_operate_file_create_ extern void fake_skeleton_operate_file_create(fake_data_t * const data, const f_string_static_t path, const bool executable, const f_string_static_t content); @@ -79,6 +97,8 @@ extern "C" { * * @param data * The program data. + * + * This does not alter data.setting.state.status. * @param partial * The partial path string, such as "bash". * @param source @@ -96,6 +116,8 @@ extern "C" { * * @param data * The program data. + * + * This does not alter data.setting.state.status. * @param partial * The partial path string, such as "bash". * @param source