From ca8ed62dd562bdf15c93f2870685585de4f52459 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Sat, 18 Feb 2023 22:46:41 -0600 Subject: [PATCH] Progress: Continue work on Featureless Make with emphasis on printing. Add f_file_type_name_file_s string to allow for using the common use as a string. --- level_0/f_file/c/file/common.c | 4 + level_0/f_file/c/file/common.h | 7 + level_3/fake/c/main/make/operate_process.c | 2 +- level_3/fake/c/main/make/operate_process_type.c | 66 ++------ level_3/fake/c/main/make/print.c | 165 +++++++++++++++++--- level_3/fake/c/main/make/print.h | 193 +++++++++++++++++++++--- 6 files changed, 348 insertions(+), 89 deletions(-) diff --git a/level_0/f_file/c/file/common.c b/level_0/f_file/c/file/common.c index f57d20e..1fc90cb 100644 --- a/level_0/f_file/c/file/common.c +++ b/level_0/f_file/c/file/common.c @@ -21,6 +21,10 @@ extern "C" { const f_string_static_t f_file_type_name_fifo_s = macro_f_string_static_t_initialize(F_file_type_name_fifo_s, 0, F_file_type_name_fifo_s_length); #endif // _di_f_file_type_name_fifo_s_ + #ifndef _di_f_file_type_name_file_s_ + const f_string_static_t f_file_type_name_file_s = macro_f_string_static_t_initialize(F_file_type_name_file_s, 0, F_file_type_name_file_s_length); + #endif // _di_f_file_type_name_file_s_ + #ifndef _di_f_file_type_name_link_s_ const f_string_static_t f_file_type_name_link_s = macro_f_string_static_t_initialize(F_file_type_name_link_s, 0, F_file_type_name_link_s_length); #endif // _di_f_file_type_name_link_s_ diff --git a/level_0/f_file/c/file/common.h b/level_0/f_file/c/file/common.h index a4e4c02..c09a58c 100644 --- a/level_0/f_file/c/file/common.h +++ b/level_0/f_file/c/file/common.h @@ -80,6 +80,7 @@ extern "C" { * - character: A string representing the character file type. * - directory: A string representing the directory file type. * - fifo: A string representing the fifo file type. + * - file: A string representing the common term for a regular file. * - link: A string representing the link file type. * - regular: A string representing the regular file type. * - socket: A string representing the socket file type. @@ -89,6 +90,7 @@ extern "C" { #define F_file_type_name_character_s "character" #define F_file_type_name_directory_s "directory" #define F_file_type_name_fifo_s "fifo" + #define F_file_type_name_file_s "file" #define F_file_type_name_link_s "link" #define F_file_type_name_regular_s "regular" #define F_file_type_name_socket_s "socket" @@ -97,6 +99,7 @@ extern "C" { #define F_file_type_name_character_s_length 9 #define F_file_type_name_directory_s_length 9 #define F_file_type_name_fifo_s_length 4 + #define F_file_type_name_file_s_length 4 #define F_file_type_name_link_s_length 4 #define F_file_type_name_regular_s_length 7 #define F_file_type_name_socket_s_length 6 @@ -117,6 +120,10 @@ extern "C" { extern const f_string_static_t f_file_type_name_fifo_s; #endif // _di_f_file_type_name_fifo_s_ + #ifndef _di_f_file_type_name_file_s_ + extern const f_string_static_t f_file_type_name_file_s; + #endif // _di_f_file_type_name_file_s_ + #ifndef _di_f_file_type_name_link_s_ extern const f_string_static_t f_file_type_name_link_s; #endif // _di_f_file_type_name_link_s_ diff --git a/level_3/fake/c/main/make/operate_process.c b/level_3/fake/c/main/make/operate_process.c index 99035c1..69c25e6 100644 --- a/level_3/fake/c/main/make/operate_process.c +++ b/level_3/fake/c/main/make/operate_process.c @@ -322,7 +322,7 @@ extern "C" { } } - fake_make_print_program_verbose(data_make->setting, data_make->main->message, program, arguments); + fake_make_print_operate_program_verbose(data_make->setting, data_make->main->message, program, arguments); // Child processes should receive all signals, without blocking. f_signal_how_t signals = f_signal_how_t_initialize; 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 a267237..a1fd979 100644 --- a/level_3/fake/c/main/make/operate_process_type.c +++ b/level_3/fake/c/main/make/operate_process_type.c @@ -451,9 +451,7 @@ extern "C" { return F_none; } - if (data_make->main->error.verbosity >= f_console_verbosity_verbose_e) { - fll_print_format("%rExiting as '%[%Q%]'.%r", data_make->main->message.to, f_string_eol_s, data_make->main->context.set.notable, data_make->cache_arguments.used ? data_make->cache_arguments.array[0] : fake_make_operation_argument_success_s, data_make->main->context.set.notable, f_string_eol_s); - } + fake_make_print_operate_exiting_as_verbose(data_make->setting, data_make->main->message, data_make->cache_arguments); return status; } @@ -488,25 +486,7 @@ extern "C" { data_make->main->error.to.id = -1; } - if (data_make->main->error.verbosity >= f_console_verbosity_verbose_e) { - f_file_stream_lock(data_make->main->message.to); - - f_print_terminated("Set failure state to '", data_make->main->message.to); - - if (data_make->setting_make.fail == fake_make_operation_fail_exit_e) { - fl_print_format("%[%r%]", data_make->main->message.to, data_make->main->context.set.notable, fake_make_operation_argument_exit_s, data_make->main->context.set.notable); - } - else if (data_make->setting_make.fail == fake_make_operation_fail_warn_e) { - fl_print_format("%[%r%]", data_make->main->message.to, data_make->main->context.set.notable, fake_make_operation_argument_warn_s, data_make->main->context.set.notable); - } - else { - fl_print_format("%[%r%]", data_make->main->message.to, data_make->main->context.set.notable, fake_make_operation_argument_ignore_s, data_make->main->context.set.notable); - } - - fl_print_format("'.%r", data_make->main->message.to, f_string_eol_s); - - f_file_stream_unlock(data_make->main->message.to); - } + fake_make_print_operate_set_failure_state_verbose(data_make->setting, data_make->main->message, data_make->setting_make.fail); } #endif // _di_fake_make_operate_process_type_fail_ @@ -550,14 +530,7 @@ extern "C" { return F_status_set_error(F_failure); } - if (data_make->main->error.verbosity >= f_console_verbosity_verbose_e) { - f_file_stream_lock(data_make->main->message.to); - - fl_print_format("%r group of '%[%r%]", data_make->main->message.to, all ? "Recursively changed" : "Changed", data_make->main->context.set.notable, data_make->cache_arguments.array[i], data_make->main->context.set.notable); - fl_print_format("' to %[%ul%].%r", data_make->main->message.to, data_make->main->context.set.notable, id, data_make->main->context.set.notable, f_string_eol_s); - - f_file_stream_unlock(data_make->main->message.to); - } + fake_make_print_operate_set_role_verbose(data_make->setting, data_make->main->message, all ? 0x1 : 0x0, data_make->cache_arguments.array[i], (f_number_unsigned_t) id); } // for return F_none; @@ -1332,14 +1305,7 @@ extern "C" { return F_status_set_error(F_failure); } - if (data_make->main->error.verbosity >= f_console_verbosity_verbose_e) { - f_file_stream_lock(data_make->main->message.to); - - fl_print_format("Created symbolic link from '%[%Q%]", data_make->main->message.to, data_make->main->context.set.notable, data_make->cache_arguments.array[data_make->cache_arguments.used - 1], data_make->main->context.set.notable); - fl_print_format("' to %[%Q%].%r", data_make->main->message.to, data_make->main->context.set.notable, data_make->cache_arguments.array[0], data_make->main->context.set.notable, f_string_eol_s); - - f_file_stream_unlock(data_make->main->message.to); - } + fake_make_print_operate_symbolic_link_verbose(data_make->setting, data_make->main->message, data_make->cache_arguments.array[data_make->cache_arguments.used - 1], data_make->cache_arguments.array[0]); return F_none; } @@ -1395,9 +1361,7 @@ extern "C" { return F_status_set_error(F_failure); } - if (data_make->main->error.verbosity >= f_console_verbosity_verbose_e) { - fll_print_format("Changed mode of '%Q' to %#@u.%r", data_make->main->message.to, data_make->cache_arguments.array[i], mode, f_string_eol_s); - } + fake_make_print_operate_set_mode_verbose(data_make->setting, data_make->main->message, data_make->cache_arguments.array[i], mode); } // for return F_none; @@ -1562,9 +1526,7 @@ extern "C" { return F_status_set_error(F_failure); } - if (data_make->main->error.verbosity >= f_console_verbosity_verbose_e) { - fll_print_format("%s owner of '%Q' to %u.%r", data_make->main->message.to, all ? "Recursively changed" : "Changed", data_make->cache_arguments.array[i], id, f_string_eol_s); - } + fake_make_print_operate_set_role_verbose(data_make->setting, data_make->main->message, all ? 0x3 : 0x2, data_make->cache_arguments.array[i], (f_number_unsigned_t) id); } // for return F_none; @@ -1683,12 +1645,12 @@ extern "C" { if (F_status_is_error(status)) { fake_print_error(data_make->setting, data_make->main->error, status, macro_fake_f(fake_make_path_relative)); - fll_print_format("Changed to project path '%[%Q%]'.%r", data_make->main->message.to, data_make->main->context.set.notable, argument, data_make->main->context.set.notable, f_string_eol_s); + fake_make_print_operate_set_path_verbose(data_make->setting, data_make->main->message, *argument); return F_status_set_error(F_failure); } - fll_print_format("Changed to project path '%[%Q%]'.%r", data_make->main->message.to, data_make->main->context.set.notable, data_make->cache_path, data_make->main->context.set.notable, f_string_eol_s); + fake_make_print_operate_set_path_verbose(data_make->setting, data_make->main->message, data_make->cache_path); } return F_none; @@ -1818,10 +1780,10 @@ extern "C" { if (F_status_is_error(status)) { fake_print_error(data_make->setting, data_make->main->error, status, macro_fake_f(fake_make_path_relative)); - fll_print_format("Changed to project path '%[%Q%]'.%r", data_make->main->message.to, data_make->main->context.set.notable, data_make->path.stack.array[data_make->path.stack.used], data_make->main->context.set.notable, f_string_eol_s); + fake_make_print_operate_set_path_verbose(data_make->setting, data_make->main->message, data_make->path.stack.array[data_make->path.stack.used]); } else { - fll_print_format("Changed to project path '%[%Q%]'.%r", data_make->main->message.to, data_make->main->context.set.notable, data_make->cache_path, data_make->main->context.set.notable, f_string_eol_s); + fake_make_print_operate_set_path_verbose(data_make->setting, data_make->main->message, data_make->cache_path); } } @@ -1845,9 +1807,7 @@ extern "C" { } } - if (data_make->main->error.verbosity >= f_console_verbosity_verbose_e) { - fll_print_format("Changed to project path ''.%r", data_make->main->message.to, f_string_eol_s); - } + fake_make_print_operate_set_path_verbose(data_make->setting, data_make->main->message, f_string_empty_s); // Clear stack, except for the project root. for (f_array_length_t i = 1; i < data_make->path.stack.used; ++i) { @@ -1899,9 +1859,7 @@ extern "C" { } } - if (data_make->main->error.verbosity >= f_console_verbosity_verbose_e) { - fll_print_format("Touched '%[%Q%]'.%r", data_make->main->message.to, data_make->main->context.set.notable, data_make->cache_arguments.array[i], data_make->main->context.set.notable, f_string_eol_s); - } + fake_make_print_operate_touch_verbose(data_make->setting, data_make->main->message, data_make->cache_arguments.array[i]); } // for return F_none; diff --git a/level_3/fake/c/main/make/print.c b/level_3/fake/c/main/make/print.c index 0948973..6fbdefc 100644 --- a/level_3/fake/c/main/make/print.c +++ b/level_3/fake/c/main/make/print.c @@ -47,9 +47,7 @@ extern "C" { fake_print_line_first_unlocked(setting, print); - fl_print_format("Breaking as '", print.to); - fl_print_format("%[%Q%]", print.to, print.set->notable, arguments.used ? arguments.array[0] : fake_make_operation_argument_success_s, print.set->notable); - fl_print_format("'.%r", print.to, f_string_eol_s); + fl_print_format("Breaking as '%[%Q%]'.%r", print.to, print.set->notable, arguments.used ? arguments.array[0] : fake_make_operation_argument_success_s, print.set->notable, f_string_eol_s); f_file_stream_unlock(print.to); @@ -109,8 +107,8 @@ extern "C" { } #endif // _di_fake_make_print_operate_delete_verbose_ -#ifndef _di_fake_make_print_operate_file_not_found_verbose_ - f_status_t fake_make_print_operate_file_not_found_verbose(fake_setting_t * const setting, const fl_print_t print, const bool is_directory, const f_string_static_t file) { +#ifndef _di_fake_make_print_operate_exiting_as_verbose_ + f_status_t fake_make_print_operate_exiting_as_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_statics_t arguments) { if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not; @@ -118,35 +116,33 @@ extern "C" { fake_print_line_first_unlocked(setting, print); - fl_print_format("The %s '%[%Q%]' is not found.%]%r", print.to, print.notable, is_directory ? "directory" : "file", file, print.notable, f_string_eol_s); + fl_print_format("Exiting as '%[%Q%]'.%r", print.to, print.set->notable, arguments.used ? arguments.array[0] : fake_make_operation_argument_success_s, print.set->notable, f_string_eol_s); f_file_stream_unlock(print.to); return F_none; } -#endif // _di_fake_make_print_operate_file_not_found_verbose_ +#endif // _di_fake_make_print_operate_exiting_as_verbose_ -#ifndef _di_fake_make_print_processing_section_ - f_status_t fake_make_print_processing_section(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_fss_named_t section) { +#ifndef _di_fake_make_print_operate_file_not_found_verbose_ + f_status_t fake_make_print_operate_file_not_found_verbose(fake_setting_t * const setting, const fl_print_t print, const bool is_directory, const f_string_static_t file) { - if (print.verbosity < f_console_verbosity_normal_e) return F_output_not; + if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not; f_file_stream_lock(print.to); fake_print_line_first_unlocked(setting, print); - fl_print_format("%[Processing Section '%]", print.to, print.set->important, print.set->important); - fl_print_format("%[%/Q%]", print.to, print.set->notable, buffer, section.name, print.set->notable); - fl_print_format("%['.%]%r", print.to, print.set->important, print.set->important, f_string_eol_s); + fl_print_format("The %Q '%[%Q%]' is not found.%]%r", print.to, print.set->notable, is_directory ? f_file_type_name_directory_s : f_file_type_name_file_s, file, print.set->notable, f_string_eol_s); f_file_stream_unlock(print.to); return F_none; } -#endif // _di_fake_make_print_processing_section_ +#endif // _di_fake_make_print_operate_file_not_found_verbose_ -#ifndef _di_fake_make_print_program_verbose_ - f_status_t fake_make_print_program_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t program, const f_string_statics_t arguments) { +#ifndef _di_fake_make_print_operate_program_verbose_ + f_status_t fake_make_print_operate_program_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t program, const f_string_statics_t arguments) { if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not; @@ -176,7 +172,142 @@ extern "C" { return F_none; } -#endif // _di_fake_make_print_program_verbose_ +#endif // _di_fake_make_print_operate_program_verbose_ + +#ifndef _di_fake_make_print_operate_set_failure_state_verbose_ + f_status_t fake_make_print_operate_set_failure_state_verbose(fake_setting_t * const setting, const fl_print_t print, const uint8_t fail) { + + if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + f_print_terminated("Set failure state to '", print.to); + + if (fail == fake_make_operation_fail_exit_e) { + fl_print_format("%[%r%]", print.to, print.set->notable, fake_make_operation_argument_exit_s, print.set->notable); + } + else if (fail == fake_make_operation_fail_warn_e) { + fl_print_format("%[%r%]", print.to, print.set->notable, fake_make_operation_argument_warn_s, print.set->notable); + } + else { + fl_print_format("%[%r%]", print.to, print.set->notable, fake_make_operation_argument_ignore_s, print.set->notable); + } + + fl_print_format("'.%r", print.to, f_string_eol_s); + + f_file_stream_unlock(print.to); + + return F_none; + } +#endif // _di_fake_make_print_operate_set_failure_state_verbose_ + +#ifndef _di_fake_make_print_operate_set_mode_verbose_ + f_status_t fake_make_print_operate_set_mode_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path, const mode_t mode) { + + if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + fll_print_format("Changed mode of '%[%Q%]' to %[%#@u%].%r", print.to, print.set->notable, path, print.set->notable, print.set->notable, mode, print.set->notable, f_string_eol_s); + + f_file_stream_unlock(print.to); + + return F_none; + } +#endif // _di_fake_make_print_operate_set_mode_verbose_ + +#ifndef _di_fake_make_print_operate_set_path_verbose_ + f_status_t fake_make_print_operate_set_path_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) { + + if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + fl_print_format("Changed project path to '%[%Q%]'.%r", print.to, print.set->notable, path, print.set->notable, f_string_eol_s); + + f_file_stream_unlock(print.to); + + return F_none; + } +#endif // _di_fake_make_print_operate_set_path_verbose_ + +#ifndef _di_fake_make_print_operate_set_role_verbose_ + f_status_t fake_make_print_operate_set_role_verbose(fake_setting_t * const setting, const fl_print_t print, const uint8_t what, f_string_static_t role, f_number_unsigned_t id) { + + if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + fl_print_format("%r %r of '%[%r%]'", print.to, (what & 0x1) ? "Recursively changed" : "Changed", (what & 0x2) ? "owner" : "group", print.set->notable, role, print.set->notable); + fl_print_format(" to %[%ul%].%r", print.to, print.set->notable, id, print.set->notable, f_string_eol_s); + + f_file_stream_unlock(print.to); + + return F_none; + } +#endif // _di_fake_make_print_operate_set_role_verbose_ + +#ifndef _di_fake_make_print_operate_symbolic_link_verbose_ + f_status_t fake_make_print_operate_symbolic_link_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t source, const f_string_static_t destination) { + + if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + fl_print_format("Created symbolic link from '%[%Q%]", print.to, print.set->notable, source, print.set->notable); + fl_print_format("' to %[%Q%].%r", print.to, print.set->notable, destination, print.set->notable, f_string_eol_s); + + f_file_stream_unlock(print.to); + + return F_none; + } +#endif // _di_fake_make_print_operate_symbolic_link_verbose_ + +#ifndef _di_fake_make_print_operate_touch_verbose_ + f_status_t fake_make_print_operate_touch_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) { + + if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + fl_print_format("Touched '%[%Q%]'.%r", print.to, print.set->notable, path, print.set->notable, f_string_eol_s); + + f_file_stream_unlock(print.to); + + return F_none; + } +#endif // _di_fake_make_print_operate_touch_verbose_ + +#ifndef _di_fake_make_print_processing_section_ + f_status_t fake_make_print_processing_section(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_fss_named_t section) { + + if (print.verbosity < f_console_verbosity_normal_e) return F_output_not; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + fl_print_format("%[Processing Section '%]", print.to, print.set->important, print.set->important); + fl_print_format("%[%/Q%]", print.to, print.set->notable, buffer, section.name, print.set->notable); + fl_print_format("%['.%]%r", print.to, print.set->important, print.set->important, f_string_eol_s); + + f_file_stream_unlock(print.to); + + return F_none; + } +#endif // _di_fake_make_print_processing_section_ #ifdef __cplusplus } // extern "C" diff --git a/level_3/fake/c/main/make/print.h b/level_3/fake/c/main/make/print.h index 36f0982..6d049c0 100644 --- a/level_3/fake/c/main/make/print.h +++ b/level_3/fake/c/main/make/print.h @@ -44,7 +44,8 @@ extern "C" { * @param print * The output structure to print to. * @param arguments - * The arguments passed to the break operation. + * The arguments where the first argument, if defined, is the exiting as string. + * Set arguments.used to 0 to use the default "success" exiting as string. * * @return * F_none on success. @@ -123,6 +124,28 @@ extern "C" { #endif // _di_fake_make_print_operate_delete_verbose_ /** + * Print operate exiting as verbose message. + * + * @param setting + * The main program settings. + * (Must be of type fake_setting_t.) + * + * This does not alter setting.status. + * @param print + * The output structure to print to. + * @param arguments + * The arguments where the first argument, if defined, is the exiting as string. + * Set arguments.used to 0 to use the default "success" exiting as string. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + */ +#ifndef _di_fake_make_print_operate_exiting_as_verbose_ + extern f_status_t fake_make_print_operate_exiting_as_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_statics_t arguments); +#endif // _di_fake_make_print_operate_exiting_as_verbose_ + +/** * Print operate file or directory not found verbose message. * * @param setting @@ -147,7 +170,7 @@ extern "C" { #endif // _di_fake_make_print_operate_file_not_found_verbose_ /** - * Print the processing section message. + * Print verbose program message. * * @param setting * The main program settings. @@ -156,21 +179,21 @@ extern "C" { * This does not alter setting.status. * @param print * The output structure to print to. - * @param buffer - * The string containing the section name. - * @param section - * The section structure containing the section name range. + * @param program + * The program name. + * @param arguments + * The arguments pass to the program. * * @return * F_none on success. * F_output_not on success, but no printing is performed. */ -#ifndef _di_fake_make_print_processing_section_ - extern f_status_t fake_make_print_processing_section(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_fss_named_t section); -#endif // _di_fake_make_print_processing_section_ +#ifndef _di_fake_make_print_operate_program_verbose_ + extern f_status_t fake_make_print_operate_program_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t program, const f_string_statics_t arguments); +#endif // _di_fake_make_print_operate_program_verbose_ /** - * Print verbose program message. + * Print verbose message about setting failure state. * * @param setting * The main program settings. @@ -179,18 +202,154 @@ extern "C" { * This does not alter setting.status. * @param print * The output structure to print to. - * @param program - * The program name. - * @param arguments - * The arguments pass to the program. + * @param fail + * The failure state code being set to. * * @return * F_none on success. * F_output_not on success, but no printing is performed. */ -#ifndef _di_fake_make_print_program_verbose_ - extern f_status_t fake_make_print_program_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t program, const f_string_statics_t arguments); -#endif // _di_fake_make_print_program_verbose_ +#ifndef _di_fake_make_print_operate_set_failure_state_verbose_ + extern f_status_t fake_make_print_operate_set_failure_state_verbose(fake_setting_t * const setting, const fl_print_t print, const uint8_t fail); +#endif // _di_fake_make_print_operate_set_failure_state_verbose_ + +/** + * Print verbose message about setting the file mode. + * + * @param setting + * The main program settings. + * (Must be of type fake_setting_t.) + * + * This does not alter setting.status. + * @param print + * The output structure to print to. + * @param path + * The file path having the mode changed. + * @param mode + * The mode being changed to. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + */ +#ifndef _di_fake_make_print_operate_set_mode_verbose_ + extern f_status_t fake_make_print_operate_set_mode_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path, const mode_t mode); +#endif // _di_fake_make_print_operate_set_mode_verbose_ + +/** + * Print verbose message about changing the project path. + * + * @param setting + * The main program settings. + * (Must be of type fake_setting_t.) + * + * This does not alter setting.status. + * @param print + * The output structure to print to. + * @param path + * The path being changed to. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + */ +#ifndef _di_fake_make_print_operate_set_path_verbose_ + extern f_status_t fake_make_print_operate_set_path_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path); +#endif // _di_fake_make_print_operate_set_path_verbose_ + +/** + * Print verbose message about setting owner or group. + * + * @param setting + * The main program settings. + * (Must be of type fake_setting_t.) + * + * This does not alter setting.status. + * @param print + * The output structure to print to. + * @param what + * Bitwise flags tweaking the message printed. + * - 0x1 = When set, print as recursive; When not set, print as non-recursive. + * - 0x2 = When set, print as Owner; When not set, print as Group. + * @param role + * A string representing the owner or group name. + * @param id + * The uid_t or gid_t representing the owner or group. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + */ +#ifndef _di_fake_make_print_operate_set_role_verbose_ + extern f_status_t fake_make_print_operate_set_role_verbose(fake_setting_t * const setting, const fl_print_t print, const uint8_t what, f_string_static_t role, f_number_unsigned_t id); +#endif // _di_fake_make_print_operate_set_role_verbose_ + +/** + * Print verbose message about create a symbolic link. + * + * @param setting + * The main program settings. + * (Must be of type fake_setting_t.) + * + * This does not alter setting.status. + * @param print + * The output structure to print to. + * @param source + * A string the symbolic link is from. + * @param destination + * A string the symbolic link is to. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + */ +#ifndef _di_fake_make_print_operate_symbolic_link_verbose_ + extern f_status_t fake_make_print_operate_symbolic_link_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t source, const f_string_static_t destination); +#endif // _di_fake_make_print_operate_symbolic_link_verbose_ + +/** + * Print verbose message about touching a file. + * + * @param setting + * The main program settings. + * (Must be of type fake_setting_t.) + * + * This does not alter setting.status. + * @param print + * The output structure to print to. + * @param path + * The file path being touched. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + */ +#ifndef _di_fake_make_print_operate_touch_verbose_ + extern f_status_t fake_make_print_operate_touch_verbose(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path); +#endif // _di_fake_make_print_operate_touch_verbose_ + +/** + * Print the processing section message. + * + * @param setting + * The main program settings. + * (Must be of type fake_setting_t.) + * + * This does not alter setting.status. + * @param print + * The output structure to print to. + * @param buffer + * The string containing the section name. + * @param section + * The section structure containing the section name range. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + */ +#ifndef _di_fake_make_print_processing_section_ + extern f_status_t fake_make_print_processing_section(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_fss_named_t section); +#endif // _di_fake_make_print_processing_section_ #ifdef __cplusplus } // extern "C" -- 1.8.3.1