]> Kevux Git Server - fll/commitdiff
Progress: Continue work on Featureless Make with emphasis on printing.
authorKevin Day <kevin@kevux.org>
Sun, 19 Feb 2023 04:46:41 +0000 (22:46 -0600)
committerKevin Day <kevin@kevux.org>
Sun, 19 Feb 2023 04:46:41 +0000 (22:46 -0600)
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
level_0/f_file/c/file/common.h
level_3/fake/c/main/make/operate_process.c
level_3/fake/c/main/make/operate_process_type.c
level_3/fake/c/main/make/print.c
level_3/fake/c/main/make/print.h

index f57d20e571068c7e07be8c77ae598c4f23ce1717..1fc90cb0bbfd359dee73c23ec5fdd2c6da3270c2 100644 (file)
@@ -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_
index a4e4c0251f82b79edf39a7333f1ab67fd29e87e1..c09a58cca7286091b467bba547fd6eb355833844 100644 (file)
@@ -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_
index 99035c12eef57177d7230efbf1e79b7d49b29e73..69c25e650f4fbc23765bb1b4f296079ce46a0f71 100644 (file)
@@ -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;
index a2672376f2464621e46824b26f7494b59621edb5..a1fd9799af6f1e1bab3dda67253462c42ff32513 100644 (file)
@@ -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;
index 0948973c003f2c83d350b68fd9ca8eedd205fd52..6fbdefc7b88bdca6ed290830953fd14dc0cfdab8 100644 (file)
@@ -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"
index 36f09824177d7d9887dcd3aa0e6a45b1b92dab53..6d049c00ca3e366ba0b613a75b5284e962c82d1a 100644 (file)
@@ -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"