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.
* @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().
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)) {
#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;
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_
* 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.
* @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_
* 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()
* 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()
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);
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);
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);
* 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
* @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);
* 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
* @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);
* 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
* @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);
*
* 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.
* @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);
*
* @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);
*
* @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).
* 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()
*/
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);
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);
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);
* 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
* @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);
* 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
* @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);
* 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
* @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);
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);
* 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
* @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);
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);
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);
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);
* 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
* @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);
* 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
* @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);
* 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
* @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);
*
* 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.
* @see f_directory_create()
* @see f_directory_exists()
* @see fll_program_standard_signal_received()
+ *
* @see fake_build_touch()
*/
#ifndef _di_fake_build_skeleton_
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) {
#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;
}
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));
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;
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_
}
#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
#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.
* 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);
* @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_
/**
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
"f_file_touch",
"f_file_write",
"f_fss_apply_delimit",
+ "f_fss_nameds_resize",
"f_path_change",
"f_path_current",
"f_path_directory_cleanup",
"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_
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,
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_
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
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_
}
#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_
/**
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_
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_
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_
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_
/**
}
#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
if (F_status_is_error(setting->state.status)) {
fake_data_delete(&data);
+ fake_print_line_last(setting, main->message);
+
return;
}
}
}
- {
+ 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.
*
* 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()
* @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()
#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;
* 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_
* 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.
* 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_
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;
}
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;
}
} // 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;
}
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;
}
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;
}
} // 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;
}
}
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;
}
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;
* @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);
* 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);
* 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()
*/
* 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
* 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()
* @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);
* 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);
* 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.
* 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);
* 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().
* @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()
#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
* 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()
*
* @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()
* 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()
* 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.
* @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);
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) {
* 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);
*
* 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()
*
* 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()
*
* 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()
*
* 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()
*
* 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()
*
* 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()
*
* 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()
* 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);
* 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);
* 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);
* 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);
* 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);
* 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);
* 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);
* 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);
* 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);
* 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);
* @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);
#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);
#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);
#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_
#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);
* 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);
* 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);
* 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
* 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);
*
* @param data
* The program data.
+ *
+ * This does not alter data.setting.state.status.
* @param partial
* The partial path string, such as "bash".
* @param source
*
* @param data
* The program data.
+ *
+ * This does not alter data.setting.state.status.
* @param partial
* The partial path string, such as "bash".
* @param source