]> Kevux Git Server - fll/commitdiff
Progress: Continue string and convert changes, fixing bugs.
authorKevin Day <thekevinday@gmail.com>
Sat, 21 Aug 2021 05:21:48 +0000 (00:21 -0500)
committerKevin Day <thekevinday@gmail.com>
Sat, 21 Aug 2021 05:40:33 +0000 (00:40 -0500)
Convert the fake program.

Move the "%n" to "%in" to be consistent with how "%un" is used.

Change print string safely to ignore NULL rather than print the NULL character symbol.
This is done to be consistent with existing FLL design.
I realized printing the symbol is a problem when I test the fake build verbose setting.

Add warning output to fake and control programs.

Add -O2 optimization by default.

Provide standard conversion base data.

45 files changed:
build/level_0/settings
build/monolithic/settings
level_0/f_color/c/color-common.h
level_0/f_control_group/c/control_group-common.c
level_0/f_control_group/c/control_group-common.h
level_0/f_conversion/c/conversion-common.c [new file with mode: 0644]
level_0/f_conversion/c/conversion-common.h
level_0/f_conversion/data/build/settings
level_0/f_print/c/print-common.h
level_0/f_print/c/print.c
level_0/f_print/c/print.h
level_0/f_print/c/private-print.c
level_1/fl_print/c/print.c
level_1/fl_print/c/print.h
level_1/fl_print/c/private-print.c
level_1/fl_print/c/private-print.h
level_2/fll_error/c/error.c
level_2/fll_error/c/private-error.c
level_2/fll_print/c/print.c
level_2/fll_print/c/print.h
level_2/fll_program/c/program.c
level_2/fll_program/c/program.h
level_3/byte_dump/c/byte_dump.c
level_3/byte_dump/c/byte_dump.h
level_3/byte_dump/c/private-byte_dump.c
level_3/control/c/control.c
level_3/control/data/build/dependencies
level_3/control/data/build/settings
level_3/controller/c/controller.c
level_3/controller/c/private-common.c
level_3/controller/c/private-controller.c
level_3/controller/c/private-entry.c
level_3/controller/c/private-rule.c
level_3/controller/c/private-thread.c
level_3/fake/c/fake.c
level_3/fake/c/fake.h
level_3/fake/c/private-build.c
level_3/fake/c/private-clean.c
level_3/fake/c/private-fake.c
level_3/fake/c/private-make.c
level_3/fake/c/private-print.c
level_3/fake/c/private-skeleton.c
level_3/fake/data/build/dependencies
level_3/fake/data/build/settings
level_3/fake/documents/fakefile.txt

index 19a332c6bc28d13729614769329f5d2bf9ae3799..425634a88181baa6c7b238e9da5c42866e14a17d 100644 (file)
@@ -22,7 +22,7 @@ build_language c
 build_libraries -lc -lcap
 build_libraries-level
 build_libraries-level_threadless
-build_sources_library account.c private-account.c capability.c color.c color-common.c console.c console-common.c control_group.c control_group-common.c conversion.c private-conversion.c directory.c private-directory.c environment.c private-environment.c file.c file-common.c private-file.c fss.c private-fss.c fss-common.c fss_named.c fss_nest.c fss_set.c iki.c iki-common.c private-iki.c limit.c memory.c memory_structure.c private-memory.c path.c path-common.c private-path.c pipe.c print.c print-common.c private-print.c serialize.c serialize-common.c private-serialize.c signal.c socket.c string.c string-common.c private-string.c string_dynamic.c string_map.c string_quantity.c string_range.c string_triple.c type_array.c private-type_array.c utf.c utf-common.c private-utf.c utf_dynamic.c utf_map.c utf_triple.c
+build_sources_library account.c private-account.c capability.c color.c color-common.c console.c console-common.c control_group.c control_group-common.c conversion.c conversion-common.c private-conversion.c directory.c private-directory.c environment.c private-environment.c file.c file-common.c private-file.c fss.c private-fss.c fss-common.c fss_named.c fss_nest.c fss_set.c iki.c iki-common.c private-iki.c limit.c memory.c memory_structure.c private-memory.c path.c path-common.c private-path.c pipe.c print.c print-common.c private-print.c serialize.c serialize-common.c private-serialize.c signal.c socket.c string.c string-common.c private-string.c string_dynamic.c string_map.c string_quantity.c string_range.c string_triple.c type_array.c private-type_array.c utf.c utf-common.c private-utf.c utf_dynamic.c utf_map.c utf_triple.c
 build_sources_library-level thread.c private-thread.c
 build_sources_program
 build_sources_headers account.h account-common.h capability.h capability-common.h color.h color-common.h console.h console-common.h control_group.h control_group-common.h conversion.h conversion-common.h directory.h directory_type.h directory-common.h environment.h environment-common.h execute.h execute-common.h file.h file-common.h fss.h fss-common.h fss_comment.h fss_delimit.h fss_named.h fss_nest.h fss_quote.h fss_set.h iki.h iki-common.h limit.h limit-common.h memory.h memory_structure.h memory-common.h path.h path-common.h pipe.h print.h print-common.h serialize.h serialize-common.h signal.h signal-common.h socket.h socket-common.h status.h string.h string-common.h string_dynamic.h string_map.h string_quantity.h string_range.h string_triple.h type.h type_array.h type_array-common.h utf.h utf-common.h utf_dynamic.h utf_map.h utf_triple.h
index 00364bd8d445aefaaf6b66d5f013876042e23b4b..5238803786ae509a4e6ffe506c420a4d471ea82e 100644 (file)
@@ -22,7 +22,7 @@ build_language c
 build_libraries -lc -lcap
 build_libraries-monolithic
 build_libraries-monolithic_threadless
-build_sources_library level_0/account.c level_0/private-account.c level_0/capability.c level_0/color.c level_0/color-common.c level_0/console.c level_0/console-common.c level_0/control_group.c level_0/control_group-common.c level_0/conversion.c level_0/private-conversion.c level_0/directory.c level_0/private-directory.c level_0/environment.c level_0/private-environment.c level_0/file.c level_0/file-common.c level_0/private-file.c level_0/fss.c level_0/private-fss.c level_0/fss-common.c level_0/fss_named.c level_0/fss_nest.c level_0/fss_set.c level_0/iki.c level_0/iki-common.c level_0/private-iki.c level_0/limit.c level_0/memory.c level_0/memory_structure.c level_0/private-memory.c level_0/path.c level_0/path-common.c level_0/private-path.c level_0/pipe.c level_0/print.c level_0/print-common.c level_0/private-print.c level_0/serialize.c level_0/serialize-common.c level_0/private-serialize.c level_0/signal.c level_0/socket.c level_0/string.c level_0/string-common.c level_0/private-string.c level_0/string_dynamic.c level_0/string_map.c level_0/string_quantity.c level_0/string_range.c level_0/string_triple.c level_0/type_array.c level_0/private-type_array.c level_0/utf.c level_0/utf-common.c level_0/private-utf.c level_0/utf_dynamic.c level_0/utf_map.c level_0/utf_triple.c level_1/console.c level_1/control_group.c level_1/conversion.c level_1/directory.c level_1/private-directory.c level_1/environment.c level_1/private-fss.c level_1/fss_basic.c level_1/fss_basic_list.c level_1/fss_embedded_list.c level_1/fss_extended.c level_1/fss_extended_list.c level_1/iki.c level_1/print.c level_1/private-print.c level_1/signal.c level_1/status.c level_1/string.c level_1/private-string.c level_1/utf.c level_1/private-utf.c level_1/utf_file.c level_1/private-utf_file.c level_2/control_group.c level_2/error.c level_2/error-common.c level_2/private-error.c level_2/execute.c level_2/private-execute.c level_2/file.c level_2/private-file.c level_2/fss.c level_2/private-fss.c level_2/fss_basic.c level_2/fss_basic_list.c level_2/fss_embedded_list.c level_2/fss_extended.c level_2/fss_extended_list.c level_2/fss_status.c level_2/iki.c level_2/private-iki.c level_2/path.c level_2/print.c level_2/program.c level_2/status.c
+build_sources_library level_0/account.c level_0/private-account.c level_0/capability.c level_0/color.c level_0/color-common.c level_0/console.c level_0/console-common.c level_0/control_group.c level_0/control_group-common.c level_0/conversion.c level_0/conversion-common.c level_0/private-conversion.c level_0/directory.c level_0/private-directory.c level_0/environment.c level_0/private-environment.c level_0/file.c level_0/file-common.c level_0/private-file.c level_0/fss.c level_0/private-fss.c level_0/fss-common.c level_0/fss_named.c level_0/fss_nest.c level_0/fss_set.c level_0/iki.c level_0/iki-common.c level_0/private-iki.c level_0/limit.c level_0/memory.c level_0/memory_structure.c level_0/private-memory.c level_0/path.c level_0/path-common.c level_0/private-path.c level_0/pipe.c level_0/print.c level_0/print-common.c level_0/private-print.c level_0/serialize.c level_0/serialize-common.c level_0/private-serialize.c level_0/signal.c level_0/socket.c level_0/string.c level_0/string-common.c level_0/private-string.c level_0/string_dynamic.c level_0/string_map.c level_0/string_quantity.c level_0/string_range.c level_0/string_triple.c level_0/type_array.c level_0/private-type_array.c level_0/utf.c level_0/utf-common.c level_0/private-utf.c level_0/utf_dynamic.c level_0/utf_map.c level_0/utf_triple.c level_1/console.c level_1/control_group.c level_1/conversion.c level_1/directory.c level_1/private-directory.c level_1/environment.c level_1/private-fss.c level_1/fss_basic.c level_1/fss_basic_list.c level_1/fss_embedded_list.c level_1/fss_extended.c level_1/fss_extended_list.c level_1/iki.c level_1/print.c level_1/private-print.c level_1/signal.c level_1/status.c level_1/string.c level_1/private-string.c level_1/utf.c level_1/private-utf.c level_1/utf_file.c level_1/private-utf_file.c level_2/control_group.c level_2/error.c level_2/error-common.c level_2/private-error.c level_2/execute.c level_2/private-execute.c level_2/file.c level_2/private-file.c level_2/fss.c level_2/private-fss.c level_2/fss_basic.c level_2/fss_basic_list.c level_2/fss_embedded_list.c level_2/fss_extended.c level_2/fss_extended_list.c level_2/fss_status.c level_2/iki.c level_2/private-iki.c level_2/path.c level_2/print.c level_2/program.c level_2/status.c
 build_sources_library-monolithic level_0/thread.c level_0/private-thread.c
 build_sources_program
 build_sources_headers level_0/account.h level_0/account-common.h level_0/capability.h level_0/capability-common.h level_0/color.h level_0/color-common.h level_0/console.h level_0/console-common.h level_0/control_group.h level_0/control_group-common.h level_0/conversion.h level_0/conversion-common.h level_0/directory.h level_0/directory_type.h level_0/directory-common.h level_0/environment.h level_0/environment-common.h level_0/execute.h level_0/execute-common.h level_0/file.h level_0/file-common.h level_0/fss.h level_0/fss-common.h level_0/fss_comment.h level_0/fss_delimit.h level_0/fss_named.h level_0/fss_nest.h level_0/fss_quote.h level_0/fss_set.h level_0/iki.h level_0/iki-common.h level_0/limit.h level_0/limit-common.h level_0/memory.h level_0/memory_structure.h level_0/memory-common.h level_0/path.h level_0/path-common.h level_0/pipe.h level_0/print.h level_0/print-common.h level_0/serialize.h level_0/serialize-common.h level_0/signal.h level_0/signal-common.h level_0/socket.h level_0/socket-common.h level_0/status.h level_0/string.h level_0/string-common.h level_0/string_dynamic.h level_0/string_map.h level_0/string_quantity.h level_0/string_range.h level_0/string_triple.h level_0/type.h level_0/type_array.h level_0/type_array-common.h level_0/utf.h level_0/utf-common.h level_0/utf_dynamic.h level_0/utf_map.h level_0/utf_triple.h level_1/console.h level_1/control_group.h level_1/conversion.h level_1/directory.h level_1/environment.h level_1/execute.h level_1/execute-common.h level_1/fss.h level_1/fss_basic.h level_1/fss_basic_list.h level_1/fss_embedded_list.h level_1/fss_extended.h level_1/fss_extended_list.h level_1/fss_status.h level_1/iki.h level_1/print.h level_1/signal.h level_1/signal-common.h level_1/status.h level_1/string.h level_1/utf.h level_1/utf_file.h level_2/control_group.h level_2/error.h level_2/error-common.h level_2/execute.h level_2/file.h level_2/fss.h level_2/fss_basic.h level_2/fss_basic_list.h level_2/fss_embedded_list.h level_2/fss_extended.h level_2/fss_extended_list.h level_2/fss_status.h level_2/iki.h level_2/path.h level_2/print.h level_2/program.h level_2/status.h
index 3cfdc9fe6bceb2c7150857834fe0dfd1c2a26713..625aa95d01bdb3b80dcaa0027700d166e7bc2efc 100644 (file)
@@ -418,7 +418,7 @@ extern "C" {
     macro_f_string_dynamic_t_clear(context.normal_reset)
 
   #define macro_f_color_context_t_new(status, context) \
-     macro_f_string_dynamic_t_resize(status, context.reset, f_color_max_size + 1) \
+    macro_f_string_dynamic_t_resize(status, context.reset, f_color_max_size + 1) \
     if (F_status_is_error_not(status)) macro_f_string_dynamic_t_resize(status, context.warning, f_color_max_size + 1) \
     if (F_status_is_error_not(status)) macro_f_string_dynamic_t_resize(status, context.error, f_color_max_size + 1) \
     if (F_status_is_error_not(status)) macro_f_string_dynamic_t_resize(status, context.title, f_color_max_size + 1) \
index 030a74fe28e7725a62d19689670a785dc5d83ef4..29bbd76bfe88c6ea180efb2dcbb7659dbb5065ff 100644 (file)
@@ -4,11 +4,11 @@
 extern "C" {
 #endif
 
-#ifndef _di_fl_control_group_defines_
+#ifndef _di_f_control_group_defines_
   const f_string_t f_control_group_path_system_default_s = f_control_group_path_system_default;
   const f_string_t f_control_group_path_system_prefix_s = f_control_group_path_system_prefix;
   const f_string_t f_control_group_path_system_suffix_s = f_control_group_path_system_suffix;
-#endif // _di_fl_control_group_defines_
+#endif // _di_f_control_group_defines_
 
 #ifdef __cplusplus
 } // extern "C"
index 1859cdee0c71a7c60cd914c36fd1fbcb0d94da17..15ab2be2e10e6da4cb3efdfbb21808cd72ec6051 100644 (file)
@@ -19,7 +19,7 @@ extern "C" {
 /**
  * The defines for control groups.
  */
-#ifndef _di_fl_control_group_defines_
+#ifndef _di_f_control_group_defines_
   #define f_control_group_path_system_default "sys/fs/cgroup/"
   #define f_control_group_path_system_prefix  "/"
   #define f_control_group_path_system_suffix   "/cgroup.procs"
@@ -33,7 +33,7 @@ extern "C" {
   extern const f_string_t f_control_group_path_system_default_s;
   extern const f_string_t f_control_group_path_system_prefix_s;
   extern const f_string_t f_control_group_path_system_suffix_s;
-#endif // _di_fl_control_group_defines_
+#endif // _di_f_control_group_defines_
 
 /**
  * Provide a structure for associating some process with one or more control groups (cgroups).
diff --git a/level_0/f_conversion/c/conversion-common.c b/level_0/f_conversion/c/conversion-common.c
new file mode 100644 (file)
index 0000000..1b7a724
--- /dev/null
@@ -0,0 +1,17 @@
+#include "conversion.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_f_conversion_data_t_defines_
+  const f_conversion_data_t f_conversion_data_base_2_s = macro_f_conversion_data_t_initialize(2, 0, 1);
+  const f_conversion_data_t f_conversion_data_base_8_s = macro_f_conversion_data_t_initialize(8, 0, 1);
+  const f_conversion_data_t f_conversion_data_base_10_s = macro_f_conversion_data_t_initialize(10, 0, 1);
+  const f_conversion_data_t f_conversion_data_base_12_s = macro_f_conversion_data_t_initialize(12, 0, 1);
+  const f_conversion_data_t f_conversion_data_base_16_s = macro_f_conversion_data_t_initialize(16, 0, 1);
+#endif // _di_f_conversion_data_t_defines_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
index 407b451d78654cf4edaf5dfa3ecca605d1d3fd6f..84d02a7179c14d1ae8618404e02f2180ad04099a 100644 (file)
@@ -100,6 +100,24 @@ extern "C" {
 #endif // _di_f_conversion_data_t_
 
 /**
+ * The defines for conversion data.
+ *
+ * f_conversion_data_base_*:
+ * - 2:  Basic base-2 conversion structure.
+ * - 8:  Basic base-8 conversion structure.
+ * - 10: Basic base-10 conversion structure.
+ * - 12: Basic base-12 conversion structure.
+ * - 16: Basic base-16 conversion structure.
+ */
+#ifndef _di_f_conversion_data_t_defines_
+  extern const f_conversion_data_t f_conversion_data_base_2_s;
+  extern const f_conversion_data_t f_conversion_data_base_8_s;
+  extern const f_conversion_data_t f_conversion_data_base_10_s;
+  extern const f_conversion_data_t f_conversion_data_base_12_s;
+  extern const f_conversion_data_t f_conversion_data_base_16_s;
+#endif // _di_f_conversion_data_t_defines_
+
+/**
  * Define flags used by f_conversion_data_t.
  *
  * f_conversion_data_flag_*:
index 7a2e38bc4cda0f8c3a617cfe25e5cf24861e477c..659291a6db6005773a16be1b35b4942dcd75d501 100644 (file)
@@ -21,7 +21,7 @@ build_indexer ar
 build_language c
 build_libraries -lc
 build_libraries-individual -lf_memory -lf_string -lf_utf
-build_sources_library conversion.c private-conversion.c
+build_sources_library conversion.c conversion-common.c private-conversion.c
 build_sources_program
 build_sources_headers conversion.h conversion-common.h
 build_sources_script
index 29153af748d10bb6b6f0490b30bbe7b17d12b70c..c537ea0707e98bf602e8628cb9a9965f3a4dae5a 100644 (file)
@@ -176,12 +176,12 @@ extern "C" {
  * - character_safe:     "C", type is a 1-byte unsigned character, where control characters and other problems are handled.
  * - color_after:        "]", type is f_color_set_t such that the f_color_set_t.after is used.
  * - color_before:       "[", type is f_color_set_t such that the f_color_set_t.begin is used.
- * - number:             "n", "N", type is an f_number_signed_t.
  * - signed_8:           "iii", "III", type is a int8_t.
  * - signed_16:          "ii", "II", type is a int16_t.
  * - signed_32:          "i", "I", type is a int32_t.
  * - signed_64:          "il", "IL", type is a signed int64_t.
  * - signed_128:         "ill", "ILL", type is a f_int_128_t.
+ * - number:             "in", "IN", type is an f_number_signed_t.
  * - size:               "z", "Z", type is a size_t.
  * - string_safe:        "S", type is a NULL terminated string, where control characters and other problems are handled.
  * - string_static:      "q", type is an f_string_static_t or f_string_dynamic_t and NULLs are ignored (not printed).
@@ -202,12 +202,12 @@ extern "C" {
     f_print_format_type_character_safe,
     f_print_format_type_color_after,
     f_print_format_type_color_before,
-    f_print_format_type_number,
     f_print_format_type_signed_8,
     f_print_format_type_signed_16,
     f_print_format_type_signed_32,
     f_print_format_type_signed_64,
     f_print_format_type_signed_128,
+    f_print_format_type_signed_number,
     f_print_format_type_size,
     f_print_format_type_string,
     f_print_format_type_string_safe,
index e11cc2e6edb3c298f8a09f413143556810bac713..3c69e35256b716320c78ef6d999a42abb9e6639b 100644 (file)
@@ -586,8 +586,13 @@ extern "C" {
         i += width;
       }
       else {
-        status = private_f_print_character_safely(string[i++], output);
-        if (F_status_is_error(status)) return status;
+        if (string[i]) {
+          status = private_f_print_character_safely(string[i++], output);
+          if (F_status_is_error(status)) return status;
+        }
+        else {
+          ++i;
+        }
       }
 
       start = i;
index 2cb5fe2f9ecd0a60baf788c9524427dddc0d4792..ba352b0234bc6e2bb5913c7b1bd303ab45fc0fce 100644 (file)
@@ -194,11 +194,11 @@ extern "C" {
 /**
  * Similar to a c-library printf, except that this prints a given dynamic string.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will print up to length 1-byte characters.
  *
  * This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
@@ -286,11 +286,11 @@ extern "C" {
 /**
  * Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will print up to the specified range within the buffer.
  *
  * This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
@@ -396,11 +396,11 @@ extern "C" {
 /**
  * Similar to a c-library printf, except that this will only print a specific range.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except array.
  * Will print up to length 1-byte characters.
  *
@@ -500,11 +500,11 @@ extern "C" {
 /**
  * Similar to a c-library printf, except that this prints a given dynamic string.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except array.
  * Will print up to length 1-byte characters.
  *
@@ -620,13 +620,13 @@ extern "C" {
 /**
  * Similar to a c-library printf, except that this will only print a specific range.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * An offset is provided because the except_at/except_int positions are expected to be relative to the start position, without the offset applied.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except_at array.
  * Will not print any 1-byte character within the ranges specified in except_in array.
  * Will print up to length 1-byte characters.
@@ -738,11 +738,11 @@ extern "C" {
 /**
  * Similar to a c-library printf, except that this prints a given dynamic string.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except_at array.
  * Will not print any 1-byte character within the ranges specified in except_in array.
  * Will print up to the length of the buffer.
@@ -1029,11 +1029,11 @@ extern "C" {
 /**
  * Similar to a c-library printf, except that this will only print a specific range in a given dynamic string.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except array.
  * Will print up to the specified range within the buffer.
  *
@@ -1125,11 +1125,11 @@ extern "C" {
 /**
  * Similar to a c-library printf, except that this will only print a specific range.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will print up to length 1-byte characters.
  *
  * This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
@@ -1159,7 +1159,7 @@ extern "C" {
 /**
  * Similar to a c-library printf.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will stop at NULL.
@@ -1290,11 +1290,11 @@ extern "C" {
 /**
  * Similar to a c-library dprintf, except that this will only print a specific range.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will print up to length 1-byte characters.
  *
  * @param string
@@ -1390,11 +1390,11 @@ extern "C" {
 /**
  * Similar to a c-library dprintf, except that this prints a given dynamic string.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will print up to length 1-byte characters.
  *
  * @param buffer
@@ -1492,11 +1492,11 @@ extern "C" {
 /**
  * Similar to a c-library dprintf, except that this will only print a specific range in a given dynamic string.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will print up to length 1-byte characters.
  *
  * @param buffer
@@ -1604,11 +1604,11 @@ extern "C" {
 /**
  * Similar to a c-library dprintf, except that this will only print a specific range.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except array.
  * Will print up to length 1-byte characters.
  *
@@ -1716,11 +1716,11 @@ extern "C" {
 /**
  * Similar to a c-library dprintf, except that this prints a given dynamic string.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except array.
  * Will print up to the length of the buffer.
  *
@@ -1830,11 +1830,11 @@ extern "C" {
 /**
  * Similar to a c-library dprintf, except that this will only print a specific range in a given dynamic string.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except array.
  * Will print up to the specified range within the buffer.
  *
index 345972a3e722fd389324127faae65cc2512853cc..a636b3b38d9dd3b074968d72a53680deabcbd2bc 100644 (file)
@@ -256,8 +256,13 @@ extern "C" {
         i += width;
       }
       else {
-        status = private_f_print_character_safely(string[i++], output);
-        if (F_status_is_error(status)) return status;
+        if (string[i]) {
+          status = private_f_print_character_safely(string[i++], output);
+          if (F_status_is_error(status)) return status;
+        }
+        else {
+          ++i;
+        }
       }
 
       start = i;
index ce2d2a5b57b2cc1d913468abb15c65f5433fbffb..3fbeab11360f4c3ed2ffad4a6dedd4d87fe5ef40 100644 (file)
@@ -91,8 +91,8 @@ extern "C" {
   }
 #endif // _di_fl_print_color_terminated_
 
-#ifndef _di_fl_print_string_
-  f_status_t fl_print_string(const f_string_t string, FILE *output, ...) {
+#ifndef _di_fl_print_format_
+  f_status_t fl_print_format(const f_string_t string, FILE *output, ...) {
     #ifndef _di_level_1_parameter_checking_
       if (!string) return 0;
       if (!output) return 0;
@@ -109,7 +109,7 @@ extern "C" {
       if (*current == f_string_ascii_percent_s[0]) {
         current += 1;
 
-        current = private_fl_print_string_convert(current, output, &ap, &status);
+        current = private_fl_print_format_convert(current, output, &ap, &status);
         if (F_status_is_error(status)) break;
       }
       else {
@@ -123,18 +123,18 @@ extern "C" {
 
     return status;
   }
-#endif // _di_fl_print_string_
+#endif // _di_fl_print_format_
 
-#ifndef _di_fl_print_string_convert_
-  f_string_t fl_print_string_convert(const f_string_t string, FILE *output, va_list *ap, f_status_t *status) {
+#ifndef _di_fl_print_format_convert_
+  f_string_t fl_print_format_convert(const f_string_t string, FILE *output, va_list *ap, f_status_t *status) {
     #ifndef _di_level_1_parameter_checking_
       if (!output) return 0;
       if (!ap) return 0;
     #endif // _di_level_1_parameter_checking_
 
-    return private_fl_print_string_convert(string, output, ap, status);
+    return private_fl_print_format_convert(string, output, ap, status);
   }
-#endif // _di_fl_print_string_convert_
+#endif // _di_fl_print_format_convert_
 
 #ifndef _di_fl_print_string_va_
   f_status_t fl_print_string_va(const f_string_t string, FILE *output, va_list *ap) {
@@ -151,7 +151,7 @@ extern "C" {
       if (*current == f_string_ascii_percent_s[0]) {
         current += 1;
 
-        current = private_fl_print_string_convert(current, output, ap, &status);
+        current = private_fl_print_format_convert(current, output, ap, &status);
         if (F_status_is_error(status)) break;
       }
       else {
index c3a6140d01bbaea3a7501d7774938d6c904718be..c96c8d3f8b10b0bb4dd4464102953028c7fb2738 100644 (file)
@@ -164,9 +164,9 @@ extern "C" {
  * @see f_print_safely()
  * @see f_print_terminated()
  */
-#ifndef _di_fl_print_string_
-  extern f_status_t fl_print_string(const f_string_t string, FILE *output, ...);
-#endif // _di_fl_print_string_
+#ifndef _di_fl_print_format_
+  extern f_status_t fl_print_format(const f_string_t string, FILE *output, ...);
+#endif // _di_fl_print_format_
 
 /**
  * Convert and print a single part of a formatted string represented by the '%'.
@@ -223,14 +223,14 @@ extern "C" {
  * @see f_print_safely()
  * @see f_print_terminated()
  */
-#ifndef _di_fl_print_string_convert_
-  extern f_string_t fl_print_string_convert(const f_string_t string, FILE *output, va_list *ap, f_status_t *status);
-#endif // _di_fl_print_string_convert_
+#ifndef _di_fl_print_format_convert_
+  extern f_string_t fl_print_format_convert(const f_string_t string, FILE *output, va_list *ap, f_status_t *status);
+#endif // _di_fl_print_format_convert_
 
 /**
  * A formatted print function similar to (but not the same as) the c-library vfprintf() function.
  *
- * This is identical to fl_print_string() except it accepts a va_list as a variable instead of as "...".
+ * This is identical to fl_print_format() except it accepts a va_list as a variable instead of as "...".
  *
  * This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
  *
@@ -273,7 +273,7 @@ extern "C" {
  * @see f_print_dynamic_safely()
  * @see f_print_safely()
  * @see f_print_terminated()
- * @see fl_print_string()
+ * @see fl_print_format()
  */
 #ifndef _di_fl_print_string_va_
   extern f_status_t fl_print_string_va(const f_string_t string, FILE *output, va_list *ap);
@@ -353,11 +353,11 @@ extern "C" {
 /**
  * Print a string, stripping leading and trailing whitespace.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  *
  * This print function does not use locking, be sure something like flockfile() and funlockfile() are appropriately called.
  *
@@ -461,11 +461,11 @@ extern "C" {
 /**
  * Print a dynamic string, stripping leading and trailing whitespace.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will print the entire dynamic string, except for leading/trailing whitespace.
  *
  * NULL characters are treated as whitespace for the purpose of trimming.
@@ -574,11 +574,11 @@ extern "C" {
 /**
  * Print a partial dynamic string, stripping leading and trailing whitespace.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will print the only the buffer range specified by range, except for leading/trailing whitespace.
  *
  * NULL characters are treated as whitespace for the purpose of trimming.
@@ -699,11 +699,11 @@ extern "C" {
 /**
  * Print a string, stripping leading and trailing whitespace.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except_at array.
  *
  * NULL characters are treated as whitespace for the purpose of trimming.
@@ -823,11 +823,11 @@ extern "C" {
 /**
  * Print a dynamic string, stripping leading and trailing whitespace.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will print the entire dynamic string, except for leading/trailing whitespace.
  * Will not print any 1-byte character at a location specified in except_at array.
  *
@@ -958,11 +958,11 @@ extern "C" {
 /**
  * Print a string, stripping leading and trailing whitespace.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except_at array.
  * Will not print any 1-byte character within the ranges specified in except_in array.
  *
@@ -1096,11 +1096,11 @@ extern "C" {
 /**
  * Print a dynamic string, stripping leading and trailing whitespace.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will print the entire dynamic string, except for leading/trailing whitespace.
  * Will not print any 1-byte character at a location specified in except_at array.
  * Will not print any 1-byte character within the ranges specified in except_in array.
@@ -1233,11 +1233,11 @@ extern "C" {
 /**
  * Print a partial dynamic string, stripping leading and trailing whitespace.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except_at array.
  * Will not print any 1-byte character within the ranges specified in except_in array.
  * Will print the only the buffer range specified by range, except for leading/trailing whitespace.
@@ -1364,11 +1364,11 @@ extern "C" {
 /**
  * Print a partial dynamic string, stripping leading and trailing whitespace.
  *
- * Control characters are converted to the Unicode control character symbols, including NULL.
+ * Control characters are converted to the Unicode control character symbols, excluding NULL.
  * UTF-8 sequences with invalid widths are converted to the unknown character '�'.
  *
  * Will not stop at NULL.
- * Will print NULL (as a control character symbol).
+ * Will not print NULL.
  * Will not print any 1-byte character at a location specified in except array.
  * Will print the only the buffer range specified by range, except for leading/trailing whitespace.
  *
index bd3c1547d7cef186a6ee1601dd711d422e884752..c06232ba567e2d7d77f5a1b58d81484c6ea957d8 100644 (file)
@@ -5,8 +5,8 @@
 extern "C" {
 #endif
 
-#if !defined(_di_fl_print_string_convert_) || !defined(_di_fl_print_string_)
-  f_string_t private_fl_print_string_convert(f_string_t string, FILE *output, va_list *ap, f_status_t *status) {
+#if !defined(_di_fl_print_format_) || !defined(_di_fl_print_format_convert_)
+  f_string_t private_fl_print_format_convert(f_string_t string, FILE *output, va_list *ap, f_status_t *status) {
 
     const f_string_t start = string;
 
@@ -97,7 +97,7 @@ extern "C" {
             return string;
           }
 
-          string += 1;
+          ++string;
 
           if (*string < 0x30 || *string > 0x39) {
             *status = F_status_set_error(F_valid_not);
@@ -181,27 +181,28 @@ extern "C" {
           if (*(string + 1) == f_string_ascii_I_s[0]) {
             if (*(string + 2) == f_string_ascii_I_s[0]) {
               type = f_print_format_type_signed_8;
-              string = string + 2;
+              string += 2;
             }
             else {
               type = f_print_format_type_signed_16;
-              string += 1;
+              ++string;
             }
           }
           else if (*(string + 1) == f_string_ascii_L_s[0]) {
             if (*(string + 2) == f_string_ascii_L_s[0]) {
               type = f_print_format_type_signed_128;
-              string = string + 2;
+              string += 2;
             }
             else {
               type = f_print_format_type_signed_64;
-              string += 1;
+              ++string;
             }
           }
-        }
-        else if (*string == f_string_ascii_N_s[0]) {
-          type = f_print_format_type_number;
-          flag |= f_print_format_flag_uppercase;
+          else if (*(string + 1) == f_string_ascii_N_s[0]) {
+            type = f_print_format_type_signed_number;
+            flag |= f_print_format_flag_uppercase;
+            ++string;
+          }
         }
         else if (*string == f_string_ascii_Q_s[0]) {
           const f_string_static_t value = va_arg(*ap, f_string_static_t);
@@ -334,26 +335,26 @@ extern "C" {
           if (*(string + 1) == f_string_ascii_I_s[0]) {
             if (*(string + 2) == f_string_ascii_I_s[0]) {
               type = f_print_format_type_unsigned_8;
-              string = string + 2;
+              string += 2;
             }
             else {
               type = f_print_format_type_unsigned_16;
-              string += 1;
+              ++string;
             }
           }
           else if (*(string + 1) == f_string_ascii_L_s[0]) {
             if (*(string + 2) == f_string_ascii_L_s[0]) {
               type = f_print_format_type_unsigned_128;
-              string = string + 2;
+              string += 2;
             }
             else {
               type = f_print_format_type_unsigned_64;
-              string += 1;
+              ++string;
             }
           }
           else if (*(string + 1) == f_string_ascii_N_s[0]) {
             type = f_print_format_type_unsigned_number;
-            string += 1;
+            ++string;
           }
         }
         else {
@@ -417,26 +418,27 @@ extern "C" {
           if (*(string + 1) == f_string_ascii_i_s[0]) {
             if (*(string + 2) == f_string_ascii_i_s[0]) {
               type = f_print_format_type_signed_8;
-              string = string + 2;
+              string += 2;
             }
             else {
               type = f_print_format_type_signed_16;
-              string += 1;
+              ++string;
             }
           }
           else if (*(string + 1) == f_string_ascii_l_s[0]) {
             if (*(string + 2) == f_string_ascii_l_s[0]) {
               type = f_print_format_type_signed_128;
-              string = string + 2;
+              string += 2;
             }
             else {
               type = f_print_format_type_signed_64;
-              string += 1;
+              ++string;
             }
           }
-        }
-        else if (*string == f_string_ascii_n_s[0]) {
-          type = f_print_format_type_number;
+          else if (*(string + 1) == f_string_ascii_n_s[0]) {
+            type = f_print_format_type_signed_number;
+            ++string;
+          }
         }
         else if (*string == f_string_ascii_q_s[0]) {
           const f_string_static_t value = va_arg(*ap, f_string_static_t);
@@ -692,26 +694,26 @@ extern "C" {
           if (*(string + 1) == f_string_ascii_i_s[0]) {
             if (*(string + 2) == f_string_ascii_i_s[0]) {
               type = f_print_format_type_unsigned_8;
-              string = string + 2;
+              string += 2;
             }
             else {
               type = f_print_format_type_unsigned_16;
-              string += 1;
+              ++string;
             }
           }
           else if (*(string + 1) == f_string_ascii_l_s[0]) {
             if (*(string + 2) == f_string_ascii_l_s[0]) {
               type = f_print_format_type_unsigned_128;
-              string = string + 2;
+              string += 2;
             }
             else {
               type = f_print_format_type_unsigned_64;
-              string += 1;
+              ++string;
             }
           }
           else if (*(string + 1) == f_string_ascii_n_s[0]) {
             type = f_print_format_type_unsigned_number;
-            string += 1;
+            ++string;
           }
         }
         else if (*string == f_string_ascii_z_s[0]) {
@@ -757,7 +759,7 @@ extern "C" {
         conversion_data.width = precision;
       }
 
-      if (type == f_print_format_type_number) {
+      if (type == f_print_format_type_signed_number) {
         *status = f_conversion_number_signed_print(va_arg(*ap, f_number_signed_t), conversion_data, output);
       }
       else if (type == f_print_format_type_signed_64) {
@@ -812,9 +814,9 @@ extern "C" {
 
     return string;
   }
-#endif // !defined(_di_fl_print_string_convert_) || !defined(_di_fl_print_string_)
+#endif // !defined(_di_fl_print_format_) || !defined(_di_fl_print_format_convert_)
 
-#if !defined(_di_fl_print_string_convert_) || !defined(_di_fl_print_string_)
+#if !defined(_di_fl_print_format_) || !defined(_di_fl_print_format_convert_)
   f_string_t private_fl_print_convert_number(f_string_t string, va_list *ap, unsigned int *number, f_status_t *status) {
 
     for (*number = 0; *string; string += 1) {
@@ -835,7 +837,7 @@ extern "C" {
 
     return string;
   }
-#endif // !defined(_di_fl_print_string_convert_) || !defined(_di_fl_print_string_)
+#endif // !defined(_di_fl_print_format_) || !defined(_di_fl_print_format_convert_)
 
 #if !defined(_di_fl_print_trim_except_) || !defined(_di_fl_print_trim_except_dynamic_) || !defined(_di_fl_print_trim_except_dynamic_partial_) || !defined(_di_fl_print_trim_except_in_) || !defined(_di_fl_print_trim_except_in_dynamic_) || !defined(_di_fl_print_trim_except_in_dynamic_partial_)
   f_status_t private_fl_print_trim_except_in(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
@@ -1447,18 +1449,6 @@ extern "C" {
           }
 
           if (!string[i]) {
-            if (!fputc_unlocked(f_print_sequence_null_s[0], output)) {
-              return F_status_set_error(F_output);
-            }
-
-            if (!fputc_unlocked(f_print_sequence_null_s[1], output)) {
-              return F_status_set_error(F_output);
-            }
-
-            if (!fputc_unlocked(f_print_sequence_null_s[2], output)) {
-              return F_status_set_error(F_output);
-            }
-
             ++i;
             continue;
           }
@@ -1923,18 +1913,6 @@ extern "C" {
           }
 
           if (!string[i]) {
-            if (!fputc_unlocked(f_print_sequence_null_s[0], output)) {
-              return F_status_set_error(F_output);
-            }
-
-            if (!fputc_unlocked(f_print_sequence_null_s[1], output)) {
-              return F_status_set_error(F_output);
-            }
-
-            if (!fputc_unlocked(f_print_sequence_null_s[2], output)) {
-              return F_status_set_error(F_output);
-            }
-
             ++i;
             continue;
           }
index 6ca6928e4e40131aaec1e5709023631fecc1d3f1..957e296ebcb04f60611470b71915b2be9a20e1c3 100644 (file)
@@ -70,9 +70,9 @@ extern "C" {
  *
  * @see private_fl_print_convert_number()
  */
-#if !defined(_di_fl_print_string_convert_) || !defined(_di_fl_print_string_)
-  extern f_string_t private_fl_print_string_convert(f_string_t string, FILE *output, va_list *ap, f_status_t *status) f_attribute_visibility_internal;
-#endif // !defined(_di_fl_print_string_convert_) || !defined(_di_fl_print_string_)
+#if !defined(_di_fl_print_format_) || !defined(_di_fl_print_format_convert_)
+  extern f_string_t private_fl_print_format_convert(f_string_t string, FILE *output, va_list *ap, f_status_t *status) f_attribute_visibility_internal;
+#endif // !defined(_di_fl_print_format_) || !defined(_di_fl_print_format_convert_)
 
 /**
  * Helper function for processing the number in a convert string.
@@ -94,9 +94,9 @@ extern "C" {
  *
  * @see va_arg()
  */
-#if !defined(_di_fl_print_string_convert_) || !defined(_di_fl_print_string_)
+#if !defined(_di_fl_print_format_) || !defined(_di_fl_print_format_convert_)
   extern f_string_t private_fl_print_convert_number(f_string_t string, va_list *ap, unsigned int *number, f_status_t *status) f_attribute_visibility_internal;
-#endif // !defined(_di_fl_print_string_convert_) || !defined(_di_fl_print_string_)
+#endif // !defined(_di_fl_print_format_) || !defined(_di_fl_print_format_convert_)
 
 /**
  * Private implementation of fl_print_trim_except().
index 9d8972235f2262751db83ec45c0f761759c0d3f0..1a2cc31f0c97f045aebb1e1abb7da9e9ba0d396e 100644 (file)
@@ -28,9 +28,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SAccess denied while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SAccess denied while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -42,9 +42,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SCurrent user is not allowed to use the given group while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SCurrent user is not allowed to use the given group while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -56,9 +56,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SCurrent user is not allowed to use the given owner while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SCurrent user is not allowed to use the given owner while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -70,9 +70,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SInvalid directory while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SInvalid directory while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -84,9 +84,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%[', not empty.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%[', not empty.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -98,9 +98,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%[', failed to close.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%[', failed to close.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -112,9 +112,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%[', is closed.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%[', is closed.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -126,9 +126,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%[', found.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%[', found.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -140,9 +140,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%[', could not find.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%[', could not find.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -154,9 +154,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%[', already open.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%[', already open.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -168,9 +168,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SFile descriptor error while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SFile descriptor error while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -182,9 +182,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SMax file descriptors reached while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SMax file descriptors reached while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -196,9 +196,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SInvalid file descriptor while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SInvalid file descriptor while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -210,9 +210,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%[', %s is empty.%]%c", print.to.stream, print.context, type_name, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%[', %s is empty.%]%c", print.to.stream, print.context, type_name, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -224,9 +224,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%[', flush failed.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%[', flush failed.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -238,9 +238,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SMax open files reached while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SMax open files reached while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -252,9 +252,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SOverflow while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SOverflow while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -266,9 +266,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%[', purge failed.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SUnable to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%[', purge failed.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -280,9 +280,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SRead failed while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SRead failed while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -294,9 +294,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SSeek failed while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SSeek failed while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -308,9 +308,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SStat failed while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SStat failed while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -322,9 +322,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SSynchronize failed while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SSynchronize failed while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -336,9 +336,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUTF failure while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SUTF failure while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -350,9 +350,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SInvalid UTF while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SInvalid UTF while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -364,9 +364,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUnderflow while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SUnderflow while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -378,9 +378,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SFailed to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%[', write failure.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SFailed to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%[', write failure.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -392,9 +392,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SLoop while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SLoop while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -406,9 +406,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SInvalid %S name '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SInvalid %S name '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -420,9 +420,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SNumber overflow while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SNumber overflow while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -434,9 +434,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SNumber underflow while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SNumber underflow while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -448,13 +448,13 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SInvalid parameter", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
+        fl_print_format("%c%[%SInvalid parameter", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
 
         private_fll_error_print_function(print, function);
 
-        fl_print_string(" for the %S '%]", print.to.stream, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format(" for the %S '%]", print.to.stream, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -466,9 +466,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SProhibited by system while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SProhibited by system while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -481,9 +481,9 @@ extern "C" {
         if (print.verbosity != f_console_verbosity_quiet) {
           flockfile(print.to.stream);
 
-          fl_print_string("%c%[%SInvalid or missing directory in path while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-          fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-          fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SInvalid or missing directory in path while trying to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+          fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+          fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
           funlockfile(print.to.stream);
         }
@@ -496,9 +496,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SFailed to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SFailed to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -511,9 +511,9 @@ extern "C" {
         if (print.verbosity != f_console_verbosity_quiet) {
           flockfile(print.to.stream);
 
-          fl_print_string("%c%[%SFailed to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
-          fl_print_string("%[%S%]", print.to.stream, print.notable, name, print.notable);
-          fl_print_string("%[' due to an invalid directory in the path.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SFailed to %S %S '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, operation, type_name, print.context);
+          fl_print_format("%[%S%]", print.to.stream, print.notable, name, print.notable);
+          fl_print_format("%[' due to an invalid directory in the path.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
           funlockfile(print.to.stream);
         }
@@ -533,9 +533,9 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SThe argument for the parameter '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
-        fl_print_string("%[' must not be an empty string.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SThe argument for the parameter '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
+        fl_print_format("%[' must not be an empty string.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -547,11 +547,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SThe argument '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, argument, print.notable);
-        fl_print_string("%[' is not a valid number for the parameter '%]", print.to.stream, print.context, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SThe argument '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, argument, print.notable);
+        fl_print_format("%[' is not a valid number for the parameter '%]", print.to.stream, print.context, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -563,11 +563,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SThe argument '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, argument, print.notable);
-        fl_print_string("%[' is negative, which is not allowed for the parameter '%]", print.to.stream, print.context, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SThe argument '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, argument, print.notable);
+        fl_print_format("%[' is negative, which is not allowed for the parameter '%]", print.to.stream, print.context, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -579,11 +579,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SThe argument '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, argument, print.notable);
-        fl_print_string("%[' is too large for the parameter '%]", print.to.stream, print.context, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SThe argument '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, argument, print.notable);
+        fl_print_format("%[' is too large for the parameter '%]", print.to.stream, print.context, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -595,11 +595,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SThe argument '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, argument, print.notable);
-        fl_print_string("%[' is positive, which is not allowed for the parameter '%]", print.to.stream, print.context, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SThe argument '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, argument, print.notable);
+        fl_print_format("%[' is positive, which is not allowed for the parameter '%]", print.to.stream, print.context, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -611,11 +611,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SThe argument '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, argument, print.notable);
-        fl_print_string("%[' is too small for the parameter '%]", print.to.stream, print.context, print.context);
-        fl_print_string("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
-        fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SThe argument '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, argument, print.notable);
+        fl_print_format("%[' is too small for the parameter '%]", print.to.stream, print.context, print.context);
+        fl_print_format("%[%S%]", print.to.stream, print.notable, parameter, print.notable);
+        fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
index 5c2928724e853d1348c38c7a173db07a9788ef20..05f14f02f6bceac1a33c3b49b010dc74cbb912f7 100644 (file)
@@ -12,11 +12,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SAccess denied", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
+        fl_print_format("%c%[%SAccess denied", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
 
         private_fll_error_print_function(print, function);
 
-        fl_print_string(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+        fl_print_format(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -28,11 +28,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SMaximum array length reached", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
+        fl_print_format("%c%[%SMaximum array length reached", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
 
         private_fll_error_print_function(print, function);
 
-        fl_print_string(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+        fl_print_format(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -44,11 +44,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SMaximum buffer length reached", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
+        fl_print_format("%c%[%SMaximum buffer length reached", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
 
         private_fll_error_print_function(print, function);
 
-        fl_print_string(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+        fl_print_format(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -60,11 +60,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SUnable to allocate memory", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
+        fl_print_format("%c%[%SUnable to allocate memory", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
 
         private_fll_error_print_function(print, function);
 
-        fl_print_string(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+        fl_print_format(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -76,11 +76,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SInvalid parameter", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
+        fl_print_format("%c%[%SInvalid parameter", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
 
         private_fll_error_print_function(print, function);
 
-        fl_print_string(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+        fl_print_format(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -92,11 +92,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SMaximum string length reached", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
+        fl_print_format("%c%[%SMaximum string length reached", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
 
         private_fll_error_print_function(print, function);
 
-        fl_print_string(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+        fl_print_format(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -108,11 +108,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SInvalid UTF-8 character", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
+        fl_print_format("%c%[%SInvalid UTF-8 character", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
 
         private_fll_error_print_function(print, function);
 
-        fl_print_string(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+        fl_print_format(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -124,18 +124,18 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SInvalid (incomplete) UTF-8 character found", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
+        fl_print_format("%c%[%SInvalid (incomplete) UTF-8 character found", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
 
         private_fll_error_print_function(print, function);
 
         if (status == F_complete_not_utf_eos) {
-          fl_print_string(" at the end of string.%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+          fl_print_format(" at the end of string.%]%c", print.to.stream, print.context, f_string_eol_s[0]);
         }
         else if (status == F_complete_not_utf_stop) {
-          fl_print_string(" at the stop point of string.%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+          fl_print_format(" at the stop point of string.%]%c", print.to.stream, print.context, f_string_eol_s[0]);
         }
         else {
-          fl_print_string(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+          fl_print_format(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
         }
 
         funlockfile(print.to.stream);
@@ -148,11 +148,11 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%SFailure", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
+        fl_print_format("%c%[%SFailure", print.to.stream, f_string_eol_s[0], print.context, print.prefix);
 
         private_fll_error_print_function(print, function);
 
-        fl_print_string(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+        fl_print_format(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -164,12 +164,12 @@ extern "C" {
       if (print.verbosity != f_console_verbosity_quiet) {
         flockfile(print.to.stream);
 
-        fl_print_string("%c%[%S(%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
-        fl_print_string("%[%ui%]%[)", print.to.stream, print.notable, status, print.notable, print.context);
+        fl_print_format("%c%[%S(%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix, print.context);
+        fl_print_format("%[%ui%]%[)", print.to.stream, print.notable, status, print.notable, print.context);
 
         private_fll_error_print_function(print, function);
 
-        fl_print_string(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
+        fl_print_format(".%]%c", print.to.stream, print.context, f_string_eol_s[0]);
 
         funlockfile(print.to.stream);
       }
@@ -183,9 +183,9 @@ extern "C" {
   void private_fll_error_print_function(const fll_error_print_t print, const f_string_t function) {
 
     if (function) {
-      fl_print_string(" when calling function%] ", print.to.stream, print.context);
-      fl_print_string("%[%S%]", print.to.stream, print.notable, function, print.notable);
-      fl_print_string("%[()", print.to.stream, print.context);
+      fl_print_format(" when calling function%] ", print.to.stream, print.context);
+      fl_print_format("%[%S%]", print.to.stream, print.notable, function, print.notable);
+      fl_print_format("%[()", print.to.stream, print.context);
     }
   }
 #endif // !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_) || !defined(_di_fll_error_number_print_)
index 487388006b8caa311078e48ed4c160e454c3b236..e54115b0a43098a4182c45ec2b483938ee15f3ee 100644 (file)
@@ -17,6 +17,19 @@ extern "C" {
   }
 #endif // _di_fll_print_
 
+#ifndef _di_fll_print_character_
+  f_status_t fll_print_character(const char character, FILE *output) {
+
+    flockfile(output);
+
+    const f_status_t status = f_print_character(character, output);
+
+    funlockfile(output);
+
+    return status;
+  }
+#endif // _di_fll_print_character_
+
 #ifndef _di_fll_print_character_safely_
   f_status_t fll_print_character_safely(const char character, FILE *output) {
 
@@ -169,70 +182,70 @@ extern "C" {
   }
 #endif // _di_fll_print_dynamic_
 
-#ifndef _di_fll_print_dynamic_raw_
-  f_status_t fll_print_dynamic_raw(const f_string_static_t buffer, FILE *output) {
+#ifndef _di_fll_print_dynamic_partial_
+  f_status_t fll_print_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_dynamic_raw(buffer, output);
+    const f_status_t status = f_print_dynamic_partial(buffer, range, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_dynamic_raw_
+#endif // _di_fll_print_dynamic_partial_
 
-#ifndef _di_fll_print_dynamic_safely_
-  f_status_t fll_print_dynamic_safely(const f_string_static_t buffer, FILE *output) {
+#ifndef _di_fll_print_dynamic_partial_raw_
+  f_status_t fll_print_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_dynamic_safely(buffer, output);
+    const f_status_t status = f_print_dynamic_partial_raw(buffer, range, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_dynamic_safely_
+#endif // _di_fll_print_dynamic_partial_raw_
 
-#ifndef _di_fll_print_dynamic_partial_
-  f_status_t fll_print_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, FILE *output) {
+#ifndef _di_fll_print_dynamic_partial_safely_
+  f_status_t fll_print_dynamic_partial_safely(const f_string_static_t buffer, const f_string_range_t range, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_dynamic_partial(buffer, range, output);
+    const f_status_t status = f_print_dynamic_partial_safely(buffer, range, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_dynamic_partial_
+#endif // _di_fll_print_dynamic_partial_safely_
 
-#ifndef _di_fll_print_dynamic_partial_raw_
-  f_status_t fll_print_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, FILE *output) {
+#ifndef _di_fll_print_dynamic_raw_
+  f_status_t fll_print_dynamic_raw(const f_string_static_t buffer, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_dynamic_partial_raw(buffer, range, output);
+    const f_status_t status = f_print_dynamic_raw(buffer, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_dynamic_partial_raw_
+#endif // _di_fll_print_dynamic_raw_
 
-#ifndef _di_fll_print_dynamic_partial_safely_
-  f_status_t fll_print_dynamic_partial_safely(const f_string_static_t buffer, const f_string_range_t range, FILE *output) {
+#ifndef _di_fll_print_dynamic_safely_
+  f_status_t fll_print_dynamic_safely(const f_string_static_t buffer, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_dynamic_partial_safely(buffer, range, output);
+    const f_status_t status = f_print_dynamic_safely(buffer, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_dynamic_partial_safely_
+#endif // _di_fll_print_dynamic_safely_
 
 #ifndef _di_fll_print_except_
   f_status_t fll_print_except(const f_string_t buffer, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except, FILE *output) {
@@ -247,44 +260,57 @@ extern "C" {
   }
 #endif // _di_fll_print_except_
 
-#ifndef _di_fll_print_except_raw_
-  f_status_t fll_print_except_raw(const f_string_t buffer, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except, FILE *output) {
+#ifndef _di_fll_print_except_dynamic_
+  f_status_t fll_print_except_dynamic(const f_string_static_t buffer, const f_array_lengths_t except, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_raw(buffer, offset, length, except, output);
+    const f_status_t status = f_print_except_dynamic(buffer, except, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_raw_
+#endif // _di_fll_print_except_dynamic_
 
-#ifndef _di_fll_print_except_safely_
-  f_status_t fll_print_except_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except, FILE *output) {
+#ifndef _di_fll_print_except_dynamic_partial_
+  f_status_t fll_print_except_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_safely(string, offset, length, except, output);
+    const f_status_t status = f_print_except_dynamic_partial(buffer, range, except, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_safely_
+#endif // _di_fll_print_except_dynamic_partial_
 
-#ifndef _di_fll_print_except_dynamic_
-  f_status_t fll_print_except_dynamic(const f_string_static_t buffer, const f_array_lengths_t except, FILE *output) {
+#ifndef _di_fll_print_except_dynamic_partial_raw_
+  f_status_t fll_print_except_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_dynamic(buffer, except, output);
+    const f_status_t status = f_print_except_dynamic_partial_raw(buffer, range, except, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_dynamic_
+#endif // _di_fll_print_except_dynamic_partial_raw_
+
+#ifndef _di_fll_print_except_dynamic_partial_safely_
+  f_status_t fll_print_except_dynamic_partial_safely(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output) {
+
+    flockfile(output);
+
+    const f_status_t status = f_print_except_dynamic_partial_safely(buffer, range, except, output);
+
+    funlockfile(output);
+
+    return status;
+  }
+#endif // _di_fll_print_except_dynamic_partial_safely_
 
 #ifndef _di_fll_print_except_dynamic_raw_
   f_status_t fll_print_except_dynamic_raw(const f_string_static_t buffer, const f_array_lengths_t except, FILE *output) {
@@ -312,44 +338,44 @@ extern "C" {
   }
 #endif // _di_fll_print_except_dynamic_safely_
 
-#ifndef _di_fll_print_except_in_
-  f_status_t fll_print_except_in(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
+#ifndef _di_fll_print_except_raw_
+  f_status_t fll_print_except_raw(const f_string_t buffer, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_in(string, offset, length, except_at, except_in, output);
+    const f_status_t status = f_print_except_raw(buffer, offset, length, except, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_in_
+#endif // _di_fll_print_except_raw_
 
-#ifndef _di_fll_print_except_in_raw_
-  f_status_t fll_print_except_in_raw(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
+#ifndef _di_fll_print_except_safely_
+  f_status_t fll_print_except_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_in_raw(string, offset, length, except_at, except_in, output);
+    const f_status_t status = f_print_except_safely(string, offset, length, except, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_in_raw_
+#endif // _di_fll_print_except_safely_
 
-#ifndef _di_fll_print_except_in_safely_
-  f_status_t fll_print_except_in_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
+#ifndef _di_fll_print_except_in_
+  f_status_t fll_print_except_in(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_in_safely(string, offset, length, except_at, except_in, output);
+    const f_status_t status = f_print_except_in(string, offset, length, except_at, except_in, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_in_safely_
+#endif // _di_fll_print_except_in_
 
 #ifndef _di_fll_print_except_in_dynamic_
   f_status_t fll_print_except_in_dynamic(const f_string_static_t buffer, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
@@ -364,109 +390,128 @@ extern "C" {
   }
 #endif // _di_fll_print_except_in_dynamic_
 
-#ifndef _di_fll_print_except_in_dynamic_raw_
-  f_status_t fll_print_except_in_dynamic_raw(const f_string_static_t buffer, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
+#ifndef _di_fll_print_except_in_dynamic_partial_
+  f_status_t fll_print_except_in_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_in_dynamic_raw(buffer, except_at, except_in, output);
+    const f_status_t status = f_print_except_in_dynamic_partial(buffer, range, except_at, except_in, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_in_dynamic_raw_
+#endif // _di_fll_print_except_in_dynamic_partial_
 
-#ifndef _di_fll_print_except_in_dynamic_safely_
-  f_status_t fll_print_except_in_dynamic_safely(const f_string_static_t buffer, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
+#ifndef _di_fll_print_except_in_dynamic_partial_raw_
+  f_status_t fll_print_except_in_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_in_dynamic_safely(buffer, except_at, except_in, output);
+    const f_status_t status = f_print_except_in_dynamic_partial_raw(buffer, range, except_at, except_in, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_in_dynamic_safely_
+#endif // _di_fll_print_except_in_dynamic_partial_raw_
 
-#ifndef _di_fll_print_except_in_dynamic_partial_
-  f_status_t fll_print_except_in_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
+#ifndef _di_fll_print_except_in_dynamic_partial_safely_
+  f_status_t fll_print_except_in_dynamic_partial_safely(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_in_dynamic_partial(buffer, range, except_at, except_in, output);
+    const f_status_t status = f_print_except_in_dynamic_partial_safely(buffer, range, except_at, except_in, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_in_dynamic_partial_
+#endif // _di_fll_print_except_in_dynamic_partial_safely_
 
-#ifndef _di_fll_print_except_in_dynamic_partial_raw_
-  f_status_t fll_print_except_in_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
+#ifndef _di_fll_print_except_in_dynamic_raw_
+  f_status_t fll_print_except_in_dynamic_raw(const f_string_static_t buffer, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_in_dynamic_partial_raw(buffer, range, except_at, except_in, output);
+    const f_status_t status = f_print_except_in_dynamic_raw(buffer, except_at, except_in, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_in_dynamic_partial_raw_
+#endif // _di_fll_print_except_in_dynamic_raw_
 
-#ifndef _di_fll_print_except_in_dynamic_partial_safely_
-  f_status_t fll_print_except_in_dynamic_partial_safely(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
+#ifndef _di_fll_print_except_in_dynamic_safely_
+  f_status_t fll_print_except_in_dynamic_safely(const f_string_static_t buffer, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_in_dynamic_partial_safely(buffer, range, except_at, except_in, output);
+    const f_status_t status = f_print_except_in_dynamic_safely(buffer, except_at, except_in, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_in_dynamic_partial_safely_
+#endif // _di_fll_print_except_in_dynamic_safely_
 
-#ifndef _di_fll_print_except_dynamic_partial_
-  f_status_t fll_print_except_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output) {
+#ifndef _di_fll_print_except_in_raw_
+  f_status_t fll_print_except_in_raw(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_dynamic_partial(buffer, range, except, output);
+    const f_status_t status = f_print_except_in_raw(string, offset, length, except_at, except_in, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_dynamic_partial_
+#endif // _di_fll_print_except_in_raw_
 
-#ifndef _di_fll_print_except_dynamic_partial_raw_
-  f_status_t fll_print_except_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output) {
+#ifndef _di_fll_print_except_in_safely_
+  f_status_t fll_print_except_in_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_dynamic_partial_raw(buffer, range, except, output);
+    const f_status_t status = f_print_except_in_safely(string, offset, length, except_at, except_in, output);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_dynamic_partial_raw_
+#endif // _di_fll_print_except_in_safely_
 
-#ifndef _di_fll_print_except_dynamic_partial_safely_
-  f_status_t fll_print_except_dynamic_partial_safely(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output) {
+#ifndef _di_fll_print_format_
+  f_status_t fll_print_format(const f_string_t string, FILE *output, ...) {
 
     flockfile(output);
 
-    const f_status_t status = f_print_except_dynamic_partial_safely(buffer, range, except, output);
+    va_list ap;
+
+    va_start(ap, output);
+
+    const f_status_t status = fl_print_string_va(string, output, &ap);
+
+    va_end(ap);
 
     funlockfile(output);
 
     return status;
   }
-#endif // _di_fll_print_except_dynamic_partial_safely_
+#endif // _di_fll_print_format_
+
+#ifndef _di_fll_print_format_convert_
+  f_string_t fll_print_format_convert(const f_string_t string, FILE *output, va_list *ap, f_status_t *status) {
+
+    flockfile(output);
+
+    f_string_t str = fl_print_format_convert(string, output, ap, status);
+
+    funlockfile(output);
+
+    return str;
+  }
+#endif // _di_fll_print_format_convert_
 
 #ifndef _di_fll_print_raw_
   f_status_t fll_print_raw(const f_string_t string, const f_array_length_t length, FILE *output) {
@@ -520,38 +565,6 @@ extern "C" {
   }
 #endif // _di_fll_print_safely_terminated_
 
-#ifndef _di_fll_print_string_
-  f_status_t fll_print_string(const f_string_t string, FILE *output, ...) {
-
-    flockfile(output);
-
-    va_list ap;
-
-    va_start(ap, output);
-
-    const f_status_t status = fl_print_string_va(string, output, &ap);
-
-    va_end(ap);
-
-    funlockfile(output);
-
-    return status;
-  }
-#endif // _di_fll_print_string_
-
-#ifndef _di_fll_print_string_convert_
-  f_string_t fll_print_string_convert(const f_string_t string, FILE *output, va_list *ap, f_status_t *status) {
-
-    flockfile(output);
-
-    f_string_t str = fl_print_string_convert(string, output, ap, status);
-
-    funlockfile(output);
-
-    return str;
-  }
-#endif // _di_fll_print_string_convert_
-
 #ifndef _di_fll_print_string_va_
   f_status_t fll_print_string_va(const f_string_t string, FILE *output, va_list *ap) {
 
index 3c51ae5b7cf88376c52a2bebb2f01d6fb7b76466..2ac136e0bd1d550a795ec56d47b7d4dc7237461b 100644 (file)
@@ -54,6 +54,28 @@ extern "C" {
 #endif // _di_fll_print_
 
 /**
+ * This is a variation of f_print_character() that uses locking.
+ *
+ * @param character
+ *   The character to verify as safe or not and then print.
+ * @param output
+ *   The file stream to output to, including standard streams such as stdout and stderr.
+ *
+ * @return
+ *   Success from: f_print_character().
+ *
+ *   Errors (with error bit) from: f_print_character().
+ *
+ * @see flockfile()
+ * @see funlockfile()
+ *
+ * @see f_print_character()
+ */
+#ifndef _di_fll_print_character_
+  extern f_status_t fll_print_character(const char character, FILE *output);
+#endif // _di_fll_print_character_
+
+/**
  * This is a variation of f_print_character_safely() that uses locking.
  *
  * @param character
@@ -200,51 +222,55 @@ extern "C" {
 #endif // _di_fll_print_dynamic_
 
 /**
- * This is a variation of f_print_dynamic_raw() that uses locking.
+ * This is a variation of f_print_dynamic_partial() that uses locking.
  *
  * @param buffer
  *   The string to output.
+ * @param range
+ *   The range within the provided string to print.
  * @param output
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_dynamic_raw().
+ *   Success from: f_print_dynamic_partial().
  *
- *   Errors (with error bit) from: f_print_dynamic_raw().
+ *   Errors (with error bit) from: f_print_dynamic_partial().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_dynamic_raw()
+ * @see f_print_dynamic_partial()
  */
-#ifndef _di_fll_print_dynamic_raw_
-  extern f_status_t fll_print_dynamic_raw(const f_string_static_t buffer, FILE *output);
-#endif // _di_fll_print_dynamic_raw_
+#ifndef _di_fll_print_dynamic_partial_
+  extern f_status_t fll_print_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, FILE *output);
+#endif // _di_fll_print_dynamic_partial_
 
 /**
- * This is a variation of f_print_dynamic_safely() that uses locking.
+ * This is a variation of f_print_dynamic_partial_raw() that uses locking.
  *
  * @param buffer
  *   The string to output.
+ * @param range
+ *   The range within the provided string to print.
  * @param output
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_dynamic_safely().
+ *   Success from: f_print_dynamic_partial_raw().
  *
- *   Errors (with error bit) from: f_print_dynamic_safely().
+ *   Errors (with error bit) from: f_print_dynamic_partial_raw().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_dynamic_safely()
+ * @see f_print_dynamic_partial_raw()
  */
-#ifndef _di_fll_print_dynamic_safely_
-  extern f_status_t fll_print_dynamic_safely(const f_string_static_t buffer, FILE *output);
-#endif // _di_fll_print_dynamic_safely_
+#ifndef _di_fll_print_dynamic_partial_raw_
+  extern f_status_t fll_print_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, FILE *output);
+#endif // _di_fll_print_dynamic_partial_raw_
 
 /**
- * This is a variation of f_print_dynamic_partial() that uses locking.
+ * This is a variation of f_print_dynamic_partial_safely() that uses locking.
  *
  * @param buffer
  *   The string to output.
@@ -254,66 +280,62 @@ extern "C" {
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_dynamic_partial().
+ *   Success from: f_print_dynamic_partial_safely().
  *
- *   Errors (with error bit) from: f_print_dynamic_partial().
+ *   Errors (with error bit) from: f_print_dynamic_partial_safely().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_dynamic_partial()
+ * @see f_print_dynamic_partial_safely()
  */
-#ifndef _di_fll_print_dynamic_partial_
-  extern f_status_t fll_print_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, FILE *output);
-#endif // _di_fll_print_dynamic_partial_
+#ifndef _di_fll_print_dynamic_partial_safely_
+  extern f_status_t fll_print_dynamic_partial_safely(const f_string_static_t buffer, const f_string_range_t range, FILE *output);
+#endif // _di_fll_print_dynamic_partial_safely_
 
 /**
- * This is a variation of f_print_dynamic_partial_raw() that uses locking.
+ * This is a variation of f_print_dynamic_raw() that uses locking.
  *
  * @param buffer
  *   The string to output.
- * @param range
- *   The range within the provided string to print.
  * @param output
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_dynamic_partial_raw().
+ *   Success from: f_print_dynamic_raw().
  *
- *   Errors (with error bit) from: f_print_dynamic_partial_raw().
+ *   Errors (with error bit) from: f_print_dynamic_raw().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_dynamic_partial_raw()
+ * @see f_print_dynamic_raw()
  */
-#ifndef _di_fll_print_dynamic_partial_raw_
-  extern f_status_t fll_print_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, FILE *output);
-#endif // _di_fll_print_dynamic_partial_raw_
+#ifndef _di_fll_print_dynamic_raw_
+  extern f_status_t fll_print_dynamic_raw(const f_string_static_t buffer, FILE *output);
+#endif // _di_fll_print_dynamic_raw_
 
 /**
- * This is a variation of f_print_dynamic_partial_safely() that uses locking.
+ * This is a variation of f_print_dynamic_safely() that uses locking.
  *
  * @param buffer
  *   The string to output.
- * @param range
- *   The range within the provided string to print.
  * @param output
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_dynamic_partial_safely().
+ *   Success from: f_print_dynamic_safely().
  *
- *   Errors (with error bit) from: f_print_dynamic_partial_safely().
+ *   Errors (with error bit) from: f_print_dynamic_safely().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_dynamic_partial_safely()
+ * @see f_print_dynamic_safely()
  */
-#ifndef _di_fll_print_dynamic_partial_safely_
-  extern f_status_t fll_print_dynamic_partial_safely(const f_string_static_t buffer, const f_string_range_t range, FILE *output);
-#endif // _di_fll_print_dynamic_partial_safely_
+#ifndef _di_fll_print_dynamic_safely_
+  extern f_status_t fll_print_dynamic_safely(const f_string_static_t buffer, FILE *output);
+#endif // _di_fll_print_dynamic_safely_
 
 /**
  * This is a variation of f_print_except() that uses locking.
@@ -345,14 +367,10 @@ extern "C" {
 #endif // _di_fll_print_except_
 
 /**
- * This is a variation of f_print_except_raw() that uses locking.
+ * This is a variation of f_print_except_dynamic() that uses locking.
  *
- * @param string
+ * @param buffer
  *   The string to output.
- * @param offset
- *   The inclusive start point to start printing.
- * @param length
- *   The total number of characters to print.
  * @param except
  *   An array of locations within the given string to not print.
  *   The array of locations is required/assumed to be in linear order.
@@ -360,28 +378,26 @@ extern "C" {
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_except_raw().
+ *   Success from: f_print_except_dynamic().
  *
- *   Errors (with error bit) from: f_print_except_raw().
+ *   Errors (with error bit) from: f_print_except_dynamic().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_except_raw()
+ * @see f_print_except_dynamic()
  */
-#ifndef _di_fll_print_except_raw_
-  extern f_status_t fll_print_except_raw(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except, FILE *output);
-#endif // _di_fll_print_except_raw_
+#ifndef _di_fll_print_except_dynamic_
+  extern f_status_t fll_print_except_dynamic(const f_string_static_t buffer, const f_array_lengths_t except, FILE *output);
+#endif // _di_fll_print_except_dynamic_
 
 /**
- * This is a variation of f_print_except_safely() that uses locking.
+ * This is a variation of f_print_except_dynamic_partial() that uses locking.
  *
- * @param string
+ * @param buffer
  *   The string to output.
- * @param offset
- *   The inclusive start point to start printing.
- * @param length
- *   The total number of characters to print.
+ * @param range
+ *   The range within the provided string to print.
  * @param except
  *   An array of locations within the given string to not print.
  *   The array of locations is required/assumed to be in linear order.
@@ -389,24 +405,26 @@ extern "C" {
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_except_safely().
+ *   Success from: f_print_except_dynamic_partial().
  *
- *   Errors (with error bit) from: f_print_except_safely().
+ *   Errors (with error bit) from: f_print_except_dynamic_partial().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_except_safely()
+ * @see f_print_except_dynamic_partial()
  */
-#ifndef _di_fll_print_except_safely_
-  extern f_status_t fll_print_except_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except, FILE *output);
-#endif // _di_fll_print_except_safely_
+#ifndef _di_fll_print_except_dynamic_partial_
+  extern f_status_t fll_print_except_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output);
+#endif // _di_fll_print_except_dynamic_partial_
 
 /**
- * This is a variation of f_print_except_dynamic() that uses locking.
+ * This is a variation of f_print_except_dynamic_partial_raw() that uses locking.
  *
  * @param buffer
  *   The string to output.
+ * @param range
+ *   The range within the provided string to print.
  * @param except
  *   An array of locations within the given string to not print.
  *   The array of locations is required/assumed to be in linear order.
@@ -414,18 +432,45 @@ extern "C" {
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_except_dynamic().
+ *   Success from: f_print_except_dynamic_partial_raw().
  *
- *   Errors (with error bit) from: f_print_except_dynamic().
+ *   Errors (with error bit) from: f_print_except_dynamic_partial_raw().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_except_dynamic()
+ * @see f_print_except_dynamic_partial_raw()
  */
-#ifndef _di_fll_print_except_dynamic_
-  extern f_status_t fll_print_except_dynamic(const f_string_static_t buffer, const f_array_lengths_t except, FILE *output);
-#endif // _di_fll_print_except_dynamic_
+#ifndef _di_fll_print_except_dynamic_partial_raw_
+  extern f_status_t fll_print_except_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output);
+#endif // _di_fll_print_except_dynamic_partial_raw_
+
+/**
+ * This is a variation of f_print_except_dynamic_partial_safely() that uses locking.
+ *
+ * @param buffer
+ *   The string to output.
+ * @param range
+ *   The range within the provided string to print.
+ * @param except
+ *   An array of locations within the given string to not print.
+ *   The array of locations is required/assumed to be in linear order.
+ * @param output
+ *   The file stream to output to, including standard streams such as stdout and stderr.
+ *
+ * @return
+ *   Success from: f_print_except_dynamic_partial_safely().
+ *
+ *   Errors (with error bit) from: f_print_except_dynamic_partial_safely().
+ *
+ * @see flockfile()
+ * @see funlockfile()
+ *
+ * @see f_print_except_dynamic_partial_safely()
+ */
+#ifndef _di_fll_print_except_dynamic_partial_safely_
+  extern f_status_t fll_print_except_dynamic_partial_safely(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output);
+#endif // _di_fll_print_except_dynamic_partial_safely_
 
 /**
  * This is a variation of f_print_except_dynamic_raw() that uses locking.
@@ -602,62 +647,6 @@ extern "C" {
 #endif // _di_fll_print_except_in_dynamic_
 
 /**
- * This is a variation of f_print_except_in_dynamic_raw() that uses locking.
- *
- * @param buffer
- *   The string to output.
- * @param except_at
- *   An array of locations within the given string to not print.
- *   The array of locations is required/assumed to be in linear order.
- * @param except_in
- *   An array of ranges within the string to not print.
- *   The array of ranges is required/assumed to be in linear order.
- * @param output
- *   The file stream to output to, including standard streams such as stdout and stderr.
- *
- * @return
- *   Success from: f_print_except_in_dynamic_raw().
- *
- *   Errors (with error bit) from: f_print_except_in_dynamic_raw().
- *
- * @see flockfile()
- * @see funlockfile()
- *
- * @see f_print_except_in_dynamic_raw()
- */
-#ifndef _di_fll_print_except_in_dynamic_raw_
-  extern f_status_t fll_print_except_in_dynamic_raw(const f_string_static_t buffer, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output);
-#endif // _di_fll_print_except_in_dynamic_raw_
-
-/**
- * This is a variation of f_print_except_in_dynamic_safely() that uses locking.
- *
- * @param buffer
- *   The string to output.
- * @param except_at
- *   An array of locations within the given string to not print.
- *   The array of locations is required/assumed to be in linear order.
- * @param except_in
- *   An array of ranges within the string to not print.
- *   The array of ranges is required/assumed to be in linear order.
- * @param output
- *   The file stream to output to, including standard streams such as stdout and stderr.
- *
- * @return
- *   Success from: f_print_except_in_dynamic_safely().
- *
- *   Errors (with error bit) from: f_print_except_in_dynamic_safely().
- *
- * @see flockfile()
- * @see funlockfile()
- *
- * @see f_print_except_in_dynamic_safely()
- */
-#ifndef _di_fll_print_except_in_dynamic_safely_
-  extern f_status_t fll_print_except_in_dynamic_safely(const f_string_static_t buffer, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output);
-#endif // _di_fll_print_except_in_dynamic_safely_
-
-/**
  * This is a variation of f_print_except_in_dynamic_partial() that uses locking.
  *
  * @param buffer
@@ -683,7 +672,7 @@ extern "C" {
  *
  * @see f_print_except_in_dynamic_partial()
  */
-#ifndef _di_fll_print_dynamic_except_partial_
+#ifndef _di_fll_print_except_in_dynamic_partial_
   extern f_status_t fll_print_except_in_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output);
 #endif // _di_fll_print_except_in_dynamic_partial_
 
@@ -713,7 +702,7 @@ extern "C" {
  *
  * @see f_print_except_in_dynamic_partial_raw()
  */
-#ifndef _di_fll_print_dynamic_except_partial_raw_
+#ifndef _di_fll_print_except_in_dynamic_partial_raw_
   extern f_status_t fll_print_except_in_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output);
 #endif // _di_fll_print_except_in_dynamic_partial_raw_
 
@@ -743,71 +732,75 @@ extern "C" {
  *
  * @see f_print_except_in_dynamic_partial_safely()
  */
-#ifndef _di_fll_print_dynamic_except_partial_safely_
+#ifndef _di_fll_print_except_in_dynamic_partial_safely_
   extern f_status_t fll_print_except_in_dynamic_partial_safely(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output);
 #endif // _di_fll_print_except_in_dynamic_partial_safely_
 
 /**
- * This is a variation of f_print_except_dynamic_partial() that uses locking.
+ * This is a variation of f_print_except_in_dynamic_raw() that uses locking.
  *
  * @param buffer
  *   The string to output.
- * @param range
- *   The range within the provided string to print.
- * @param except
+ * @param except_at
  *   An array of locations within the given string to not print.
  *   The array of locations is required/assumed to be in linear order.
+ * @param except_in
+ *   An array of ranges within the string to not print.
+ *   The array of ranges is required/assumed to be in linear order.
  * @param output
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_except_dynamic_partial().
+ *   Success from: f_print_except_in_dynamic_raw().
  *
- *   Errors (with error bit) from: f_print_except_dynamic_partial().
+ *   Errors (with error bit) from: f_print_except_in_dynamic_raw().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_except_dynamic_partial()
+ * @see f_print_except_in_dynamic_raw()
  */
-#ifndef _di_fll_print_dynamic_except_partial_
-  extern f_status_t fll_print_except_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output);
-#endif // _di_fll_print_except_dynamic_partial_
+#ifndef _di_fll_print_except_in_dynamic_raw_
+  extern f_status_t fll_print_except_in_dynamic_raw(const f_string_static_t buffer, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output);
+#endif // _di_fll_print_except_in_dynamic_raw_
 
 /**
- * This is a variation of f_print_except_dynamic_partial_raw() that uses locking.
+ * This is a variation of f_print_except_in_dynamic_safely() that uses locking.
  *
  * @param buffer
  *   The string to output.
- * @param range
- *   The range within the provided string to print.
- * @param except
+ * @param except_at
  *   An array of locations within the given string to not print.
  *   The array of locations is required/assumed to be in linear order.
+ * @param except_in
+ *   An array of ranges within the string to not print.
+ *   The array of ranges is required/assumed to be in linear order.
  * @param output
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_except_dynamic_partial_raw().
+ *   Success from: f_print_except_in_dynamic_safely().
  *
- *   Errors (with error bit) from: f_print_except_dynamic_partial_raw().
+ *   Errors (with error bit) from: f_print_except_in_dynamic_safely().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_except_dynamic_partial_raw()
+ * @see f_print_except_in_dynamic_safely()
  */
-#ifndef _di_fll_print_dynamic_except_partial_raw_
-  extern f_status_t fll_print_except_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output);
-#endif // _di_fll_print_except_dynamic_partial_raw_
+#ifndef _di_fll_print_except_in_dynamic_safely_
+  extern f_status_t fll_print_except_in_dynamic_safely(const f_string_static_t buffer, const f_array_lengths_t except_at, const f_string_ranges_t except_in, FILE *output);
+#endif // _di_fll_print_except_in_dynamic_safely_
 
 /**
- * This is a variation of f_print_except_dynamic_partial() that uses locking.
+ * This is a variation of f_print_except_raw() that uses locking.
  *
- * @param buffer
+ * @param string
  *   The string to output.
- * @param range
- *   The range within the provided string to print.
+ * @param offset
+ *   The inclusive start point to start printing.
+ * @param length
+ *   The total number of characters to print.
  * @param except
  *   An array of locations within the given string to not print.
  *   The array of locations is required/assumed to be in linear order.
@@ -815,26 +808,28 @@ extern "C" {
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_except_dynamic_partial().
+ *   Success from: f_print_except_raw().
  *
- *   Errors (with error bit) from: f_print_except_dynamic_partial().
+ *   Errors (with error bit) from: f_print_except_raw().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_except_dynamic_partial()
+ * @see f_print_except_raw()
  */
-#ifndef _di_fll_print_dynamic_except_partial_
-  extern f_status_t fll_print_except_dynamic_partial(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output);
-#endif // _di_fll_print_except_dynamic_partial_
+#ifndef _di_fll_print_except_raw_
+  extern f_status_t fll_print_except_raw(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except, FILE *output);
+#endif // _di_fll_print_except_raw_
 
 /**
- * This is a variation of f_print_except_dynamic_partial_raw() that uses locking.
+ * This is a variation of f_print_except_safely() that uses locking.
  *
- * @param buffer
+ * @param string
  *   The string to output.
- * @param range
- *   The range within the provided string to print.
+ * @param offset
+ *   The inclusive start point to start printing.
+ * @param length
+ *   The total number of characters to print.
  * @param except
  *   An array of locations within the given string to not print.
  *   The array of locations is required/assumed to be in linear order.
@@ -842,45 +837,69 @@ extern "C" {
  *   The file stream to output to, including standard streams such as stdout and stderr.
  *
  * @return
- *   Success from: f_print_except_dynamic_partial_raw().
+ *   Success from: f_print_except_safely().
  *
- *   Errors (with error bit) from: f_print_except_dynamic_partial_raw().
+ *   Errors (with error bit) from: f_print_except_safely().
  *
  * @see flockfile()
  * @see funlockfile()
  *
- * @see f_print_except_dynamic_partial_raw()
+ * @see f_print_except_safely()
  */
-#ifndef _di_fll_print_dynamic_except_partial_raw_
-  extern f_status_t fll_print_except_dynamic_partial_raw(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output);
-#endif // _di_fll_print_except_dynamic_partial_raw_
+#ifndef _di_fll_print_except_safely_
+  extern f_status_t fll_print_except_safely(const f_string_t string, const f_array_length_t offset, const f_array_length_t length, const f_array_lengths_t except, FILE *output);
+#endif // _di_fll_print_except_safely_
 
 /**
- * This is a variation of f_print_except_dynamic_partial_safely() that uses locking.
+ * This is a variation of fl_print_format() that uses locking.
  *
- * @param buffer
- *   The string to output.
- * @param range
- *   The range within the provided string to print.
- * @param except
- *   An array of locations within the given string to not print.
- *   The array of locations is required/assumed to be in linear order.
+ * @param string
+ *   The formatted string to process and output.
+ *   This is a NULL terminated string.
  * @param output
  *   The file stream to output to, including standard streams such as stdout and stderr.
+ * @param ...
+ *   Additional arguments relating to the string.
  *
  * @return
- *   Success from: f_print_except_dynamic_partial_safely().
+ *   Success from: fl_print_format().
  *
- *   Errors (with error bit) from: f_print_except_dynamic_partial_safely().
+ *   Errors (with error bit) from: fl_print_format().
  *
  * @see flockfile()
  * @see funlockfile()
+ * @see va_start()
+ * @see va_end()
  *
- * @see f_print_except_dynamic_partial_safely()
+ * @see fl_print_format()
  */
-#ifndef _di_fll_print_dynamic_except_partial_safely_
-  extern f_status_t fll_print_except_dynamic_partial_safely(const f_string_static_t buffer, const f_string_range_t range, const f_array_lengths_t except, FILE *output);
-#endif // _di_fll_print_except_dynamic_partial_safely_
+#ifndef _di_fll_print_format_
+  extern f_status_t fll_print_format(const f_string_t string, FILE *output, ...);
+#endif // _di_fll_print_format_
+
+/**
+ * This is a variation of fl_print_format_convert() that uses locking.
+ *
+ * @param current
+ *   The current character position within the string.
+ * @param output
+ *   The file stream to output to, including standard streams such as stdout and stderr.
+ * @param ap
+ *   The variable arguments list.
+ * @param status
+ *   The status is stored here rather then via the return.
+ *
+ * @return
+ *   Result from: fl_print_format_convert().
+ *
+ * @see flockfile()
+ * @see funlockfile()
+ *
+ * @see fl_print_format_convert()
+ */
+#ifndef _di_fll_print_format_convert_
+  extern f_string_t fll_print_format_convert(const f_string_t current, FILE *output, va_list *ap, f_status_t *status);
+#endif // _di_fll_print_format_convert_
 
 /**
  * This is a variation of f_print_raw() that uses locking.
@@ -977,57 +996,6 @@ extern "C" {
 #endif // _di_fll_print_safely_terminated_
 
 /**
- * This is a variation of fl_print_string() that uses locking.
- *
- * @param string
- *   The formatted string to process and output.
- *   This is a NULL terminated string.
- * @param output
- *   The file stream to output to, including standard streams such as stdout and stderr.
- * @param ...
- *   Additional arguments relating to the string.
- *
- * @return
- *   Success from: fl_print_string().
- *
- *   Errors (with error bit) from: fl_print_string().
- *
- * @see flockfile()
- * @see funlockfile()
- * @see va_start()
- * @see va_end()
- *
- * @see fl_print_string()
- */
-#ifndef _di_fll_print_string_
-  extern f_status_t fll_print_string(const f_string_t string, FILE *output, ...);
-#endif // _di_fll_print_string_
-
-/**
- * This is a variation of fl_print_string_convert() that uses locking.
- *
- * @param current
- *   The current character position within the string.
- * @param output
- *   The file stream to output to, including standard streams such as stdout and stderr.
- * @param ap
- *   The variable arguments list.
- * @param status
- *   The status is stored here rather then via the return.
- *
- * @return
- *   Result from: fl_print_string_convert().
- *
- * @see flockfile()
- * @see funlockfile()
- *
- * @see fl_print_string_convert()
- */
-#ifndef _di_fll_print_string_convert_
-  extern f_string_t fll_print_string_convert(const f_string_t current, FILE *output, va_list *ap, f_status_t *status);
-#endif // _di_fll_print_string_convert_
-
-/**
  * This is a variation of fl_print_string_va() that uses locking.
  *
  * @param string
index 40097f22daab87b76a9bd2cc283d0ce50b5979ec..6296db70cd9d62233b40e49532855708f66ee6ac 100644 (file)
@@ -7,12 +7,10 @@ extern "C" {
 #ifndef _di_fll_program_print_help_header_
   f_status_t fll_program_print_help_header(const f_file_t output, const f_color_context_t context, const f_string_t name, const f_string_t version) {
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    fl_print_string(" %[%s%]%c", output.stream, context.set.title, name, context.set.title, f_string_eol_s[0]);
-    fl_print_string("  %[Version %s%]%c", output.stream, context.set.notable, version, context.set.notable, f_string_eol_s[0]);
+    fl_print_format("%c %[%S%]%c", output.stream, f_string_eol_s[0], context.set.title, name, context.set.title, f_string_eol_s[0]);
+    fl_print_format("  %[Version %s%]%c", output.stream, context.set.notable, version, context.set.notable, f_string_eol_s[0]);
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    fl_print_string(" %[Available Options:%] ", output.stream, context.set.important, context.set.important);
+    fl_print_format("%c %[Available Options:%] ", output.stream, f_string_eol_s[0], context.set.important, context.set.important);
 
     return F_none;
   }
@@ -21,10 +19,9 @@ extern "C" {
 #ifndef _di_fll_program_print_help_option_
   f_status_t fll_program_print_help_option(const f_file_t output, const f_color_context_t context, const f_string_t option_short, const f_string_t option_long, const f_string_t symbol_short, const f_string_t symbol_long, const f_string_t description) {
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    fl_print_string("  %s%[%s%]", output.stream, symbol_short, context.set.standout, option_short, context.set.standout);
-    fl_print_string(", %s%[%s%]", output.stream, symbol_long, context.set.standout, option_long, context.set.standout);
-    fl_print_string("  %S", output.stream, description);
+    fl_print_format("%c  %s%[%S%]", output.stream, f_string_eol_s[0], symbol_short, context.set.standout, option_short, context.set.standout);
+    fl_print_format(", %s%[%S%]", output.stream, symbol_long, context.set.standout, option_long, context.set.standout);
+    fl_print_format("  %S", output.stream, description);
 
     return F_none;
   }
@@ -33,9 +30,8 @@ extern "C" {
 #ifndef _di_fll_program_print_help_option_long_
   f_status_t fll_program_print_help_option_long(const f_file_t output, const f_color_context_t context, const f_string_t option_long, const f_string_t symbol_long, const f_string_t description) {
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    fl_print_string("      %s%[%s%]", output.stream, symbol_long, context.set.standout, option_long, context.set.standout);
-    fl_print_string("  %S", output.stream, description);
+    fl_print_format("%c      %s%[%S%]", output.stream, f_string_eol_s[0], symbol_long, context.set.standout, option_long, context.set.standout);
+    fl_print_format("  %S", output.stream, description);
 
     return F_none;
   }
@@ -44,9 +40,8 @@ extern "C" {
 #ifndef _di_fll_program_print_help_option_other_
   f_status_t fll_program_print_help_option_other(const f_file_t output, const f_color_context_t context, const f_string_t option_other, const f_string_t description) {
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    fl_print_string("  %[%s%]", output.stream, context.set.standout, option_other, context.set.standout);
-    fl_print_string("  %S", output.stream, description);
+    fl_print_format("%c  %[%S%]", output.stream, f_string_eol_s[0], context.set.standout, option_other, context.set.standout);
+    fl_print_format("  %S", output.stream, description);
 
     return F_none;
   }
@@ -55,21 +50,19 @@ extern "C" {
 #ifndef _di_fll_program_print_help_usage_
   f_status_t fll_program_print_help_usage(const f_file_t output, const f_color_context_t context, const f_string_t name, const f_string_t parameters) {
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    f_print_terminated(f_string_eol_s, output.stream);
-    fl_print_string(" %[Usage:%]", output.stream, context.set.important, context.set.important);
+    fl_print_format("%c%c %[Usage:%]", output.stream, f_string_eol_s[0], f_string_eol_s[0], context.set.important, context.set.important);
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    fl_print_string("  %[%S%]", output.stream, context.set.standout, name, context.set.standout);
+    f_print_character(f_string_eol_s[0], output.stream);
+    fl_print_format("  %[%S%]", output.stream, context.set.standout, name, context.set.standout);
 
-    fl_print_string(" %[[%] options %[]%]", output.stream, context.set.notable, context.set.notable, context.set.notable, context.set.notable);
+    fl_print_format(" %[[%] options %[]%]", output.stream, context.set.notable, context.set.notable, context.set.notable, context.set.notable);
 
     if (parameters[0] != '\0') {
-      fl_print_string(" %[[%]%S%[]%]", output.stream, context.set.notable, context.set.notable, parameters, context.set.notable, context.set.notable);
+      fl_print_format(" %[[%] %S %[]%]", output.stream, context.set.notable, context.set.notable, parameters, context.set.notable, context.set.notable);
     }
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     return F_none;
   }
@@ -78,7 +71,7 @@ extern "C" {
 #ifndef _di_fll_program_print_version_
   f_status_t fll_program_print_version(const f_file_t output, const f_string_t version) {
 
-    fl_print_string("%S%c", output.stream, version, f_string_eol_s[0]);
+    fl_print_format("%S%c", output.stream, version, f_string_eol_s[0]);
 
     return F_none;
   }
index 4805eba034facdcc355023a731abe5497fec95fd..a4c37a761ae4969a91d7bf77c0a8050d5d7ccf80 100644 (file)
@@ -50,7 +50,7 @@ extern "C" {
  *   F_none on success.
  *
  * @see f_print_terminated()
- * @see fl_print_string()
+ * @see fl_print_format()
  */
 #ifndef _di_fll_program_print_help_header_
   extern f_status_t fll_program_print_help_header(const f_file_t output, const f_color_context_t context, const f_string_t name, const f_string_t version);
@@ -80,7 +80,7 @@ extern "C" {
  *   F_none on success.
  *
  * @see f_print_terminated()
- * @see fl_print_string()
+ * @see fl_print_format()
  */
 #ifndef _di_fll_program_print_help_option_
   extern f_status_t fll_program_print_help_option(const f_file_t output, const f_color_context_t context, const f_string_t option_short, const f_string_t option_long, const f_string_t symbol_short, const f_string_t symbol_long, const f_string_t description);
@@ -106,7 +106,7 @@ extern "C" {
  *   F_none on success.
  *
  * @see f_print_terminated()
- * @see fl_print_string()
+ * @see fl_print_format()
  */
 #ifndef _di_fll_program_print_help_option_long_
   extern f_status_t fll_program_print_help_option_long(const f_file_t output, const f_color_context_t context, const f_string_t option_long, const f_string_t symbol_long, const f_string_t description);
@@ -130,7 +130,7 @@ extern "C" {
  *   F_none on success.
  *
  * @see f_print_terminated()
- * @see fl_print_string()
+ * @see fl_print_format()
  */
 #ifndef _di_fll_program_print_help_option_other_
   extern f_status_t fll_program_print_help_option_other(const f_file_t output, const f_color_context_t context, const f_string_t option_other, const f_string_t description);
@@ -155,7 +155,7 @@ extern "C" {
  *   F_none on success.
  *
  * @see f_print_terminated()
- * @see fl_print_string()
+ * @see fl_print_format()
  */
 #ifndef _di_fll_program_print_help_usage_
   extern f_status_t fll_program_print_help_usage(const f_file_t output, const f_color_context_t context, const f_string_t name, const f_string_t parameters);
@@ -174,7 +174,7 @@ extern "C" {
  * @return
  *   F_none on success.
  *
- * @see fl_print_string()
+ * @see fl_print_format()
  */
 #ifndef _di_fll_program_print_version_
   extern f_status_t fll_program_print_version(const f_file_t output, const f_string_t version);
index 8d252bdc41476ca2a0d3c5bb0131c8eda4fb5f1f..52d1c65fd297b9d698c56204d09ef13496e62489 100644 (file)
@@ -23,7 +23,7 @@ extern "C" {
     fll_program_print_help_option(output, context, f_console_standard_short_debug_s, f_console_standard_long_debug_s, f_console_symbol_short_disable_s, f_console_symbol_long_disable_s, "   Enable debugging, inceasing verbosity beyond normal output.");
     fll_program_print_help_option(output, context, f_console_standard_short_version_s, f_console_standard_long_version_s, f_console_symbol_short_disable_s, f_console_symbol_long_disable_s, " Print only the version number.");
 
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     fll_program_print_help_option(output, context, byte_dump_short_binary, byte_dump_long_binary, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "     Display binary representation.");
     fll_program_print_help_option(output, context, byte_dump_short_decimal, byte_dump_long_decimal, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "    Display decimal representation.");
@@ -32,21 +32,21 @@ extern "C" {
     fll_program_print_help_option(output, context, byte_dump_short_octal, byte_dump_long_octal, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "      Display octal representation.");
     fll_program_print_help_option(output, context, byte_dump_short_unicode, byte_dump_long_unicode, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "    Display using Unicode representation for valid Unicode (like: U+0000).");
 
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     fll_program_print_help_option(output, context, byte_dump_short_first, byte_dump_long_first, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "      Start reading at this byte offset.");
     fll_program_print_help_option(output, context, byte_dump_short_last, byte_dump_long_last, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "       Stop reading at this (inclusive) byte offset.");
     fll_program_print_help_option(output, context, byte_dump_short_width, byte_dump_long_width, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "      Set number of columns of Bytes to display.");
 
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     fll_program_print_help_option(output, context, byte_dump_short_text, byte_dump_long_text, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "       Include a column of text when displaying the bytes.");
     fll_program_print_help_option(output, context, byte_dump_short_placeholder, byte_dump_long_placeholder, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "Use a placeholder character instead of a space for placeholders.");
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
-    fl_print_string(" %[Special Options:%] ", output.stream, context.set.important, context.set.important);
+    fl_print_format(" %[Special Options:%] ", output.stream, context.set.important, context.set.important);
 
     fll_program_print_help_option_long(output, context, byte_dump_long_normal, f_console_symbol_long_enable_s, " Display UTF-8 symbols for ASCII control codes.");
     fll_program_print_help_option_long(output, context, byte_dump_long_simple, f_console_symbol_long_enable_s, " Display spaces for ASCII control codes.");
@@ -55,37 +55,37 @@ extern "C" {
     fll_program_print_help_usage(output, context, byte_dump_name, "filename(s)");
 
     f_print_terminated("  When using the ", output.stream);
-    fl_print_string("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_text, context.set.notable);
+    fl_print_format("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_text, context.set.notable);
     f_print_terminated(" option, some UTF-8 characters may be replaced by your instance and cause display alignment issues.", output.stream);
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     f_print_terminated("  Special UTF-8 characters and non-spacing UTF-8 characters may be replaced with a space (or a placeholder when the ", output.stream);
-    fl_print_string("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_placeholder, context.set.notable);
+    fl_print_format("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_placeholder, context.set.notable);
     f_print_terminated(" option is used).", output.stream);
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     f_print_terminated("  UTF-8 \"Combining\" characters might have a space appended to allow a proper display but this may cause copy and paste issues.", output.stream);
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     f_print_terminated("  When ", output.stream);
-    fl_print_string("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_last, context.set.notable);
+    fl_print_format("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_last, context.set.notable);
     f_print_terminated(" is used, any UTF-8 sequences will still be printed in full should any part is found within the requested range.", output.stream);
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     f_print_terminated("  When using the ", output.stream);
-    fl_print_string("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_unicode, context.set.notable);
+    fl_print_format("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_unicode, context.set.notable);
     f_print_terminated(" option, invalid Unicode will fallback to being displayed using one of the other modes.", output.stream);
 
-    f_print_terminated(f_string_eol_s, output.stream);
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     funlockfile(output.stream);
 
@@ -95,6 +95,7 @@ extern "C" {
 
 #ifndef _di_byte_dump_main_
   f_status_t byte_dump_main(const f_console_arguments_t arguments, byte_dump_main_t *main) {
+
     f_status_t status = F_none;
 
     {
@@ -110,15 +111,18 @@ extern "C" {
         if (main->context.set.error.before) {
           main->error.context = main->context.set.error;
           main->error.notable = main->context.set.notable;
+
+          main->warning.context = main->context.set.warning;
+          main->warning.notable = main->context.set.notable;
         }
         else {
-          f_color_set_t *sets[] = { &main->error.context, &main->error.notable, 0 };
+          f_color_set_t *sets[] = { &main->error.context, &main->error.notable, &main->warning.context, &main->warning.notable, 0 };
 
           fll_program_parameter_process_empty(&main->context, sets);
         }
 
         if (F_status_is_error(status)) {
-          fll_error_print(main->error, F_status_set_fine(status), "f_console_parameter_prioritize_right", F_true);
+          fll_error_print(main->error, F_status_set_fine(status), "fll_program_parameter_process", F_true);
 
           byte_dump_main_delete(main);
           return F_status_set_error(status);
@@ -142,15 +146,19 @@ extern "C" {
 
         if (choice == byte_dump_parameter_verbosity_quiet) {
           main->error.verbosity = f_console_verbosity_quiet;
+          main->warning.verbosity = f_console_verbosity_quiet;
         }
         else if (choice == byte_dump_parameter_verbosity_normal) {
           main->error.verbosity = f_console_verbosity_normal;
+          main->warning.verbosity = f_console_verbosity_normal;
         }
         else if (choice == byte_dump_parameter_verbosity_verbose) {
           main->error.verbosity = f_console_verbosity_verbose;
+          main->warning.verbosity = f_console_verbosity_verbose;
         }
         else if (choice == byte_dump_parameter_verbosity_debug) {
           main->error.verbosity = f_console_verbosity_debug;
+          main->warning.verbosity = f_console_verbosity_debug;
         }
       }
 
@@ -233,9 +241,9 @@ extern "C" {
       if (main->parameters[byte_dump_parameter_width].result == f_console_result_found) {
         flockfile(main->error.to.stream);
 
-        fl_print_string("%[%sThe parameter '%]", main->error.to.stream, main->context.set.error, fll_error_print_error, main->context.set.error);
-        fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_width, main->context.set.notable);
-        fl_print_string("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
+        fl_print_format("%[%SThe parameter '%]", main->error.to.stream, main->context.set.error, main->error.prefix, main->context.set.error);
+        fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_width, main->context.set.notable);
+        fl_print_format("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
 
         funlockfile(main->error.to.stream);
 
@@ -253,13 +261,13 @@ extern "C" {
         if (F_status_is_error(status) || number < 1 || number >= 0xfb) {
           flockfile(main->error.to.stream);
 
-          fl_print_string("%[%sThe parameter '%]", main->error.to.stream, main->context.set.error, fll_error_print_error, main->context.set.error);
-          fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_width, main->context.set.notable);
-          fl_print_string("%[' value can only be a number (inclusively) between %]", main->error.to.stream, main->context.set.error, main->context.set.error);
-          fl_print_string("%[1%]", main->error.to.stream, main->context.set.notable, main->context.set.notable);
-          fl_print_string(" %[and%] ", main->error.to.stream, main->context.set.error, main->context.set.error);
-          fl_print_string("%[250%]", main->error.to.stream, main->context.set.notable, main->context.set.notable);
-          fl_print_string("%[.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
+          fl_print_format("%[%SThe parameter '%]", main->error.to.stream, main->context.set.error, main->error.prefix, main->context.set.error);
+          fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_width, main->context.set.notable);
+          fl_print_format("%[' value can only be a number (inclusively) between %]", main->error.to.stream, main->context.set.error, main->context.set.error);
+          fl_print_format("%[1%]", main->error.to.stream, main->context.set.notable, main->context.set.notable);
+          fl_print_format(" %[and%] ", main->error.to.stream, main->context.set.error, main->context.set.error);
+          fl_print_format("%[250%]", main->error.to.stream, main->context.set.notable, main->context.set.notable);
+          fl_print_format("%[.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
 
           funlockfile(main->error.to.stream);
 
@@ -273,9 +281,9 @@ extern "C" {
       if (main->parameters[byte_dump_parameter_first].result == f_console_result_found) {
         flockfile(main->error.to.stream);
 
-        fl_print_string("%[%sThe parameter '%]", main->error.to.stream, main->context.set.error, fll_error_print_error, main->context.set.error);
-        fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_first, main->context.set.notable);
-        fl_print_string("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
+        fl_print_format("%[%SThe parameter '%]", main->error.to.stream, main->context.set.error, main->error.prefix, main->context.set.error);
+        fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_first, main->context.set.notable);
+        fl_print_format("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
 
         funlockfile(main->error.to.stream);
 
@@ -293,13 +301,13 @@ extern "C" {
         if (F_status_is_error(status) || number > f_number_t_size_unsigned) {
           flockfile(main->error.to.stream);
 
-          fl_print_string("%[%sThe parameter '%]", main->error.to.stream, main->context.set.error, fll_error_print_error, main->context.set.error);
-          fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_first, main->context.set.notable);
-          fl_print_string("%[' value can only be a number (inclusively) between %]", main->error.to.stream, main->context.set.error, main->context.set.error);
-          fl_print_string("%[0%]", main->error.to.stream, main->context.set.notable, main->context.set.notable);
-          fl_print_string(" %[and%] ", main->error.to.stream, main->context.set.error, main->context.set.error);
-          fl_print_string("%[%ul%]", main->error.to.stream, main->context.set.notable, f_number_t_size_unsigned, main->context.set.notable);
-          fl_print_string("%[.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
+          fl_print_format("%[%SThe parameter '%]", main->error.to.stream, main->context.set.error, main->error.prefix, main->context.set.error);
+          fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_first, main->context.set.notable);
+          fl_print_format("%[' value can only be a number (inclusively) between %]", main->error.to.stream, main->context.set.error, main->context.set.error);
+          fl_print_format("%[0%]", main->error.to.stream, main->context.set.notable, main->context.set.notable);
+          fl_print_format(" %[and%] ", main->error.to.stream, main->context.set.error, main->context.set.error);
+          fl_print_format("%[%un%]", main->error.to.stream, main->context.set.notable, f_number_t_size_unsigned, main->context.set.notable);
+          fl_print_format("%[.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
 
           funlockfile(main->error.to.stream);
 
@@ -313,9 +321,9 @@ extern "C" {
       if (main->parameters[byte_dump_parameter_last].result == f_console_result_found) {
         flockfile(main->error.to.stream);
 
-        fl_print_string("%[%sThe parameter '%]", main->error.to.stream, main->context.set.error, fll_error_print_error, main->context.set.error);
-        fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_last, main->context.set.notable);
-        fl_print_string("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
+        fl_print_format("%[%SThe parameter '%]", main->error.to.stream, main->context.set.error, main->error.prefix, main->context.set.error);
+        fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_last, main->context.set.notable);
+        fl_print_format("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
 
         funlockfile(main->error.to.stream);
 
@@ -333,13 +341,13 @@ extern "C" {
         if (F_status_is_error(status) || number < 0 || number > f_number_t_size_unsigned) {
           flockfile(main->error.to.stream);
 
-          fl_print_string("%[%sThe parameter '%]", main->error.to.stream, main->context.set.error, fll_error_print_error, main->context.set.error);
-          fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_last, main->context.set.notable);
-          fl_print_string("%[' value can only be a number (inclusively) between %]", main->error.to.stream, main->context.set.error, main->context.set.error);
-          fl_print_string("%[0%]", main->error.to.stream, main->context.set.notable, main->context.set.notable);
-          fl_print_string(" %[and%] ", main->error.to.stream, main->context.set.error, main->context.set.error);
-          fl_print_string("%[%ul%]", main->error.to.stream, main->context.set.notable, f_number_t_size_unsigned, main->context.set.notable);
-          fl_print_string("%[.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
+          fl_print_format("%[%SThe parameter '%]", main->error.to.stream, main->context.set.error, main->error.prefix, main->context.set.error);
+          fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_last, main->context.set.notable);
+          fl_print_format("%[' value can only be a number (inclusively) between %]", main->error.to.stream, main->context.set.error, main->context.set.error);
+          fl_print_format("%[0%]", main->error.to.stream, main->context.set.notable, main->context.set.notable);
+          fl_print_format(" %[and%] ", main->error.to.stream, main->context.set.error, main->context.set.error);
+          fl_print_format("%[%un%]", main->error.to.stream, main->context.set.notable, f_number_t_size_unsigned, main->context.set.notable);
+          fl_print_format("%[.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
 
           funlockfile(main->error.to.stream);
 
@@ -354,11 +362,11 @@ extern "C" {
         if (main->first > main->last) {
           flockfile(main->error.to.stream);
 
-          fl_print_string("%[%sThe parameter '%]", main->error.to.stream, main->context.set.error, fll_error_print_error, main->context.set.error);
-          fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_first, main->context.set.notable);
-          fl_print_string("%[' value cannot be greater than the parameter '%]", main->error.to.stream, main->context.set.error, main->context.set.error);
-          fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_last, main->context.set.notable);
-          fl_print_string("%[' value.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
+          fl_print_format("%[%SThe parameter '%]", main->error.to.stream, main->context.set.error, main->error.prefix, main->context.set.error);
+          fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_first, main->context.set.notable);
+          fl_print_format("%[' value cannot be greater than the parameter '%]", main->error.to.stream, main->context.set.error, main->context.set.error);
+          fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, byte_dump_long_last, main->context.set.notable);
+          fl_print_format("%[' value.%]%c", main->error.to.stream, main->context.set.error, main->context.set.error, f_string_eol_s[0]);
 
           funlockfile(main->error.to.stream);
 
@@ -379,7 +387,7 @@ extern "C" {
         flockfile(main->output.stream);
 
         f_print_terminated(f_string_eol_s, main->output.stream);
-        fl_print_string("%[Piped Byte Dump: (in ", main->output.stream, main->context.set.title);
+        fl_print_format("%[Piped Byte Dump: (in ", main->output.stream, main->context.set.title);
 
         if (main->mode == byte_dump_mode_hexidecimal) {
           f_print_terminated("Hexidecimal", main->output.stream);
@@ -397,7 +405,7 @@ extern "C" {
           f_print_terminated("Decimal", main->output.stream);
         }
 
-        fl_print_string(")%]%c", main->output.stream, main->context.set.title, f_string_eol_s[0]);
+        fl_print_format(")%]%c", main->output.stream, main->context.set.title, f_string_eol_s[0]);
 
         funlockfile(main->output.stream);
 
@@ -453,9 +461,9 @@ extern "C" {
           flockfile(main->output.stream);
 
           f_print_terminated(f_string_eol_s, main->output.stream);
-          fl_print_string("%[Byte Dump of: %]%[", main->output.stream, main->context.set.title, main->context.set.title, main->context.set.notable);
+          fl_print_format("%[Byte Dump of: %]%[", main->output.stream, main->context.set.title, main->context.set.title, main->context.set.notable);
           fll_print_safely_terminated(arguments.argv[main->remaining.array[counter]], main->output.stream);
-          fl_print_string("%] %[(in ", main->output.stream, main->context.set.notable, main->context.set.title);
+          fl_print_format("%] %[(in ", main->output.stream, main->context.set.notable, main->context.set.title);
 
           if (main->mode == byte_dump_mode_hexidecimal) {
             f_print_terminated("Hexidecimal", main->output.stream);
@@ -473,7 +481,7 @@ extern "C" {
             f_print_terminated("Decimal", main->output.stream);
           }
 
-          fl_print_string(")%]%c", main->output.stream, main->context.set.title, f_string_eol_s[0]);
+          fl_print_format(")%]%c", main->output.stream, main->context.set.title, f_string_eol_s[0]);
 
           funlockfile(main->output.stream);
 
@@ -494,7 +502,7 @@ extern "C" {
       }
     }
     else {
-      fll_print_string("%[%sYou failed to specify one or more filenames.%]%c", main->error.to.stream, main->context.set.error, fll_error_print_error, main->context.set.error, f_string_eol_s[0]);
+      fll_print_format("%[%SYou failed to specify one or more filenames.%]%c", main->error.to.stream, main->context.set.error, main->error.prefix, main->context.set.error, f_string_eol_s[0]);
       status = F_status_set_error(F_parameter);
     }
 
index 91ee21017d9da3ffbee513aa9a315f52f398563b..43c232e634721f01ae4a4a0d0a1cf987328be23e 100644 (file)
@@ -231,6 +231,7 @@ extern "C" {
 
     f_file_t output;
     fll_error_print_t error;
+    fll_error_print_t warning;
 
     uint64_t first;
     uint64_t last;
@@ -248,6 +249,7 @@ extern "C" {
       F_false, \
       macro_f_file_t_initialize2(f_type_output, f_type_descriptor_output, f_file_flag_write_only), \
       fll_error_print_t_initialize, \
+      macro_fll_error_print_t_initialize_warning(), \
       0, \
       0, \
       8, \
index 1d8f6deb0afced0162a15a84345ce795f628b25c..7824a06d5de253d19780eb2f16fdb2a1e3cfc8ec 100644 (file)
@@ -264,8 +264,8 @@ extern "C" {
       flockfile(main.error.to.stream);
 
       fl_print_color_terminated("Invalid UTF-8 codes were detected for file '", main.context.set.error, main.error.to.stream);
-      fl_print_string("%[%S%]", main.error.to.stream, main.context.set.notable, file_name ? file_name : "-", main.context.set.notable);
-      fl_print_string("%['.%]%c%c", main.error.to.stream, main.context.set.error, main.context.set.error, f_string_eol_s[0], f_string_eol_s[0]);
+      fl_print_format("%[%S%]", main.error.to.stream, main.context.set.notable, file_name ? file_name : "-", main.context.set.notable);
+      fl_print_format("%['.%]%c%c", main.error.to.stream, main.context.set.error, main.context.set.error, f_string_eol_s[0], f_string_eol_s[0]);
 
       funlockfile(main.error.to.stream);
     }
@@ -274,9 +274,9 @@ extern "C" {
       // @todo: determine what the error is and display it.
       flockfile(main.error.to.stream);
 
-      fl_print_string("%[%sread() failed for '%]", main.error.to.stream, main.context.set.error, fll_error_print_error, main.context.set.error);
-      fl_print_string("%[%S%]", main.error.to.stream, main.context.set.notable, file_name ? file_name : "-", main.context.set.notable);
-      fl_print_string("%['.%]%c%c", main.error.to.stream, main.context.set.error, main.context.set.error, f_string_eol_s[0], f_string_eol_s[0]);
+      fl_print_format("%[%Sread() failed for '%]", main.error.to.stream, main.context.set.error, main.error.prefix, main.context.set.error);
+      fl_print_format("%[%S%]", main.error.to.stream, main.context.set.notable, file_name ? file_name : "-", main.context.set.notable);
+      fl_print_format("%['.%]%c%c", main.error.to.stream, main.context.set.error, main.context.set.error, f_string_eol_s[0], f_string_eol_s[0]);
 
       funlockfile(main.error.to.stream);
 
@@ -312,7 +312,7 @@ extern "C" {
     }
 
     if (!cell->column) {
-      fl_print_string("%[%016_UL%] ", main.output.stream, main.context.set.notable, cell->row, main.context.set.notable);
+      fl_print_format("%[%016_UL%] ", main.output.stream, main.context.set.notable, cell->row, main.context.set.notable);
 
       if (*offset) {
         uint8_t offset_to_print = *offset;
@@ -412,10 +412,10 @@ extern "C" {
           }
 
           if (width_utf < 4) {
-            fl_print_string(" U+%04_U  ", main.output.stream, unicode);
+            fl_print_format(" U+%04_U  ", main.output.stream, unicode);
           }
           else {
-            fl_print_string(" U+%06_U  ", main.output.stream, unicode);
+            fl_print_format(" U+%06_U  ", main.output.stream, unicode);
           }
         }
         else {
@@ -431,10 +431,10 @@ extern "C" {
           }
 
           if (invalid[character_current]) {
-            fl_print_string(" %[%02_uii%]", main.output.stream, main.context.set.error, (uint8_t) byte, main.context.set.error);
+            fl_print_format(" %[%02_uii%]", main.output.stream, main.context.set.error, (uint8_t) byte, main.context.set.error);
           }
           else {
-            fl_print_string(" %02_uii", main.output.stream, (uint8_t) byte);
+            fl_print_format(" %02_uii", main.output.stream, (uint8_t) byte);
           }
         }
         else if (main.mode == byte_dump_mode_duodecimal) {
@@ -443,10 +443,10 @@ extern "C" {
           }
 
           if (invalid[character_current]) {
-            fl_print_string(" %[%03&uii%]", main.output.stream, main.context.set.error, (uint8_t) byte, main.context.set.error);
+            fl_print_format(" %[%03&uii%]", main.output.stream, main.context.set.error, (uint8_t) byte, main.context.set.error);
           }
           else {
-            fl_print_string(" %03&uii", main.output.stream, (uint8_t) byte);
+            fl_print_format(" %03&uii", main.output.stream, (uint8_t) byte);
           }
         }
         else if (main.mode == byte_dump_mode_octal) {
@@ -455,18 +455,18 @@ extern "C" {
           }
 
           if (invalid[character_current]) {
-            fl_print_string(" %[%03@uii%]", main.output.stream, main.context.set.error, (uint8_t) byte, main.context.set.error);
+            fl_print_format(" %[%03@uii%]", main.output.stream, main.context.set.error, (uint8_t) byte, main.context.set.error);
           }
           else {
-            fl_print_string(" %03@uii", main.output.stream, (uint8_t) byte);
+            fl_print_format(" %03@uii", main.output.stream, (uint8_t) byte);
           }
         }
         else if (main.mode == byte_dump_mode_binary) {
           if (invalid[character_current]) {
-            fl_print_string(" %[%08!uii%]", main.output.stream, main.context.set.error, (uint8_t) byte, main.context.set.error);
+            fl_print_format(" %[%08!uii%]", main.output.stream, main.context.set.error, (uint8_t) byte, main.context.set.error);
           }
           else {
-            fl_print_string(" %08!uii", main.output.stream, (uint8_t) byte);
+            fl_print_format(" %08!uii", main.output.stream, (uint8_t) byte);
           }
         }
         else if (main.mode == byte_dump_mode_decimal) {
@@ -475,10 +475,10 @@ extern "C" {
           }
 
           if (invalid[character_current]) {
-            fl_print_string(" %[%3uii%]", main.output.stream, main.context.set.error, (uint8_t) byte, main.context.set.error);
+            fl_print_format(" %[%3uii%]", main.output.stream, main.context.set.error, (uint8_t) byte, main.context.set.error);
           }
           else {
-            fl_print_string(" %3uii", main.output.stream, (uint8_t) byte);
+            fl_print_format(" %3uii", main.output.stream, (uint8_t) byte);
           }
         }
       }
index e1bc988eb8c0438b858e8dc657e751de76412e06..c3450a0f2ba3d58d0af92dc358bbc426f96be07a 100644 (file)
@@ -9,6 +9,8 @@ extern "C" {
 #ifndef _di_control_print_help_
   f_status_t control_print_help(const f_file_t output, const f_color_context_t context) {
 
+    flockfile(output.stream);
+
     fll_program_print_help_header(output, context, control_name_long, control_version);
 
     fll_program_print_help_option(output, context, f_console_standard_short_help_s, f_console_standard_long_help_s, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "    Print this help message.");
@@ -23,6 +25,8 @@ extern "C" {
 
     fll_program_print_help_usage(output, context, control_name, f_string_empty_s);
 
+    funlockfile(output.stream);
+
     return F_none;
   }
 #endif // _di_control_print_help_
@@ -80,15 +84,19 @@ extern "C" {
 
         if (choice == control_parameter_verbosity_quiet) {
           main->error.verbosity = f_console_verbosity_quiet;
+          main->warning.verbosity = f_console_verbosity_quiet;
         }
         else if (choice == control_parameter_verbosity_normal) {
           main->error.verbosity = f_console_verbosity_normal;
+          main->warning.verbosity = f_console_verbosity_normal;
         }
         else if (choice == control_parameter_verbosity_verbose) {
           main->error.verbosity = f_console_verbosity_verbose;
+          main->warning.verbosity = f_console_verbosity_verbose;
         }
         else if (choice == control_parameter_verbosity_debug) {
           main->error.verbosity = f_console_verbosity_debug;
+          main->warning.verbosity = f_console_verbosity_debug;
         }
       }
 
index 6e704137e22f953506a216a46787d69359a27d9b..95b9fce41301c416eebe32c05195022300198bfa 100644 (file)
@@ -14,4 +14,5 @@ fl_console
 fl_print
 fl_string
 fll_error
+fll_print
 fll_program
index 0128b7132424dea23a38f1e7db0095e9ff749f52..53798cb18377c786b1d0824c9a7ff9730adeca9d 100644 (file)
@@ -20,7 +20,7 @@ build_compiler gcc
 build_indexer ar
 build_language c
 build_libraries -lc
-build_libraries-individual -lfll_error -lfll_program -lfl_console -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_memory -lf_path -lf_pipe -lf_print -lf_string -lf_type_array -lf_utf
+build_libraries-individual -lfll_error -lfll_print -lfll_program -lfl_console -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_memory -lf_path -lf_pipe -lf_print -lf_string -lf_type_array -lf_utf
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 build_sources_library control.c private-common.c private-control.c
index dc74c1fee68bf70d5e7d2d7f191467bcdbf6b252..08c65036a88478844b8ce43bce9990cc5da67f11 100644 (file)
@@ -27,7 +27,7 @@ extern "C" {
     fll_program_print_help_option(output, context, f_console_standard_short_debug_s, f_console_standard_long_debug_s, f_console_symbol_short_disable_s, f_console_symbol_long_disable_s, "   Enable debugging, inceasing verbosity beyond normal output.");
     fll_program_print_help_option(output, context, f_console_standard_short_version_s, f_console_standard_long_version_s, f_console_symbol_short_disable_s, f_console_symbol_long_disable_s, " Print only the version number.");
 
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     fll_program_print_help_option(output, context, controller_short_control, controller_long_control, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "      Specify a custom control group file path, such as '" f_control_group_path_system_prefix f_control_group_path_system_default "'.");
     fll_program_print_help_option(output, context, controller_short_daemon, controller_long_daemon, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "       Run in daemon only mode (do not process the entry).");
@@ -41,11 +41,11 @@ extern "C" {
     fll_program_print_help_usage(output, context, controller_name, "entry");
 
     f_print_terminated("  When both the ", output.stream);
-    fl_print_string("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, controller_long_simulate, context.set.notable);
+    fl_print_format("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, controller_long_simulate, context.set.notable);
     f_print_terminated(" parameter and the ", output.stream);
-    fl_print_string("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, controller_long_validate, context.set.notable);
+    fl_print_format("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, controller_long_validate, context.set.notable);
     f_print_terminated(" parameter are specified, then additional information on each would be executed rule is printed but no simulation is performed.", output.stream);
-    f_print_terminated(f_string_eol_s, output.stream);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     funlockfile(output.stream);
 
@@ -172,9 +172,9 @@ extern "C" {
       if (main->error.verbosity != f_console_verbosity_quiet) {
         flockfile(main->error.to.stream);
 
-        fl_print_string("%c%[%SThe parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
-        fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_settings, main->context.set.notable);
-        fl_print_string("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SThe parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
+        fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_settings, main->context.set.notable);
+        fl_print_format("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
 
         funlockfile(main->error.to.stream);
       }
@@ -208,9 +208,9 @@ extern "C" {
         if (main->error.verbosity != f_console_verbosity_quiet) {
           flockfile(main->error.to.stream);
 
-          fl_print_string("%c%[%SThe parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
-          fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_pid, main->context.set.notable);
-          fl_print_string("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SThe parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
+          fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_pid, main->context.set.notable);
+          fl_print_format("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
 
           funlockfile(main->error.to.stream);
         }
@@ -231,9 +231,9 @@ extern "C" {
           if (main->warning.verbosity == f_console_verbosity_debug) {
             flockfile(main->warning.to.stream);
 
-            fl_print_string("%c%[%SThe parameter '%]", main->warning.to.stream, f_string_eol_s[0], main->warning.context, main->warning.prefix ? main->warning.prefix : f_string_empty_s, main->warning.context);
-            fl_print_string("%[%s%s%]", main->warning.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_pid, main->context.set.notable);
-            fl_print_string("%[' must be a file path but instead is an empty string, falling back to the default.%]%c", main->warning.to.stream, main->warning.context, main->warning.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SThe parameter '%]", main->warning.to.stream, f_string_eol_s[0], main->warning.context, main->warning.prefix ? main->warning.prefix : f_string_empty_s, main->warning.context);
+            fl_print_format("%[%s%s%]", main->warning.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_pid, main->context.set.notable);
+            fl_print_format("%[' must be a file path but instead is an empty string, falling back to the default.%]%c", main->warning.to.stream, main->warning.context, main->warning.context, f_string_eol_s[0]);
 
             funlockfile(main->warning.to.stream);
           }
@@ -269,9 +269,9 @@ extern "C" {
         if (main->error.verbosity != f_console_verbosity_quiet) {
           flockfile(main->error.to.stream);
 
-          fl_print_string("%c%[%SThe parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
-          fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_control, main->context.set.notable);
-          fl_print_string("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SThe parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
+          fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_control, main->context.set.notable);
+          fl_print_format("%[' was specified, but no value was given.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
 
           funlockfile(main->error.to.stream);
         }
@@ -306,9 +306,9 @@ extern "C" {
           if (main->warning.verbosity == f_console_verbosity_debug) {
             flockfile(main->warning.to.stream);
 
-            fl_print_string("%c%[%SThe parameter '%]", main->warning.to.stream, f_string_eol_s[0], main->warning.context, main->warning.prefix ? main->warning.prefix : f_string_empty_s, main->warning.context);
-            fl_print_string("%[%s%s%]", main->warning.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_control, main->context.set.notable);
-            fl_print_string("%[' must be a file directory path but instead is an empty string, falling back to the default.%]%c", main->warning.to.stream, main->warning.context, main->warning.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SThe parameter '%]", main->warning.to.stream, f_string_eol_s[0], main->warning.context, main->warning.prefix ? main->warning.prefix : f_string_empty_s, main->warning.context);
+            fl_print_format("%[%s%s%]", main->warning.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_control, main->context.set.notable);
+            fl_print_format("%[' must be a file directory path but instead is an empty string, falling back to the default.%]%c", main->warning.to.stream, main->warning.context, main->warning.context, f_string_eol_s[0]);
 
             funlockfile(main->warning.to.stream);
           }
@@ -321,10 +321,10 @@ extern "C" {
         if (main->error.verbosity != f_console_verbosity_quiet) {
           flockfile(main->error.to.stream);
 
-          fl_print_string("%c%[%SThe parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
-          fl_print_string("%[' must not be specified with the parameter '%]", main->error.to.stream, main->error.context, main->error.context);
-          fl_print_string("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_daemon, main->context.set.notable);
-          fl_print_string("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SThe parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
+          fl_print_format("%[' must not be specified with the parameter '%]", main->error.to.stream, main->error.context, main->error.context);
+          fl_print_format("%[%s%s%]", main->error.to.stream, main->context.set.notable, f_console_symbol_long_enable_s, controller_long_daemon, main->context.set.notable);
+          fl_print_format("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
 
           funlockfile(main->error.to.stream);
         }
index e773acae1e50738292c20be24d3a5fdd95407a73..6b4dc6a6c440ad9b15744f42ef27172ac5af18b3 100644 (file)
@@ -203,10 +203,10 @@ extern "C" {
 
     flockfile(print.to.stream);
 
-    fl_print_string("%c%[%SThe pid file '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix ? print.prefix : f_string_empty_s, print.context);
-    fl_print_string("%[' must not be specified with the parameter '%]", print.to.stream, print.context, print.context);
-    fl_print_string("%[%S%]", print.to.stream, print.notable, path, print.notable);
-    fl_print_string("%[' doesn't contain the expected number, not deleting file.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+    fl_print_format("%c%[%SThe pid file '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix ? print.prefix : f_string_empty_s, print.context);
+    fl_print_format("%[' must not be specified with the parameter '%]", print.to.stream, print.context, print.context);
+    fl_print_format("%[%S%]", print.to.stream, print.notable, path, print.notable);
+    fl_print_format("%[' doesn't contain the expected number, not deleting file.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
     funlockfile(print.to.stream);
 
@@ -311,28 +311,28 @@ extern "C" {
 
       flockfile(print.to.stream);
 
-      fl_print_string("%c%[%SThe pid file '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix ? print.prefix : f_string_empty_s, print.context);
-      fl_print_string("%['Critical failure while attempting to establish '%]", print.to.stream, print.context, print.context);
-      fl_print_string("%[%s lock%]", print.to.stream, print.notable, read ? "read" : "write", print.notable);
+      fl_print_format("%c%[%SThe pid file '%]", print.to.stream, f_string_eol_s[0], print.context, print.prefix ? print.prefix : f_string_empty_s, print.context);
+      fl_print_format("%['Critical failure while attempting to establish '%]", print.to.stream, print.context, print.context);
+      fl_print_format("%[%s lock%]", print.to.stream, print.notable, read ? "read" : "write", print.notable);
 
       if (status != F_failure) {
-        fl_print_string(" %['due to%] ", print.to.stream, print.context, print.context);
+        fl_print_format(" %['due to%] ", print.to.stream, print.context, print.context);
 
         if (status == F_parameter) {
-          fl_print_string("%[%s%]", print.to.stream, print.notable, "Invalid Parameter", print.notable);
+          fl_print_format("%[%s%]", print.to.stream, print.notable, "Invalid Parameter", print.notable);
         }
         else if (status == F_deadlock) {
-          fl_print_string("%[%s%]", print.to.stream, print.notable, "Deadlock", print.notable);
+          fl_print_format("%[%s%]", print.to.stream, print.notable, "Deadlock", print.notable);
         }
         else if (status == F_resource_not) {
-          fl_print_string("%[%s%]", print.to.stream, print.notable, "Too Many Locks", print.notable);
+          fl_print_format("%[%s%]", print.to.stream, print.notable, "Too Many Locks", print.notable);
         }
         else {
-          fl_print_string("%[%s%]", print.to.stream, print.notable, "Unknown Error", print.notable);
+          fl_print_format("%[%s%]", print.to.stream, print.notable, "Unknown Error", print.notable);
         }
       }
 
-      fl_print_string("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
+      fl_print_format("%['.%]%c", print.to.stream, print.context, print.context, f_string_eol_s[0]);
 
       funlockfile(print.to.stream);
 
index 647fa65db26aaf220b19b87ed1b24d5397686966..55d83cef48519ce3b1d801c26c1e20b24a435c8a 100644 (file)
@@ -194,7 +194,7 @@ extern "C" {
     status = f_file_stream_open(path.string, f_file_open_mode_truncate_s, &file);
     if (F_status_is_error(status)) return status;
 
-    fll_print_string("%i%c", file.stream, pid, f_string_eol_s[0]);
+    fll_print_format("%i%c", file.stream, pid, f_string_eol_s[0]);
 
     f_file_stream_close(F_true, &file);
 
@@ -534,9 +534,9 @@ extern "C" {
 
               flockfile(global.main->warning.to.stream);
 
-              fl_print_string("%c%[%sMultiple '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context);
-              fl_print_string("%[%s%]", global.main->warning.to.stream, global.main->warning.notable, controller_string_ready_s, global.main->warning.notable);
-              fl_print_string("%[' %s item actions detected; only the first will be used.%]%c", global.main->warning.to.stream, global.main->warning.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->warning.context, f_string_eol_s[0]);
+              fl_print_format("%c%[%SMultiple '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context);
+              fl_print_format("%[%s%]", global.main->warning.to.stream, global.main->warning.notable, controller_string_ready_s, global.main->warning.notable);
+              fl_print_format("%[' %s item actions detected; only the first will be used.%]%c", global.main->warning.to.stream, global.main->warning.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->warning.context, f_string_eol_s[0]);
 
               controller_entry_error_print_cache(is_entry, global.main->warning, cache->action);
 
@@ -573,9 +573,9 @@ extern "C" {
 
                     flockfile(global.main->error.to.stream);
 
-                    fl_print_string("%c%[%sThe %s item named '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.prefix, global.main->error.context);
-                    fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, entry->items.array[i].name, global.main->error.notable);
-                    fl_print_string("%[' cannot be executed because recursion is not allowed.%]%c", global.main->error.to.stream, global.main->error.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context, f_string_eol_s[0]);
+                    fl_print_format("%c%[%SThe %s item named '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.prefix, global.main->error.context);
+                    fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, entry->items.array[i].name, global.main->error.notable);
+                    fl_print_format("%[' cannot be executed because recursion is not allowed.%]%c", global.main->error.to.stream, global.main->error.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context, f_string_eol_s[0]);
 
                     controller_entry_error_print_cache(is_entry, global.main->error, cache->action);
 
@@ -639,9 +639,9 @@ extern "C" {
 
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%sThe %s item named '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.prefix, global.main->error.context);
-                fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, actions->array[cache->ats.array[at_j]].parameters.array[0], global.main->error.notable);
-                fl_print_string("%[' does not exist.%]%c", global.main->error.to.stream, global.main->error.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SThe %s item named '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.prefix, global.main->error.context);
+                fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, actions->array[cache->ats.array[at_j]].parameters.array[0], global.main->error.notable);
+                fl_print_format("%[' does not exist.%]%c", global.main->error.to.stream, global.main->error.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context, f_string_eol_s[0]);
 
                 controller_entry_error_print_cache(is_entry, global.main->error, cache->action);
 
@@ -768,8 +768,8 @@ extern "C" {
 
         flockfile(global->main->output.stream);
 
-        fl_print_string("%cProcessing %s%s item '", global->main->output.stream, f_string_eol_s[0], failsafe ? "failsafe " : "", is_entry ? controller_string_entry_s : controller_string_exit_s);
-        fl_print_string("%[%Q%]'.%c", global->main->output.stream, global->main->context.set.notable, cache->action.name_item, global->main->context.set.notable, f_string_eol_s[0]);
+        fl_print_format("%cProcessing %s%s item '", global->main->output.stream, f_string_eol_s[0], failsafe ? "failsafe " : "", is_entry ? controller_string_entry_s : controller_string_exit_s);
+        fl_print_format("%[%Q%]'.%c", global->main->output.stream, global->main->context.set.notable, cache->action.name_item, global->main->context.set.notable, f_string_eol_s[0]);
 
         funlockfile(global->main->output.stream);
 
@@ -804,18 +804,18 @@ extern "C" {
 
                 flockfile(global->main->output.stream);
 
-                fl_print_string("%cThe %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
-                fl_print_string("%[%Q%]", global->main->output.stream, global->main->context.set.title, cache->action.name_action, global->main->context.set.title);
+                fl_print_format("%cThe %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
+                fl_print_format("%[%Q%]", global->main->output.stream, global->main->context.set.title, cache->action.name_action, global->main->context.set.title);
 
                 if (entry_action->parameters.used) {
-                  fl_print_string(" %[", global->main->output.stream, global->main->context.set.notable);
+                  fl_print_format(" %[", global->main->output.stream, global->main->context.set.notable);
 
                   controller_entry_action_parameters_print(global->main->output.stream, entry_actions->array[cache->ats.array[at_j]]);
 
-                  fl_print_string("%]", global->main->output.stream, global->main->context.set.notable);
+                  fl_print_format("%]", global->main->output.stream, global->main->context.set.notable);
                 }
 
-                fl_print_string("' is %s and is in a %[failed%] state, skipping execution.%c", global->main->output.stream, entry_action->code & controller_entry_rule_code_require ? "required" : "optional", f_string_eol_s[0]);
+                fl_print_format("' is %s and is in a %[failed%] state, skipping execution.%c", global->main->output.stream, entry_action->code & controller_entry_rule_code_require ? "required" : "optional", f_string_eol_s[0]);
 
                 funlockfile(global->main->output.stream);
 
@@ -836,16 +836,16 @@ extern "C" {
 
               flockfile(output->to.stream);
 
-              fl_print_string("%c%[%SThe %s item action '%]", output->to.stream, f_string_eol_s[0], output->prefix ? output->prefix : f_string_empty_s, is_entry ? controller_string_entry_s : controller_string_exit_s);
-              fl_print_string("%[%Q%]", output->to.stream, output->notable, cache->action.name_action, output->notable);
+              fl_print_format("%c%[%SThe %s item action '%]", output->to.stream, f_string_eol_s[0], output->prefix ? output->prefix : f_string_empty_s, is_entry ? controller_string_entry_s : controller_string_exit_s);
+              fl_print_format("%[%Q%]", output->to.stream, output->notable, cache->action.name_action, output->notable);
 
               if (entry_action->parameters.used) {
-                fl_print_string(" %[%S%]", output->to.stream, output->notable, entry_actions->array[cache->ats.array[at_j]], output->notable);
+                fl_print_format(" %[%S%]", output->to.stream, output->notable, entry_actions->array[cache->ats.array[at_j]], output->notable);
               }
 
-              fl_print_string("%[' is%] %[required%]", output->to.stream, output->context, output->context, output->notable, output->notable);
-              fl_print_string(" %[and is in a%] %[failed%]", output->to.stream, output->context, output->context, output->notable, output->notable);
-              fl_print_string(" %[state, skipping execution.%]%c", output->to.stream, output->context, output->context, f_string_eol_s[0]);
+              fl_print_format("%[' is%] %[required%]", output->to.stream, output->context, output->context, output->notable, output->notable);
+              fl_print_format(" %[and is in a%] %[failed%]", output->to.stream, output->context, output->context, output->notable, output->notable);
+              fl_print_format(" %[state, skipping execution.%]%c", output->to.stream, output->context, output->context, f_string_eol_s[0]);
 
               controller_entry_error_print_cache(is_entry, *output, cache->action);
 
@@ -873,15 +873,15 @@ extern "C" {
 
               flockfile(output->to.stream);
 
-              fl_print_string("%c%[%SThe %s item action '%]", output->to.stream, f_string_eol_s[0], output->prefix ? output->prefix : f_string_empty_s, is_entry ? controller_string_entry_s : controller_string_exit_s);
-              fl_print_string("%[%Q%]", output->to.stream, output->notable, cache->action.name_action, output->notable);
+              fl_print_format("%c%[%SThe %s item action '%]", output->to.stream, f_string_eol_s[0], output->prefix ? output->prefix : f_string_empty_s, is_entry ? controller_string_entry_s : controller_string_exit_s);
+              fl_print_format("%[%Q%]", output->to.stream, output->notable, cache->action.name_action, output->notable);
 
               if (entry_action->parameters.used) {
-                fl_print_string(" %[%S%]", output->to.stream, output->notable, entry_actions->array[cache->ats.array[at_j]], output->notable);
+                fl_print_format(" %[%S%]", output->to.stream, output->notable, entry_actions->array[cache->ats.array[at_j]], output->notable);
               }
 
-              fl_print_string(" %[is in a%] %[failed%]", output->to.stream, output->context, output->context, output->notable, output->notable);
-              fl_print_string(" %[state, skipping.%]%c", output->to.stream, output->context, output->context, f_string_eol_s[0]);
+              fl_print_format(" %[is in a%] %[failed%]", output->to.stream, output->context, output->context, output->notable, output->notable);
+              fl_print_format(" %[state, skipping.%]%c", output->to.stream, output->context, output->context, f_string_eol_s[0]);
 
               controller_entry_error_print_cache(is_entry, *output, cache->action);
 
@@ -902,9 +902,9 @@ extern "C" {
 
                 flockfile(global->main->output.stream);
 
-                fl_print_string("%cWaiting before processing %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
-                fl_print_string("%[%s%]", global->main->output.stream, global->main->context.set.title, controller_string_ready_s, global->main->context.set.title);
-                fl_print_string("'.%c", global->main->output.stream, f_string_eol_s[0]);
+                fl_print_format("%cWaiting before processing %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
+                fl_print_format("%[%s%]", global->main->output.stream, global->main->context.set.title, controller_string_ready_s, global->main->context.set.title);
+                fl_print_format("'.%c", global->main->output.stream, f_string_eol_s[0]);
 
                 funlockfile(global->main->output.stream);
 
@@ -924,9 +924,9 @@ extern "C" {
 
                 flockfile(global->main->output.stream);
 
-                fl_print_string("%cWaiting before processing %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
-                fl_print_string("%[%s%]", global->main->output.stream, global->main->context.set.title, controller_string_ready_s, global->main->context.set.title);
-                fl_print_string("'.%c", global->main->output.stream, f_string_eol_s[0]);
+                fl_print_format("%cWaiting before processing %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
+                fl_print_format("%[%s%]", global->main->output.stream, global->main->context.set.title, controller_string_ready_s, global->main->context.set.title);
+                fl_print_format("'.%c", global->main->output.stream, f_string_eol_s[0]);
 
                 funlockfile(global->main->output.stream);
 
@@ -948,9 +948,9 @@ extern "C" {
 
               flockfile(global->main->output.stream);
 
-              fl_print_string("%cIgnoring %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
-              fl_print_string("%[%s%]", global->main->output.stream, global->main->context.set.title, controller_string_ready_s, global->main->context.set.title);
-              fl_print_string("', state already is ready.%c", global->main->output.stream, f_string_eol_s[0]);
+              fl_print_format("%cIgnoring %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
+              fl_print_format("%[%s%]", global->main->output.stream, global->main->context.set.title, controller_string_ready_s, global->main->context.set.title);
+              fl_print_format("', state already is ready.%c", global->main->output.stream, f_string_eol_s[0]);
 
               funlockfile(global->main->output.stream);
 
@@ -967,9 +967,9 @@ extern "C" {
 
               flockfile(global->main->error.to.stream);
 
-              fl_print_string("%c%[Invalid %s item index '%]", global->main->error.to.stream, f_string_eol_s[0], global->main->error.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global->main->error.context);
-              fl_print_string("%[%ul%]", global->main->error.to.stream, global->main->error.notable, entry_action->number, global->main->error.notable);
-              fl_print_string("%[' detected.%]%c", global->main->error.to.stream, global->main->error.context, global->main->error.context, f_string_eol_s[0]);
+              fl_print_format("%c%[Invalid %s item index '%]", global->main->error.to.stream, f_string_eol_s[0], global->main->error.context, is_entry ? controller_string_entry_s : controller_string_exit_s, global->main->error.context);
+              fl_print_format("%[%un%]", global->main->error.to.stream, global->main->error.notable, entry_action->number, global->main->error.notable);
+              fl_print_format("%[' detected.%]%c", global->main->error.to.stream, global->main->error.context, global->main->error.context, f_string_eol_s[0]);
 
               controller_entry_error_print_cache(is_entry, global->main->error, cache->action);
 
@@ -1018,9 +1018,9 @@ extern "C" {
 
               flockfile(global->main->output.stream);
 
-              fl_print_string("%cProcessing %s item '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
-              fl_print_string("%[%Q%]", global->main->output.stream, global->main->context.set.title, cache->action.name_item, global->main->context.set.title);
-              fl_print_string("'.%c", global->main->output.stream, f_string_eol_s[0]);
+              fl_print_format("%cProcessing %s item '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
+              fl_print_format("%[%Q%]", global->main->output.stream, global->main->context.set.title, cache->action.name_item, global->main->context.set.title);
+              fl_print_format("'.%c", global->main->output.stream, f_string_eol_s[0]);
 
               funlockfile(global->main->output.stream);
 
@@ -1078,9 +1078,9 @@ extern "C" {
 
               flockfile(global->main->output.stream);
 
-              fl_print_string("%c%s %s item rule '", global->main->output.stream, f_string_eol_s[0], entry_action->type == controller_entry_action_type_consider ? "Considering" : "Processing", is_entry ? controller_string_entry_s : controller_string_exit_s);
-              fl_print_string("%[%Q%]", global->main->output.stream, global->main->context.set.title, alias_rule, global->main->context.set.title);
-              fl_print_string("'.%c", global->main->output.stream, f_string_eol_s[0]);
+              fl_print_format("%c%s %s item rule '", global->main->output.stream, f_string_eol_s[0], entry_action->type == controller_entry_action_type_consider ? "Considering" : "Processing", is_entry ? controller_string_entry_s : controller_string_exit_s);
+              fl_print_format("%[%Q%]", global->main->output.stream, global->main->context.set.title, alias_rule, global->main->context.set.title);
+              fl_print_format("'.%c", global->main->output.stream, f_string_eol_s[0]);
 
               funlockfile(global->main->output.stream);
 
@@ -1212,18 +1212,18 @@ extern "C" {
 
               flockfile(global->main->output.stream);
 
-              fl_print_string("%c%s is executing '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
+              fl_print_format("%c%s is executing '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
 
               for (f_array_length_t k = 0; k < entry_action->parameters.used; ++k) {
 
-                fl_print_string("%[%Q%]", global->main->output.stream, global->main->context.set.title, entry_action->parameters.array[k], global->main->context.set.title);
+                fl_print_format("%[%Q%]", global->main->output.stream, global->main->context.set.title, entry_action->parameters.array[k], global->main->context.set.title);
 
                 if (k + 1 < entry_action->parameters.used) {
                   f_print_character(f_string_space_s[0], global->main->output.stream);
                 }
               } // for
 
-              fl_print_string("'.%c", global->main->output.stream, f_string_eol_s[0]);
+              fl_print_format("'.%c", global->main->output.stream, f_string_eol_s[0]);
 
               funlockfile(global->main->output.stream);
 
@@ -1248,9 +1248,9 @@ extern "C" {
 
                 flockfile(global->main->error.to.stream);
 
-                fl_print_string("%c%[%SExecution failed, unable to find program or script '%]", global->main->error.to.stream, f_string_eol_s[0], global->main->error.context, global->main->error.prefix ? global->main->error.prefix : f_string_empty_s, global->main->error.context);
-                fl_print_string("%[%Q%]", global->main->error.to.stream, global->main->error.notable, entry_action->parameters.array[0], global->main->error.notable);
-                fl_print_string("$['.%]%c", global->main->error.to.stream, global->main->error.context, global->main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SExecution failed, unable to find program or script '%]", global->main->error.to.stream, f_string_eol_s[0], global->main->error.context, global->main->error.prefix ? global->main->error.prefix : f_string_empty_s, global->main->error.context);
+                fl_print_format("%[%Q%]", global->main->error.to.stream, global->main->error.notable, entry_action->parameters.array[0], global->main->error.notable);
+                fl_print_format("$['.%]%c", global->main->error.to.stream, global->main->error.context, global->main->error.context, f_string_eol_s[0]);
 
                 controller_entry_error_print_cache(is_entry, global->main->error, cache->action);
 
@@ -1271,9 +1271,9 @@ extern "C" {
 
               flockfile(global->main->error.to.stream);
 
-              fl_print_string("%c%[%SExecution failed with return value of '%]", global->main->error.to.stream, f_string_eol_s[0], global->main->error.context, global->main->error.prefix ? global->main->error.prefix : f_string_empty_s, global->main->error.context);
-              fl_print_string("%[%i%]", global->main->error.to.stream, global->main->error.notable, result, global->main->error.notable);
-              fl_print_string("$['.%]%c", global->main->error.to.stream, global->main->error.context, global->main->error.context, f_string_eol_s[0]);
+              fl_print_format("%c%[%SExecution failed with return value of '%]", global->main->error.to.stream, f_string_eol_s[0], global->main->error.context, global->main->error.prefix ? global->main->error.prefix : f_string_empty_s, global->main->error.context);
+              fl_print_format("%[%i%]", global->main->error.to.stream, global->main->error.notable, result, global->main->error.notable);
+              fl_print_format("$['.%]%c", global->main->error.to.stream, global->main->error.context, global->main->error.context, f_string_eol_s[0]);
 
               controller_entry_error_print_cache(is_entry, global->main->error, cache->action);
 
@@ -1307,10 +1307,10 @@ extern "C" {
 
               flockfile(global->main->output.stream);
 
-              fl_print_string("%cProcessing %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
-              fl_print_string("%[%s%]' setting '", global->main->output.stream, global->main->context.set.title, controller_string_timeout_s, global->main->context.set.title);
-              fl_print_string("%[%S%]' to '", global->main->output.stream, global->main->context.set.important, code, global->main->context.set.important);
-              fl_print_string("%[%ul%]' MegaTime (milliseconds).%c", global->main->output.stream, global->main->context.set.important, entry_action->number, global->main->context.set.important, f_string_eol_s[0]);
+              fl_print_format("%cProcessing %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
+              fl_print_format("%[%s%]' setting '", global->main->output.stream, global->main->context.set.title, controller_string_timeout_s, global->main->context.set.title);
+              fl_print_format("%[%S%]' to '", global->main->output.stream, global->main->context.set.important, code, global->main->context.set.important);
+              fl_print_format("%[%un%]' MegaTime (milliseconds).%c", global->main->output.stream, global->main->context.set.important, entry_action->number, global->main->context.set.important, f_string_eol_s[0]);
 
               funlockfile(global->main->output.stream);
 
@@ -1336,7 +1336,7 @@ extern "C" {
 
               flockfile(global->main->error.to.stream);
 
-              fl_print_string("%c%[%SFailsafe may not be specified when running in failsafe, ignoring.%]%c", global->main->warning.to.stream, f_string_eol_s[0], global->main->warning.context, global->main->warning.prefix ? global->main->warning.prefix : f_string_empty_s, global->main->warning.context, f_string_eol_s[0]);
+              fl_print_format("%c%[%SFailsafe may not be specified when running in failsafe, ignoring.%]%c", global->main->warning.to.stream, f_string_eol_s[0], global->main->warning.context, global->main->warning.prefix ? global->main->warning.prefix : f_string_empty_s, global->main->warning.context, f_string_eol_s[0]);
 
               controller_entry_error_print_cache(is_entry, global->main->warning, cache->action);
 
@@ -1354,9 +1354,9 @@ extern "C" {
 
                 flockfile(global->main->error.to.stream);
 
-                fl_print_string("%c%[%SInvalid %s item index '%]", global->main->error.to.stream, f_string_eol_s[0], global->main->error.context, global->main->error.prefix ? global->main->error.prefix : f_string_empty_s, is_entry ? controller_string_entry_s : controller_string_exit_s, global->main->error.context);
-                fl_print_string("%[%ul%]", global->main->error.to.stream, global->main->error.notable, entry_action->number, global->main->error.notable);
-                fl_print_string("%[' detected.%]%c", global->main->error.to.stream, global->main->error.context, global->main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SInvalid %s item index '%]", global->main->error.to.stream, f_string_eol_s[0], global->main->error.context, global->main->error.prefix ? global->main->error.prefix : f_string_empty_s, is_entry ? controller_string_entry_s : controller_string_exit_s, global->main->error.context);
+                fl_print_format("%[%un%]", global->main->error.to.stream, global->main->error.notable, entry_action->number, global->main->error.notable);
+                fl_print_format("%[' detected.%]%c", global->main->error.to.stream, global->main->error.context, global->main->error.context, f_string_eol_s[0]);
 
                 controller_entry_error_print_cache(is_entry, global->main->error, cache->action);
 
@@ -1377,10 +1377,10 @@ extern "C" {
 
                   flockfile(global->main->output.stream);
 
-                  fl_print_string("%cProcessing %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
-                  fl_print_string("%[%s%]' setting value to '", global->main->output.stream, global->main->context.set.title, controller_string_failsafe_s, global->main->context.set.title);
-                  fl_print_string("%[%Q%]", global->main->output.stream, global->main->context.set.important, entry->items.array[global->setting->failsafe_item_id].name, global->main->context.set.important);
-                  fl_print_string("'.%c", global->main->output.stream, f_string_eol_s[0]);
+                  fl_print_format("%cProcessing %s item action '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
+                  fl_print_format("%[%s%]' setting value to '", global->main->output.stream, global->main->context.set.title, controller_string_failsafe_s, global->main->context.set.title);
+                  fl_print_format("%[%Q%]", global->main->output.stream, global->main->context.set.important, entry->items.array[global->setting->failsafe_item_id].name, global->main->context.set.important);
+                  fl_print_format("'.%c", global->main->output.stream, f_string_eol_s[0]);
 
                   funlockfile(global->main->output.stream);
 
@@ -1458,9 +1458,9 @@ extern "C" {
 
       flockfile(global->main->output.stream);
 
-      fl_print_string("%cDone processing %s item '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
-      fl_print_string("%[%s%]", global->main->output.stream, global->main->context.set.title, controller_string_main_s, global->main->context.set.title);
-      fl_print_string("'.%c", global->main->output.stream, f_string_eol_s[0]);
+      fl_print_format("%cDone processing %s item '", global->main->output.stream, f_string_eol_s[0], is_entry ? controller_string_entry_s : controller_string_exit_s);
+      fl_print_format("%[%s%]", global->main->output.stream, global->main->context.set.title, controller_string_main_s, global->main->context.set.title);
+      fl_print_format("'.%c", global->main->output.stream, f_string_eol_s[0]);
 
       // failsafe should not print the extra newline because the failure exit from controller_main should handle this.
       if (!failsafe) {
index 66c2f54e50d3ca2021ae1dd6d4ffcad77c028d70..04915f13f0406a52911c36246851f2824827c970 100644 (file)
@@ -331,9 +331,9 @@ extern "C" {
         if (global.main->warning.verbosity == f_console_verbosity_debug) {
           flockfile(global.main->warning.to.stream);
 
-          fl_print_string("%c%[%SUnknown %s item action '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->warning.context);
-          fl_print_string("%[%S%]'", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_action, global.main->warning.notable);
-          fl_print_string("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SUnknown %s item action '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->warning.context);
+          fl_print_format("%[%S%]'", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_action, global.main->warning.notable);
+          fl_print_format("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
 
           controller_entry_error_print_cache(is_entry, global.main->warning, cache->action);
 
@@ -375,27 +375,27 @@ extern "C" {
         if (global.main->error.verbosity != f_console_verbosity_quiet) {
           flockfile(global.main->error.to.stream);
 
-          fl_print_string("%c%[%SThe %s item action '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
-          fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.context, cache->action.name_action, global.main->error.context);
-          fl_print_string("%[' requires ", global.main->error.to.stream, global.main->error.context);
+          fl_print_format("%c%[%SThe %s item action '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
+          fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.context, cache->action.name_action, global.main->error.context);
+          fl_print_format("%[' requires ", global.main->error.to.stream, global.main->error.context);
 
           if (at_least == at_most) {
             f_print_terminated("exactly ", global.main->error.to.stream);
           }
 
-          fl_print_string("%]%[%ul%]", global.main->error.to.stream, global.main->error.context, global.main->error.notable, at_least, global.main->error.notable);
+          fl_print_format("%]%[%un%]", global.main->error.to.stream, global.main->error.context, global.main->error.notable, at_least, global.main->error.notable);
 
           if (action->type == controller_entry_action_type_consider || controller_entry_action_type_is_rule(action->type)) {
-            fl_print_string("%[' or more parameters.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%[' or more parameters.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
           }
           else {
             if (at_least == at_most) {
-              fl_print_string("%[' parameters.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+              fl_print_format("%[' parameters.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
             }
             else {
-              fl_print_string("%[ to %]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-              fl_print_string("%[%ul%]", global.main->error.to.stream, global.main->error.notable, at_most, global.main->error.notable);
-              fl_print_string("%[' parameters.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+              fl_print_format("%[ to %]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+              fl_print_format("%[%un%]", global.main->error.to.stream, global.main->error.notable, at_most, global.main->error.notable);
+              fl_print_format("%[' parameters.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
             }
           }
 
@@ -480,7 +480,7 @@ extern "C" {
               }
 
               if (global.main->error.verbosity != f_console_verbosity_quiet) {
-                fll_print_string("%c%[%SThe %s item action must not have an empty string for a path (the first parameter).%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context, f_string_eol_s[0]);
+                fll_print_format("%c%[%SThe %s item action must not have an empty string for a path (the first parameter).%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context, f_string_eol_s[0]);
               }
             }
 
@@ -523,11 +523,11 @@ extern "C" {
 
                     flockfile(global.main->error.to.stream);
 
-                    fl_print_string("%c%[%SThe %s item action second parameter '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
-                    fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[1], global.main->error.notable);
-                    fl_print_string("%[' must be a base path name, such as '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                    fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_path, global.main->error.notable);
-                    fl_print_string("%['.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                    fl_print_format("%c%[%SThe %s item action second parameter '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
+                    fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[1], global.main->error.notable);
+                    fl_print_format("%[' must be a base path name, such as '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                    fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_path, global.main->error.notable);
+                    fl_print_format("%['.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                     funlockfile(global.main->error.to.stream);
                   }
@@ -548,7 +548,7 @@ extern "C" {
               }
 
               if (global.main->error.verbosity != f_console_verbosity_quiet) {
-                fll_print_string("%c%[%SThe %s item action must not have an empty string for a rule name (the second parameter).%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context, f_string_eol_s[0]);
+                fll_print_format("%c%[%SThe %s item action must not have an empty string for a rule name (the second parameter).%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context, f_string_eol_s[0]);
               }
             }
 
@@ -575,15 +575,15 @@ extern "C" {
                 if (global.main->error.verbosity != f_console_verbosity_quiet) {
                   flockfile(global.main->error.to.stream);
 
-                  fl_print_string("%c%[%SThe %s item action third parameter (and beyond) must be one of '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
-                  fl_print_string("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_asynchronous_s, global.main->error.notable);
-                  fl_print_string("%[', '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                  fl_print_string("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_require_s, global.main->error.notable);
-                  fl_print_string("%[', or '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                  fl_print_string("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_wait_s, global.main->error.notable);
-                  fl_print_string("%[' but instead has '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                  fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[j], global.main->error.notable);
-                  fl_print_string("%['.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                  fl_print_format("%c%[%SThe %s item action third parameter (and beyond) must be one of '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
+                  fl_print_format("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_asynchronous_s, global.main->error.notable);
+                  fl_print_format("%[', '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                  fl_print_format("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_require_s, global.main->error.notable);
+                  fl_print_format("%[', or '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                  fl_print_format("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_wait_s, global.main->error.notable);
+                  fl_print_format("%[' but instead has '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                  fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[j], global.main->error.notable);
+                  fl_print_format("%['.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                   funlockfile(global.main->error.to.stream);
                 }
@@ -601,9 +601,9 @@ extern "C" {
               if (global.main->error.verbosity != f_console_verbosity_quiet) {
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%SThe %s item action may not specify the reserved item '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
-                fl_print_string("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_main_s, global.main->error.notable);
-                fl_print_string("%['.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SThe %s item action may not specify the reserved item '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
+                fl_print_format("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_main_s, global.main->error.notable);
+                fl_print_format("%['.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                 funlockfile(global.main->error.to.stream);
               }
@@ -630,15 +630,15 @@ extern "C" {
               if (global.main->error.verbosity != f_console_verbosity_quiet) {
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%SThe %s item action must have one of '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
-                fl_print_string("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_kill_s, global.main->error.notable);
-                fl_print_string("%[', '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                fl_print_string("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_start_s, global.main->error.notable);
-                fl_print_string("%[', or '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                fl_print_string("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_stop_s, global.main->error.notable);
-                fl_print_string("%[' but instead has '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[0], global.main->error.notable);
-                fl_print_string("%['.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SThe %s item action must have one of '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
+                fl_print_format("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_kill_s, global.main->error.notable);
+                fl_print_format("%[', '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                fl_print_format("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_start_s, global.main->error.notable);
+                fl_print_format("%[', or '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                fl_print_format("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_stop_s, global.main->error.notable);
+                fl_print_format("%[' but instead has '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[0], global.main->error.notable);
+                fl_print_format("%['.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                 funlockfile(global.main->error.to.stream);
               }
@@ -669,9 +669,9 @@ extern "C" {
                 if (global.main->error.verbosity != f_console_verbosity_quiet) {
                   flockfile(global.main->error.to.stream);
 
-                  fl_print_string("%c%[%SThe %s item action parameter '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
-                  fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[1], global.main->error.notable);
-                  fl_print_string("%[' is not a valid supported number.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                  fl_print_format("%c%[%SThe %s item action parameter '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
+                  fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[1], global.main->error.notable);
+                  fl_print_format("%[' is not a valid supported number.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                   funlockfile(global.main->error.to.stream);
                 }
@@ -689,11 +689,11 @@ extern "C" {
                 if (global.main->error.verbosity != f_console_verbosity_quiet) {
                   flockfile(global.main->error.to.stream);
 
-                  fl_print_string("%c%[%SThe %s item action may only have '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
-                  fl_print_string("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_wait_s, global.main->error.notable);
-                  fl_print_string("%[' but instead has '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                  fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[0], global.main->error.notable);
-                  fl_print_string("%['.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                  fl_print_format("%c%[%SThe %s item action may only have '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
+                  fl_print_format("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_wait_s, global.main->error.notable);
+                  fl_print_format("%[' but instead has '%]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                  fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[0], global.main->error.notable);
+                  fl_print_format("%['.%]", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                   funlockfile(global.main->error.to.stream);
                 }
@@ -731,30 +731,30 @@ extern "C" {
 #ifndef _di_controller_entry_error_print_cache_
   void controller_entry_error_print_cache(const bool is_entry, const fll_error_print_t output, const controller_cache_action_t cache) {
 
-    fl_print_string("%c%[%SWhile processing ", output.to.stream, f_string_eol_s[0], output.context, output.prefix);
+    fl_print_format("%c%[%SWhile processing ", output.to.stream, f_string_eol_s[0], output.context, output.prefix);
 
     if (cache.name_action.used) {
-      fl_print_string("action '%]", output.to.stream, output.context);
-      fl_print_string("%[%Q%]", output.to.stream, output.context, cache.name_action, output.context);
-      fl_print_string("%[' on line%] ", output.to.stream, output.context, output.context);
-      fl_print_string("%[%ul%]", output.to.stream, output.notable, cache.line_action, output.notable);
-      fl_print_string("%[ for ", output.to.stream, output.context);
+      fl_print_format("action '%]", output.to.stream, output.context);
+      fl_print_format("%[%Q%]", output.to.stream, output.context, cache.name_action, output.context);
+      fl_print_format("%[' on line%] ", output.to.stream, output.context, output.context);
+      fl_print_format("%[%un%]", output.to.stream, output.notable, cache.line_action, output.notable);
+      fl_print_format("%[ for ", output.to.stream, output.context);
     }
 
     if (cache.name_item.used) {
-      fl_print_string("%s item '%]", output.to.stream, is_entry ? controller_string_entry_s : controller_string_exit_s, output.context);
-      fl_print_string("%[%Q%]", output.to.stream, output.notable, cache.name_item, output.notable);
-      fl_print_string("%[' on line%] ", output.to.stream, output.context, output.context);
-      fl_print_string("%[%ul%]", output.to.stream, output.notable, cache.line_item, output.notable);
-      fl_print_string("%[ for ", output.to.stream, output.context);
+      fl_print_format("%s item '%]", output.to.stream, is_entry ? controller_string_entry_s : controller_string_exit_s, output.context);
+      fl_print_format("%[%Q%]", output.to.stream, output.notable, cache.name_item, output.notable);
+      fl_print_format("%[' on line%] ", output.to.stream, output.context, output.context);
+      fl_print_format("%[%un%]", output.to.stream, output.notable, cache.line_item, output.notable);
+      fl_print_format("%[ for ", output.to.stream, output.context);
     }
 
     if (cache.name_file.used) {
-      fl_print_string("%s file '%]", output.to.stream, is_entry ? controller_string_entry_s : controller_string_exit_s, output.context);
-      fl_print_string("%[%Q%]%['", output.to.stream, output.notable, cache.name_file, output.notable, output.context);
+      fl_print_format("%s file '%]", output.to.stream, is_entry ? controller_string_entry_s : controller_string_exit_s, output.context);
+      fl_print_format("%[%Q%]%['", output.to.stream, output.notable, cache.name_file, output.notable, output.context);
     }
 
-    fl_print_string(".%]%c", output.to.stream, output.context, f_string_eol_s[0]);
+    fl_print_format(".%]%c", output.to.stream, output.context, f_string_eol_s[0]);
   }
 #endif // _di_controller_entry_error_print_cache_
 
@@ -858,7 +858,7 @@ extern "C" {
         if (global.main->error.verbosity != f_console_verbosity_quiet) {
           f_thread_mutex_lock(&global.thread->lock.print);
 
-          fll_print_string("%c%[%SThe %s file is empty.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context, f_string_eol_s[0]);
+          fll_print_format("%c%[%SThe %s file is empty.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context, f_string_eol_s[0]);
 
           controller_print_unlock_flush(global.main->error.to.stream, &global.thread->lock.print);
         }
@@ -940,9 +940,9 @@ extern "C" {
 
                 flockfile(global.main->warning.to.stream);
 
-                fl_print_string("%c%[%SIgnoring duplicate %s item '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->warning.context);
-                fl_print_string("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_file, global.main->warning.notable);
-                fl_print_string("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SIgnoring duplicate %s item '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->warning.context);
+                fl_print_format("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_file, global.main->warning.notable);
+                fl_print_format("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
 
                 controller_entry_error_print_cache(is_entry, global.main->warning, cache->action);
 
@@ -1025,9 +1025,9 @@ extern "C" {
 
               flockfile(global.main->error.to.stream);
 
-              fl_print_string("%c%[%SThe required %s item '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
-              fl_print_string("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_main_s, global.main->error.notable);
-              fl_print_string("%[' was not found.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+              fl_print_format("%c%[%SThe required %s item '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
+              fl_print_format("%[%s%]", global.main->error.to.stream, global.main->error.notable, controller_string_main_s, global.main->error.notable);
+              fl_print_format("%[' was not found.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
               funlockfile(global.main->error.to.stream);
 
@@ -1090,9 +1090,9 @@ extern "C" {
 
                       flockfile(global.main->error.to.stream);
 
-                      fl_print_string("%c%[%SThe required %s item '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
-                      fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[0], global.main->error.notable);
-                      fl_print_string("%[' does not exist.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                      fl_print_format("%c%[%SThe required %s item '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
+                      fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, action->parameters.array[0], global.main->error.notable);
+                      fl_print_format("%[' does not exist.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                       controller_entry_error_print_cache(is_entry, global.main->error, cache->action);
 
@@ -1186,11 +1186,11 @@ extern "C" {
           if (global.main->error.verbosity != f_console_verbosity_quiet) {
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SThe %s item setting '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
-            fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, cache->action.name_action, global.main->error.notable);
-            fl_print_string("%[' requires exactly %]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-            fl_print_string("%[1%]", global.main->error.to.stream, global.main->error.notable, global.main->error.notable);
-            fl_print_string("%[' parameter.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SThe %s item setting '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->error.context);
+            fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, cache->action.name_action, global.main->error.notable);
+            fl_print_format("%[' requires exactly %]", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+            fl_print_format("%[1%]", global.main->error.to.stream, global.main->error.notable, global.main->error.notable);
+            fl_print_format("%[' parameter.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
             funlockfile(global.main->error.to.stream);
           }
@@ -1208,9 +1208,9 @@ extern "C" {
           if (global.main->warning.verbosity == f_console_verbosity_debug) {
             flockfile(global.main->warning.to.stream);
 
-            fl_print_string("%c%[%Sfor %s item setting '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->warning.context);
-            fl_print_string("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_action, global.main->warning.notable);
-            fl_print_string("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%Sfor %s item setting '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->warning.context);
+            fl_print_format("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_action, global.main->warning.notable);
+            fl_print_format("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
 
             funlockfile(global.main->warning.to.stream);
 
@@ -1224,9 +1224,9 @@ extern "C" {
         if (global.main->warning.verbosity == f_console_verbosity_debug) {
           flockfile(global.main->warning.to.stream);
 
-          fl_print_string("%c%[%SUnknown %s item setting '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->warning.context);
-          fl_print_string("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_action, global.main->warning.notable);
-          fl_print_string("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SUnknown %s item setting '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, is_entry ? controller_string_entry_s : controller_string_exit_s, global.main->warning.context);
+          fl_print_format("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_action, global.main->warning.notable);
+          fl_print_format("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
 
           funlockfile(global.main->warning.to.stream);
 
index 5bb9a11859f0e79bd89bd85b22f6ce9be50894f5..fb428cfe1c8abc81028fdd4e687ab2b0341b132e 100644 (file)
@@ -457,7 +457,7 @@ extern "C" {
 
         flockfile(global.main->warning.to.stream);
 
-        fl_print_string("%c%[%SAction is empty, nothing to do.%]%c", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context, f_string_eol_s[0]);
+        fl_print_format("%c%[%SAction is empty, nothing to do.%]%c", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context, f_string_eol_s[0]);
 
         controller_rule_error_print_cache(global.main->warning, cache->action, F_true);
 
@@ -691,29 +691,29 @@ extern "C" {
   void controller_rule_error_print_cache(const fll_error_print_t output, const controller_cache_action_t cache, const bool item) {
 
     if (output.verbosity != f_console_verbosity_quiet) {
-      fl_print_string("%c%[%SWhile processing ", output.to.stream, f_string_eol_s[0], output.context, output.prefix);
+      fl_print_format("%c%[%SWhile processing ", output.to.stream, f_string_eol_s[0], output.context, output.prefix);
 
       if (cache.name_action.used) {
-        fl_print_string("%s '%]", output.to.stream, output.context, item ? controller_string_action_s : controller_string_value_s, output.context);
-        fl_print_string("%[%Q%]", output.to.stream, output.notable, cache.name_action, output.notable);
-        fl_print_string("%[ on line %]", output.to.stream, output.context, output.context);
-        fl_print_string("%[%ul%]", output.to.stream, output.notable, cache.line_action, output.notable);
-        fl_print_string("%[ for ", output.to.stream, output.context);
+        fl_print_format("%s '%]", output.to.stream, output.context, item ? controller_string_action_s : controller_string_value_s, output.context);
+        fl_print_format("%[%Q%]", output.to.stream, output.notable, cache.name_action, output.notable);
+        fl_print_format("%[ on line %]", output.to.stream, output.context, output.context);
+        fl_print_format("%[%un%]", output.to.stream, output.notable, cache.line_action, output.notable);
+        fl_print_format("%[ for ", output.to.stream, output.context);
       }
 
       if (cache.name_item.used) {
-        fl_print_string("rule %s '%]", output.to.stream, output.context, item ? controller_string_item_s : controller_string_setting_s, output.context);
-        fl_print_string("%[%Q%]", output.to.stream, output.notable, cache.name_item, output.notable);
-        fl_print_string("%[ on line %]", output.to.stream, output.context, output.context);
-        fl_print_string("%[%ul%]", output.to.stream, output.notable, cache.line_item, output.notable);
-        fl_print_string("%[ for ", output.to.stream, output.context);
+        fl_print_format("rule %s '%]", output.to.stream, output.context, item ? controller_string_item_s : controller_string_setting_s, output.context);
+        fl_print_format("%[%Q%]", output.to.stream, output.notable, cache.name_item, output.notable);
+        fl_print_format("%[ on line %]", output.to.stream, output.context, output.context);
+        fl_print_format("%[%un%]", output.to.stream, output.notable, cache.line_item, output.notable);
+        fl_print_format("%[ for ", output.to.stream, output.context);
       }
 
       if (cache.name_file.used) {
-        fl_print_string("rule file '%]%[%Q%]%['", output.to.stream, output.context, output.notable, cache.name_file, output.notable, output.context);
+        fl_print_format("rule file '%]%[%Q%]%['", output.to.stream, output.context, output.notable, cache.name_file, output.notable, output.context);
       }
 
-      fl_print_string(".%]%c", output.to.stream, output.context, f_string_eol_s[0]);
+      fl_print_format(".%]%c", output.to.stream, output.context, f_string_eol_s[0]);
     }
   }
 #endif // _di_controller_rule_error_print_cache_
@@ -737,11 +737,11 @@ extern "C" {
     if (output.verbosity != f_console_verbosity_quiet) {
       flockfile(output.to.stream);
 
-      fl_print_string("%c%[%SThe %s '%]", output.to.stream, f_string_eol_s[0], output.context, output.prefix, script_is ? controller_string_script_s : controller_string_program_s, output.context);
-      fl_print_string("%[%S%]", output.to.stream, output.notable, name, output.notable);
+      fl_print_format("%c%[%SThe %s '%]", output.to.stream, f_string_eol_s[0], output.context, output.prefix, script_is ? controller_string_script_s : controller_string_program_s, output.context);
+      fl_print_format("%[%S%]", output.to.stream, output.notable, name, output.notable);
 
       if (status == F_control_group || status == F_limit || status == F_processor || status == F_schedule) {
-        fl_print_string("%[' failed due to a failure to setup the '%]", output.to.stream, output.context, output.context);
+        fl_print_format("%[' failed due to a failure to setup the '%]", output.to.stream, output.context, output.context);
         fl_print_color_before(output.notable, output.to.stream);
 
         if (status == F_control_group) {
@@ -758,15 +758,15 @@ extern "C" {
         }
 
         fl_print_color_after(output.notable, output.to.stream);
-        fl_print_string("%['.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
+        fl_print_format("%['.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
       }
       else if (code) {
-        fl_print_string("%[' failed with the exit code '%]", output.to.stream, output.context, output.context);
-        fl_print_string("%[%i%]", output.to.stream, output.notable, code, output.notable);
-        fl_print_string("%['.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
+        fl_print_format("%[' failed with the exit code '%]", output.to.stream, output.context, output.context);
+        fl_print_format("%[%i%]", output.to.stream, output.notable, code, output.notable);
+        fl_print_format("%['.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
       }
       else {
-        fl_print_string("%[' failed.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
+        fl_print_format("%[' failed.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
       }
 
       funlockfile(output.to.stream);
@@ -780,9 +780,9 @@ extern "C" {
     if (output.verbosity != f_console_verbosity_quiet) {
       flockfile(output.to.stream);
 
-      fl_print_string("%c%[%SThe %s '%]", output.to.stream, f_string_eol_s[0], output.context, output.prefix, script_is ? controller_string_script_s : controller_string_program_s, output.context);
-      fl_print_string("%[%S%]", output.to.stream, output.notable, name, output.notable);
-      fl_print_string("%[' could not be executed because it was not found.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
+      fl_print_format("%c%[%SThe %s '%]", output.to.stream, f_string_eol_s[0], output.context, output.prefix, script_is ? controller_string_script_s : controller_string_program_s, output.context);
+      fl_print_format("%[%S%]", output.to.stream, output.notable, name, output.notable);
+      fl_print_format("%[' could not be executed because it was not found.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
 
       funlockfile(output.to.stream);
     }
@@ -795,9 +795,9 @@ extern "C" {
     if (output.verbosity != f_console_verbosity_quiet) {
       flockfile(output.to.stream);
 
-      fl_print_string("%c%[%SThe %s rule '%]", output.to.stream, f_string_eol_s[0], output.context, output.prefix, need_want_wish, output.context);
-      fl_print_string("%[%S%]", output.to.stream, output.notable, value, output.notable);
-      fl_print_string("%[' %S.%]%c", output.to.stream, output.context, why, output.context, f_string_eol_s[0]);
+      fl_print_format("%c%[%SThe %s rule '%]", output.to.stream, f_string_eol_s[0], output.context, output.prefix, need_want_wish, output.context);
+      fl_print_format("%[%S%]", output.to.stream, output.notable, value, output.notable);
+      fl_print_format("%[' %S.%]%c", output.to.stream, output.context, why, output.context, f_string_eol_s[0]);
 
       funlockfile(output.to.stream);
     }
@@ -810,9 +810,9 @@ extern "C" {
     if (output.verbosity != f_console_verbosity_quiet) {
       flockfile(output.to.stream);
 
-      fl_print_string("%c%[%SThe rule '%]", output.to.stream, f_string_eol_s[0], output.context, output.prefix, output.context);
-      fl_print_string("%[%S%]", output.to.stream, output.notable, alias, output.notable);
-      fl_print_string("%[' is no longer loaded.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
+      fl_print_format("%c%[%SThe rule '%]", output.to.stream, f_string_eol_s[0], output.context, output.prefix, output.context);
+      fl_print_format("%[%S%]", output.to.stream, output.notable, alias, output.notable);
+      fl_print_format("%[' is no longer loaded.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
 
       funlockfile(output.to.stream);
     }
@@ -825,9 +825,9 @@ extern "C" {
     if (output.verbosity != f_console_verbosity_quiet) {
       flockfile(output.to.stream);
 
-      fl_print_string("%c%[%SThe rule '%]", output.to.stream, f_string_eol_s[0], output.context, output.prefix, output.context);
-      fl_print_string("%[%S%]", output.to.stream, output.notable, alias, output.notable);
-      fl_print_string("%[' is not designating a pid file.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
+      fl_print_format("%c%[%SThe rule '%]", output.to.stream, f_string_eol_s[0], output.context, output.prefix, output.context);
+      fl_print_format("%[%S%]", output.to.stream, output.notable, alias, output.notable);
+      fl_print_format("%[' is not designating a pid file.%]%c", output.to.stream, output.context, output.context, f_string_eol_s[0]);
 
       funlockfile(output.to.stream);
     }
@@ -1069,7 +1069,7 @@ extern "C" {
 
             flockfile(global.main->warning.to.stream);
 
-            fl_print_string("%c%[%SAction type is unknown, ignoring.%]%c", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SAction type is unknown, ignoring.%]%c", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->warning, process->cache.action, F_true);
 
@@ -1164,7 +1164,7 @@ extern "C" {
 
         flockfile(global.main->output.stream);
 
-        fl_print_string("%cSimulating execution of '%[", global.main->output.stream, f_string_eol_s[0], global.main->context.set.title);
+        fl_print_format("%cSimulating execution of '%[", global.main->output.stream, f_string_eol_s[0], global.main->context.set.title);
 
         if (program) {
           f_print_safely_terminated(program, global.main->output.stream);
@@ -1173,7 +1173,7 @@ extern "C" {
           f_print_dynamic_safely(arguments.array[0], global.main->output.stream);
         }
 
-        fl_print_string("%]' with the arguments: '%[", global.main->output.stream, global.main->context.set.title, global.main->context.set.important);
+        fl_print_format("%]' with the arguments: '%[", global.main->output.stream, global.main->context.set.title, global.main->context.set.important);
 
         for (f_array_length_t i = program ? 0 : 1; i < arguments.used; ++i) {
 
@@ -1184,8 +1184,8 @@ extern "C" {
           f_print_dynamic_safely(arguments.array[i], global.main->output.stream);
         } // for
 
-        fl_print_string("%]' from '", global.main->output.stream, global.main->context.set.important);
-        fl_print_string("%[%Q%]'.%c", global.main->output.stream, global.main->context.set.notable, process->rule.name, global.main->context.set.notable, f_string_eol_s[0]);
+        fl_print_format("%]' from '", global.main->output.stream, global.main->context.set.important);
+        fl_print_format("%[%Q%]'.%c", global.main->output.stream, global.main->context.set.notable, process->rule.name, global.main->context.set.notable, f_string_eol_s[0]);
 
         funlockfile(global.main->output.stream);
 
@@ -1421,7 +1421,7 @@ extern "C" {
 
         flockfile(global.main->error.to.stream);
 
-        fl_print_string("%cSimulating execution of '%[", global.main->error.to.stream, f_string_eol_s[0], global.main->context.set.title);
+        fl_print_format("%cSimulating execution of '%[", global.main->error.to.stream, f_string_eol_s[0], global.main->context.set.title);
 
         if (program) {
           f_print_safely_terminated(program, global.main->error.to.stream);
@@ -1430,7 +1430,7 @@ extern "C" {
           f_print_dynamic_safely(arguments.array[0], global.main->error.to.stream);
         }
 
-        fl_print_string("%]' with the arguments: '%[", global.main->error.to.stream, global.main->context.set.title, global.main->context.set.important);
+        fl_print_format("%]' with the arguments: '%[", global.main->error.to.stream, global.main->context.set.title, global.main->context.set.important);
 
         for (f_array_length_t i = program ? 0 : 1; i < arguments.used; ++i) {
 
@@ -1441,8 +1441,8 @@ extern "C" {
           f_print_dynamic_safely(arguments.array[i], global.main->error.to.stream);
         } // for
 
-        fl_print_string("%]' from '", global.main->error.to.stream, global.main->context.set.important);
-        fl_print_string("%[%Q%]'.%c", global.main->error.to.stream, global.main->context.set.notable, process->rule.name, global.main->context.set.notable, f_string_eol_s[0]);
+        fl_print_format("%]' from '", global.main->error.to.stream, global.main->context.set.important);
+        fl_print_format("%[%Q%]'.%c", global.main->error.to.stream, global.main->context.set.notable, process->rule.name, global.main->context.set.notable, f_string_eol_s[0]);
 
         funlockfile(global.main->error.to.stream);
 
@@ -1762,9 +1762,9 @@ extern "C" {
 
           flockfile(global.main->warning.to.stream);
 
-          fl_print_string("%c%[%SUnknown rule item action '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context);
-          fl_print_string("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_action, global.main->warning.notable);
-          fl_print_string("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SUnknown rule item action '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context);
+          fl_print_format("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_action, global.main->warning.notable);
+          fl_print_format("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
 
           controller_rule_error_print_cache(global.main->warning, cache->action, F_true);
 
@@ -1784,9 +1784,9 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SFSS Extended List is not allowed for the rule item action '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-            fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, cache->action.name_action, global.main->error.notable);
-            fl_print_string("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SFSS Extended List is not allowed for the rule item action '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+            fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, cache->action.name_action, global.main->error.notable);
+            fl_print_format("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
             funlockfile(global.main->error.to.stream);
 
@@ -1991,9 +1991,9 @@ extern "C" {
 
           flockfile(global.main->error.to.stream);
 
-          fl_print_string("%c%[%SUnsupported action type '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-          fl_print_string("%[%q%]", global.main->error.to.stream, global.main->error.notable, controller_rule_action_type_name(process->action), global.main->error.notable);
-          fl_print_string("%[' while attempting to execute rule.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SUnsupported action type '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+          fl_print_format("%[%q%]", global.main->error.to.stream, global.main->error.notable, controller_rule_action_type_name(process->action), global.main->error.notable);
+          fl_print_format("%[' while attempting to execute rule.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
           controller_rule_error_print_cache(global.main->error, process->cache.action, F_true);
 
@@ -2421,11 +2421,11 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SThe rule '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-            fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, process->rule.name, global.main->error.notable);
-            fl_print_string("%[' has no '%]", global.main->error.to.stream, global.main->error.context, process->rule.name, global.main->error.context);
-            fl_print_string("%[%q%]", global.main->error.to.stream, global.main->error.notable, controller_rule_action_type_name(process->action), global.main->error.notable);
-            fl_print_string("%[' action to execute.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SThe rule '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+            fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, process->rule.name, global.main->error.notable);
+            fl_print_format("%[' has no '%]", global.main->error.to.stream, global.main->error.context, process->rule.name, global.main->error.context);
+            fl_print_format("%[%q%]", global.main->error.to.stream, global.main->error.notable, controller_rule_action_type_name(process->action), global.main->error.notable);
+            fl_print_format("%[' action to execute.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, process->cache.action, F_true);
 
@@ -2868,9 +2868,9 @@ extern "C" {
 
               flockfile(global.main->error.to.stream);
 
-              fl_print_string("%c%[%SThe rule '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-              fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, process->rule.alias, global.main->error.notable);
-              fl_print_string("%[' is already on the execution dependency stack, this recursion is prohibited.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+              fl_print_format("%c%[%SThe rule '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+              fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, process->rule.alias, global.main->error.notable);
+              fl_print_format("%[' is already on the execution dependency stack, this recursion is prohibited.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
               controller_rule_error_print_cache(global.main->error, process->cache.action, F_true);
 
@@ -3246,9 +3246,9 @@ extern "C" {
 
               flockfile(global.main->warning.to.stream);
 
-              fl_print_string("%c%[%SUnknown rule item '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context);
-              fl_print_string("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_item, global.main->warning.notable);
-              fl_print_string("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
+              fl_print_format("%c%[%SUnknown rule item '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context);
+              fl_print_format("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_item, global.main->warning.notable);
+              fl_print_format("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
 
               controller_rule_error_print_cache(global.main->warning, cache->action, F_true);
 
@@ -3448,9 +3448,9 @@ extern "C" {
 
           flockfile(global.main->warning.to.stream);
 
-          fl_print_string("%c%[%SUnknown rule setting '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context);
-          fl_print_string("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_item, global.main->warning.notable);
-          fl_print_string("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SUnknown rule setting '%]", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context);
+          fl_print_format("%[%Q%]", global.main->warning.to.stream, global.main->warning.notable, cache->action.name_item, global.main->warning.notable);
+          fl_print_format("%['.%]%c", global.main->warning.to.stream, global.main->warning.context, global.main->warning.context, f_string_eol_s[0]);
 
           controller_rule_error_print_cache(global.main->warning, cache->action, F_false);
 
@@ -3475,7 +3475,7 @@ extern "C" {
 
           flockfile(global.main->warning.to.stream);
 
-          fl_print_string("%c%[%SEmpty rule setting.%]%c", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SEmpty rule setting.%]%c", global.main->warning.to.stream, f_string_eol_s[0], global.main->warning.context, global.main->warning.prefix, global.main->warning.context, f_string_eol_s[0]);
 
           controller_rule_error_print_cache(global.main->warning, cache->action, F_false);
 
@@ -3541,7 +3541,7 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SRule setting requires one or more Content.%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SRule setting requires one or more Content.%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -3605,14 +3605,14 @@ extern "C" {
                 flockfile(global.main->error.to.stream);
 
                 if (status == F_number_overflow || status == F_number_underflow) {
-                  fl_print_string("%c%[%SRule setting has an unsupported number '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                  fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[j], global.main->error.notable);
-                  fl_print_string("%[', the number is too large for this system.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                  fl_print_format("%c%[%SRule setting has an unsupported number '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                  fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[j], global.main->error.notable);
+                  fl_print_format("%[', the number is too large for this system.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
                 }
                 else {
-                  fl_print_string("%c%[%SRule setting has an invalid number '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                  fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[j], global.main->error.notable);
-                  fl_print_string("%[' only whole numbers are allowed for an affinity value.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                  fl_print_format("%c%[%SRule setting has an invalid number '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                  fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[j], global.main->error.notable);
+                  fl_print_format("%[' only whole numbers are allowed for an affinity value.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
                 }
 
                 controller_rule_error_print_cache(global.main->error, cache->action, F_false);
@@ -3662,7 +3662,7 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SRule setting requires exactly two Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SRule setting requires exactly two Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -3785,7 +3785,7 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SRule setting requires two or more Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SRule setting requires two or more Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
 
             // get the current line number within the settings item.
             cache->action.line_item = line_item;
@@ -3826,9 +3826,9 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SRule setting has an unknown option '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-            fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
-            fl_print_string("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SRule setting has an unknown option '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+            fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
+            fl_print_format("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -3919,7 +3919,7 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SRule setting requires three Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SRule setting requires three Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -3996,9 +3996,9 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SUnknown resource limit type '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-            fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, cache->action.name_action, global.main->error.notable);
-            fl_print_string("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SUnknown resource limit type '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+            fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, cache->action.name_action, global.main->error.notable);
+            fl_print_format("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, cache->action, F_true);
 
@@ -4029,7 +4029,7 @@ extern "C" {
 
               flockfile(global.main->error.to.stream);
 
-              fl_print_string("%c%[%SThe resource limit type is already specified%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+              fl_print_format("%c%[%SThe resource limit type is already specified%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
               controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -4097,14 +4097,14 @@ extern "C" {
                 flockfile(global.main->error.to.stream);
 
                 if (status == F_number_overflow || status == F_number_underflow) {
-                  fl_print_string("%c%[%SRule setting has an unsupported number'%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                  fl_print_string("%[%S%]", global.main->error.to.stream, global.main->error.notable, cache->content_actions.array[i].array[j], global.main->error.notable);
-                  fl_print_string("%[' the number is too large for this system.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                  fl_print_format("%c%[%SRule setting has an unsupported number'%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                  fl_print_format("%[%S%]", global.main->error.to.stream, global.main->error.notable, cache->content_actions.array[i].array[j], global.main->error.notable);
+                  fl_print_format("%[' the number is too large for this system.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
                 }
                 else {
-                  fl_print_string("%c%[%SRule setting has an invalid number'%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                  fl_print_string("%[%S%]", global.main->error.to.stream, global.main->error.notable, cache->content_actions.array[i].array[j], global.main->error.notable);
-                  fl_print_string("%[' only whole numbers are allowed for a resource limit value.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                  fl_print_format("%c%[%SRule setting has an invalid number'%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                  fl_print_format("%[%S%]", global.main->error.to.stream, global.main->error.notable, cache->content_actions.array[i].array[j], global.main->error.notable);
+                  fl_print_format("%[' only whole numbers are allowed for a resource limit value.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
                 }
 
                 controller_rule_error_print_cache(global.main->error, cache->action, F_false);
@@ -4173,7 +4173,7 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SRule setting requires exactly one Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SRule setting requires exactly one Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -4234,9 +4234,9 @@ extern "C" {
 
                   flockfile(global.main->error.to.stream);
 
-                  fl_print_string("%c%[%SRule setting has an invalid name '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                  fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, *setting_value, global.main->error.notable);
-                  fl_print_string("%[', there must be at least 1 graph character.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                  fl_print_format("%c%[%SRule setting has an invalid name '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                  fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, *setting_value, global.main->error.notable);
+                  fl_print_format("%[', there must be at least 1 graph character.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                   controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -4323,7 +4323,7 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SRule setting requires either one or two Content.'%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SRule setting requires either one or two Content.'%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -4376,9 +4376,9 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SRule setting has an unknown scheduler '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-            fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
-            fl_print_string("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SRule setting has an unknown scheduler '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+            fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
+            fl_print_format("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -4418,20 +4418,20 @@ extern "C" {
 
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%SRule setting has an invalid number '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[1], global.main->error.notable);
+                fl_print_format("%c%[%SRule setting has an invalid number '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[1], global.main->error.notable);
 
                 if (zero_only) {
-                  fl_print_string("%[', only%] ", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                  fl_print_string("%[0%]%[ is", global.main->error.to.stream, global.main->error.notable, global.main->error.notable, global.main->error.context);
+                  fl_print_format("%[', only%] ", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                  fl_print_format("%[0%]%[ is", global.main->error.to.stream, global.main->error.notable, global.main->error.notable, global.main->error.context);
                 }
                 else {
-                  fl_print_string("%[', only the whole numbers inclusively between%] ", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                  fl_print_string("%[1%] %[and%] ", global.main->error.to.stream, global.main->error.notable, global.main->error.notable, global.main->error.context, global.main->error.context);
-                  fl_print_string("%[99%] %[are", global.main->error.to.stream, global.main->error.notable, global.main->error.notable, global.main->error.context);
+                  fl_print_format("%[', only the whole numbers inclusively between%] ", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                  fl_print_format("%[1%] %[and%] ", global.main->error.to.stream, global.main->error.notable, global.main->error.notable, global.main->error.context, global.main->error.context);
+                  fl_print_format("%[99%] %[are", global.main->error.to.stream, global.main->error.notable, global.main->error.notable, global.main->error.context);
                 }
 
-                fl_print_string(" allowed for the designated scheduler.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format(" allowed for the designated scheduler.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                 controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -4480,7 +4480,7 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SRule setting requires exactly one Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SRule setting requires exactly one Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -4590,7 +4590,7 @@ extern "C" {
 
               flockfile(global.main->error.to.stream);
 
-              fl_print_string("%c%[%SRule setting failed to process the capabilities.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
+              fl_print_format("%c%[%SRule setting failed to process the capabilities.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
 
               controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -4628,13 +4628,13 @@ extern "C" {
 
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%SRule setting has an invalid number '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
-                fl_print_string("%[', only the whole numbers inclusively between%] ", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                fl_print_string("%[-20%]", global.main->error.to.stream, global.main->error.notable, global.main->error.notable);
-                fl_print_string(" %[and%] ", global.main->error.to.stream, global.main->error.context, global.main->error.context);
-                fl_print_string("%[19%]", global.main->error.to.stream, global.main->error.notable, global.main->error.notable);
-                fl_print_string(" %[are allowed.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SRule setting has an invalid number '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
+                fl_print_format("%[', only the whole numbers inclusively between%] ", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                fl_print_format("%[-20%]", global.main->error.to.stream, global.main->error.notable, global.main->error.notable);
+                fl_print_format(" %[and%] ", global.main->error.to.stream, global.main->error.context, global.main->error.context);
+                fl_print_format("%[19%]", global.main->error.to.stream, global.main->error.notable, global.main->error.notable);
+                fl_print_format(" %[are allowed.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                 controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -4681,9 +4681,9 @@ extern "C" {
 
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%SRule setting has an invalid user '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
-                fl_print_string("%[' because no user was found by that name.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SRule setting has an invalid user '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
+                fl_print_format("%[' because no user was found by that name.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                 funlockfile(global.main->error.to.stream);
 
@@ -4696,9 +4696,9 @@ extern "C" {
 
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%SRule setting has an invalid user '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
-                fl_print_string("%[' because the given ID is too large.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SRule setting has an invalid user '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
+                fl_print_format("%[' because the given ID is too large.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                 funlockfile(global.main->error.to.stream);
 
@@ -4711,9 +4711,9 @@ extern "C" {
 
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%SRule setting has an invalid user '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
-                fl_print_string("%[' because the given ID is not a valid supported number.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SRule setting has an invalid user '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[0], global.main->error.notable);
+                fl_print_format("%[' because the given ID is not a valid supported number.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                 funlockfile(global.main->error.to.stream);
 
@@ -4753,7 +4753,7 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SRule setting requires one or more Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SRule setting requires one or more Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -4811,9 +4811,9 @@ extern "C" {
 
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%SRule setting has an invalid group '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[j], global.main->error.notable);
-                fl_print_string("%[' because no group was found by that name.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SRule setting has an invalid group '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[j], global.main->error.notable);
+                fl_print_format("%[' because no group was found by that name.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                 funlockfile(global.main->error.to.stream);
 
@@ -4826,9 +4826,9 @@ extern "C" {
 
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%SRule setting has an invalid group '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[j], global.main->error.notable);
-                fl_print_string("%[' because the given ID is too large.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SRule setting has an invalid group '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[j], global.main->error.notable);
+                fl_print_format("%[' because the given ID is too large.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                 funlockfile(global.main->error.to.stream);
 
@@ -4841,9 +4841,9 @@ extern "C" {
 
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%SRule setting has an invalid group '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[j], global.main->error.notable);
-                fl_print_string("%[' because the given ID is not a valid supported number.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SRule setting has an invalid group '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[j], global.main->error.notable);
+                fl_print_format("%[' because the given ID is not a valid supported number.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                 funlockfile(global.main->error.to.stream);
 
@@ -4965,9 +4965,9 @@ extern "C" {
 
                 flockfile(global.main->error.to.stream);
 
-                fl_print_string("%c%[%SRule setting has an invalid environment variable name '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-                fl_print_string("%[%Q%]", global.main->error.to.stream, global.main->error.notable, setting_values->array[setting_values->used], global.main->error.notable);
-                fl_print_string("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SRule setting has an invalid environment variable name '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+                fl_print_format("%[%Q%]", global.main->error.to.stream, global.main->error.notable, setting_values->array[setting_values->used], global.main->error.notable);
+                fl_print_format("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
                 controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -5018,7 +5018,7 @@ extern "C" {
 
           flockfile(global.main->error.to.stream);
 
-          fl_print_string("%c%[%SRule setting requires exactly four Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SRule setting requires exactly four Content.%]%c", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context, f_string_eol_s[0]);
 
           controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -5075,10 +5075,10 @@ extern "C" {
 
           flockfile(global.main->error.to.stream);
 
-          fl_print_string("%c%[%SRule setting's first value has '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-          fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[1], global.main->error.notable);
-          fl_print_string("%[' but only supports %s, %s, %s, %s, %s", global.main->error.to.stream, global.main->error.context, controller_string_freeze_s, controller_string_kill_s, controller_string_pause_s, controller_string_reload_s, controller_string_restart_s);
-          fl_print_string("%s, %s, %s, and %s.%]%c", global.main->error.to.stream, controller_string_resume_s, controller_string_start_s, controller_string_stop_s, controller_string_thaw_s, global.main->error.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SRule setting's first value has '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+          fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[1], global.main->error.notable);
+          fl_print_format("%[' but only supports %s, %s, %s, %s, %s", global.main->error.to.stream, global.main->error.context, controller_string_freeze_s, controller_string_kill_s, controller_string_pause_s, controller_string_reload_s, controller_string_restart_s);
+          fl_print_format("%s, %s, %s, and %s.%]%c", global.main->error.to.stream, controller_string_resume_s, controller_string_start_s, controller_string_stop_s, controller_string_thaw_s, global.main->error.context, f_string_eol_s[0]);
 
           controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -5128,9 +5128,9 @@ extern "C" {
 
             flockfile(global.main->error.to.stream);
 
-            fl_print_string("%c%[%SRule setting's second value has '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-            fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[1], global.main->error.notable);
-            fl_print_string("%[' but only supports %s, %s, and %s.%s.%]%c", global.main->error.to.stream, global.main->error.context, controller_string_need_s, controller_string_want_s, controller_string_wish_s, global.main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SRule setting's second value has '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+            fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[1], global.main->error.notable);
+            fl_print_format("%[' but only supports %s, %s, and %s.%s.%]%c", global.main->error.to.stream, global.main->error.context, controller_string_need_s, controller_string_want_s, controller_string_wish_s, global.main->error.context, f_string_eol_s[0]);
 
             controller_rule_error_print_cache(global.main->error, cache->action, F_false);
 
@@ -5227,11 +5227,11 @@ extern "C" {
 
           flockfile(global.main->error.to.stream);
 
-          fl_print_string("%c%[%SThe rule item action third parameter '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
-          fl_print_string("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[2], global.main->error.notable);
-          fl_print_string("%[' must be a base path name, such as %ul '.%]", global.main->error.to.stream, global.main->error.context, cache->buffer_path.used, global.main->error.context);
-          fl_print_string("%[%Q%]", global.main->error.to.stream, cache->buffer_path, global.main->error.notable);
-          fl_print_string("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SThe rule item action third parameter '%]", global.main->error.to.stream, f_string_eol_s[0], global.main->error.context, global.main->error.prefix, global.main->error.context);
+          fl_print_format("%[%/Q%]", global.main->error.to.stream, global.main->error.notable, cache->buffer_item, cache->content_actions.array[i].array[2], global.main->error.notable);
+          fl_print_format("%[' must be a base path name, such as %un '.%]", global.main->error.to.stream, global.main->error.context, cache->buffer_path.used, global.main->error.context);
+          fl_print_format("%[%Q%]", global.main->error.to.stream, cache->buffer_path, global.main->error.notable);
+          fl_print_format("%['.%]%c", global.main->error.to.stream, global.main->error.context, global.main->error.context, f_string_eol_s[0]);
 
           funlockfile(global.main->error.to.stream);
 
@@ -5288,9 +5288,9 @@ extern "C" {
         if (main->error.verbosity != f_console_verbosity_quiet) {
           flockfile(main->error.to.stream);
 
-          fl_print_string("%c%[%SUnsupported action type '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
-          fl_print_string("%[%q%]", main->error.to.stream, main->error.notable, controller_rule_action_type_name(action), main->error.notable);
-          fl_print_string("%[' while attempting to validate rule execution.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+          fl_print_format("%c%[%SUnsupported action type '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
+          fl_print_format("%[%q%]", main->error.to.stream, main->error.notable, controller_rule_action_type_name(action), main->error.notable);
+          fl_print_format("%[' while attempting to validate rule execution.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
 
           controller_rule_error_print_cache(main->error, cache->action, F_true);
 
@@ -5323,11 +5323,11 @@ extern "C" {
       if (missing) {
         flockfile(main->output.stream);
 
-        fl_print_string("%cRule '", main->output.stream, f_string_eol_s[0]);
-        fl_print_string("%[%Q%]' has no '", main->output.stream, main->context.set.title, rule.name, main->context.set.title);
-        fl_print_string("%[%q%]' action to execute and would '", main->output.stream, main->context.set.title, controller_rule_action_type_name(action), main->context.set.title);
-        fl_print_string("%[%s%]' because it is '", main->output.stream, main->context.set.important, options & controller_process_option_require ? controller_string_fail_s : controller_string_succeed_s, main->context.set.important);
-        fl_print_string("%[%s%]'.%c", main->output.stream, main->context.set.important, options & controller_process_option_require ? controller_string_required_s : controller_string_optional_s, main->context.set.important, f_string_eol_s[0]);
+        fl_print_format("%cRule '", main->output.stream, f_string_eol_s[0]);
+        fl_print_format("%[%Q%]' has no '", main->output.stream, main->context.set.title, rule.name, main->context.set.title);
+        fl_print_format("%[%q%]' action to execute and would '", main->output.stream, main->context.set.title, controller_rule_action_type_name(action), main->context.set.title);
+        fl_print_format("%[%s%]' because it is '", main->output.stream, main->context.set.important, options & controller_process_option_require ? controller_string_fail_s : controller_string_succeed_s, main->context.set.important);
+        fl_print_format("%[%s%]'.%c", main->output.stream, main->context.set.important, options & controller_process_option_require ? controller_string_required_s : controller_string_optional_s, main->context.set.important, f_string_eol_s[0]);
 
         funlockfile(main->output.stream);
       }
@@ -5335,11 +5335,11 @@ extern "C" {
 
     flockfile(main->output.stream);
 
-    fl_print_string("%cRule %[%Q%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.title, rule.alias, main->context.set.title, f_string_eol_s[0]);
-    fl_print_string("  %[%s%] %Q%c", main->output.stream, main->context.set.important, controller_string_name_s, main->context.set.important, rule.name, f_string_eol_s[0]);
-    fl_print_string("  %[%s%] %s%c", main->output.stream, main->context.set.important, controller_string_how_s, main->context.set.important, options & controller_process_option_asynchronous ? controller_string_asynchronous_s : controller_string_synchronous_s, f_string_eol_s[0]);
-    fl_print_string("  %[%s%] %s%c", main->output.stream, main->context.set.important, controller_string_wait_s, main->context.set.important, options & controller_process_option_wait ? controller_string_yes : controller_string_no_s, f_string_eol_s[0]);
-    fl_print_string("  %[%s%] ", main->output.stream, main->context.set.important, controller_string_capability_s, main->context.set.important);
+    fl_print_format("%cRule %[%Q%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.title, rule.alias, main->context.set.title, f_string_eol_s[0]);
+    fl_print_format("  %[%s%] %Q%c", main->output.stream, main->context.set.important, controller_string_name_s, main->context.set.important, rule.name, f_string_eol_s[0]);
+    fl_print_format("  %[%s%] %s%c", main->output.stream, main->context.set.important, controller_string_how_s, main->context.set.important, options & controller_process_option_asynchronous ? controller_string_asynchronous_s : controller_string_synchronous_s, f_string_eol_s[0]);
+    fl_print_format("  %[%s%] %s%c", main->output.stream, main->context.set.important, controller_string_wait_s, main->context.set.important, options & controller_process_option_wait ? controller_string_yes : controller_string_no_s, f_string_eol_s[0]);
+    fl_print_format("  %[%s%] ", main->output.stream, main->context.set.important, controller_string_capability_s, main->context.set.important);
 
     if (f_capability_supported()) {
       if (rule.capability) {
@@ -5353,29 +5353,29 @@ extern "C" {
       f_print_terminated(f_string_eol_s, main->output.stream);
     }
     else {
-      fl_print_string("%[(unsupported)%]%c", main->output.stream, main->context.set.warning, controller_string_capability_s, main->context.set.warning, f_string_eol_s[0]);
+      fl_print_format("%[(unsupported)%]%c", main->output.stream, main->context.set.warning, controller_string_capability_s, main->context.set.warning, f_string_eol_s[0]);
     }
 
-    fl_print_string("  %[%s%]", main->output.stream, main->context.set.important, controller_string_control_group_s, main->context.set.important);
+    fl_print_format("  %[%s%]", main->output.stream, main->context.set.important, controller_string_control_group_s, main->context.set.important);
 
     if (rule.has & controller_rule_has_control_group) {
-      fl_print_string(" %s", main->output.stream, rule.control_group.as_new ? controller_string_new_s : controller_string_existing_s);
+      fl_print_format(" %s", main->output.stream, rule.control_group.as_new ? controller_string_new_s : controller_string_existing_s);
 
       for (i = 0; i < rule.control_group.groups.used; ++i) {
 
         if (rule.control_group.groups.array[i].used) {
-          fl_print_string(" %Q", main->output.stream, rule.control_group.groups.array[i]);
+          fl_print_format(" %Q", main->output.stream, rule.control_group.groups.array[i]);
         }
       } // for
     }
 
-    fl_print_string("%c  %[%s%]", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_nice_s, main->context.set.important);
+    fl_print_format("%c  %[%s%]", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_nice_s, main->context.set.important);
 
     if (rule.has & controller_rule_has_nice) {
-      fl_print_string(" %i", main->output.stream, rule.nice);
+      fl_print_format(" %i", main->output.stream, rule.nice);
     }
 
-    fl_print_string("%c  %[%s%]", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_scheduler_s, main->context.set.important);
+    fl_print_format("%c  %[%s%]", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_scheduler_s, main->context.set.important);
 
     if (rule.has & controller_rule_has_scheduler) {
       f_string_t policy = "";
@@ -5399,70 +5399,70 @@ extern "C" {
         policy = controller_string_round_robin_s;
       }
 
-      fl_print_string(" %s %i", main->output.stream, policy, rule.scheduler.priority);
+      fl_print_format(" %s %i", main->output.stream, policy, rule.scheduler.priority);
     }
 
-    fl_print_string("%c  %[%s%] %Q%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_script_s, main->context.set.important, rule.script, f_string_eol_s[0]);
-    fl_print_string("  %[%s%]", main->output.stream, main->context.set.important, controller_string_user_s, main->context.set.important);
+    fl_print_format("%c  %[%s%] %Q%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_script_s, main->context.set.important, rule.script, f_string_eol_s[0]);
+    fl_print_format("  %[%s%]", main->output.stream, main->context.set.important, controller_string_user_s, main->context.set.important);
 
     if (rule.has & controller_rule_has_user) {
-      fl_print_string(" %i", main->output.stream, rule.user);
+      fl_print_format(" %i", main->output.stream, rule.user);
     }
 
-    fl_print_string("%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_affinity_s, main->context.set.important, f_string_eol_s[0]);
+    fl_print_format("%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_affinity_s, main->context.set.important, f_string_eol_s[0]);
 
     for (i = 0; i < rule.affinity.used; ++i) {
-      fl_print_string("    %i%c", main->output.stream, rule.affinity.array[i], f_string_eol_s[0]);
+      fl_print_format("    %i%c", main->output.stream, rule.affinity.array[i], f_string_eol_s[0]);
     } // for
 
-    fl_print_string("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_define_s, main->context.set.important, f_string_eol_s[0]);
+    fl_print_format("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_define_s, main->context.set.important, f_string_eol_s[0]);
 
     for (i = 0; i < rule.define.used; ++i) {
 
       if (rule.define.array[i].name.used && rule.define.array[i].value.used) {
-        fl_print_string("    %Q %[=%] %Q%c", main->output.stream, rule.define.array[i].name, main->context.set.important, main->context.set.important, rule.define.array[i].value, f_string_eol_s[0]);
+        fl_print_format("    %Q %[=%] %Q%c", main->output.stream, rule.define.array[i].name, main->context.set.important, main->context.set.important, rule.define.array[i].value, f_string_eol_s[0]);
       }
     } // for
 
-    fl_print_string("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_environment_s, main->context.set.important, f_string_eol_s[0]);
+    fl_print_format("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_environment_s, main->context.set.important, f_string_eol_s[0]);
 
     for (i = 0; i < rule.environment.used; ++i) {
 
       if (rule.environment.array[i].used) {
-        fl_print_string("    %Q%c", main->output.stream, rule.environment.array[i], f_string_eol_s[0]);
+        fl_print_format("    %Q%c", main->output.stream, rule.environment.array[i], f_string_eol_s[0]);
       }
     } // for
 
-    fl_print_string("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_parameter_s, main->context.set.important, f_string_eol_s[0]);
+    fl_print_format("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_parameter_s, main->context.set.important, f_string_eol_s[0]);
 
     for (i = 0; i < rule.parameter.used; ++i) {
 
       if (rule.parameter.array[i].name.used && rule.parameter.array[i].value.used) {
-        fl_print_string("    %Q %[=%] %Q%c", main->output.stream, rule.parameter.array[i].name, main->context.set.important, main->context.set.important, rule.parameter.array[i].value, f_string_eol_s[0]);
+        fl_print_format("    %Q %[=%] %Q%c", main->output.stream, rule.parameter.array[i].name, main->context.set.important, main->context.set.important, rule.parameter.array[i].value, f_string_eol_s[0]);
       }
     } // for
 
-    fl_print_string("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_group_s, main->context.set.important, f_string_eol_s[0]);
+    fl_print_format("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_group_s, main->context.set.important, f_string_eol_s[0]);
 
     if (rule.has & controller_rule_has_group) {
-      fl_print_string("    %i%c", main->output.stream, rule.group, f_string_eol_s[0]);
+      fl_print_format("    %i%c", main->output.stream, rule.group, f_string_eol_s[0]);
 
       for (i = 0; i < rule.groups.used; ++i) {
-        fl_print_string("    %i%c", main->output.stream, rule.groups.array[i], f_string_eol_s[0]);
+        fl_print_format("    %i%c", main->output.stream, rule.groups.array[i], f_string_eol_s[0]);
       } // for
     }
 
-    fl_print_string("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_limit_s, main->context.set.important, f_string_eol_s[0]);
+    fl_print_format("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_limit_s, main->context.set.important, f_string_eol_s[0]);
 
     for (i = 0; i < rule.limits.used; ++i) {
-      fl_print_string("    %Q %[=%] %ul %ul%c", main->output.stream, controller_rule_setting_limit_type_name(rule.limits.array[i].type), main->context.set.important, main->context.set.important, rule.limits.array[i].value.rlim_cur, rule.limits.array[i].value.rlim_max, f_string_eol_s[0]);
+      fl_print_format("    %Q %[=%] %un %un%c", main->output.stream, controller_rule_setting_limit_type_name(rule.limits.array[i].type), main->context.set.important, main->context.set.important, rule.limits.array[i].value.rlim_cur, rule.limits.array[i].value.rlim_max, f_string_eol_s[0]);
     } // for
 
-    fl_print_string("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_on_s, main->context.set.important, f_string_eol_s[0]);
+    fl_print_format("  }%c  %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_on_s, main->context.set.important, f_string_eol_s[0]);
 
     for (i = 0; i < rule.ons.used; ++i) {
 
-      fl_print_string("    %[%s%] {%c", main->output.stream, main->context.set.important, controller_string_action_s, main->context.set.important, f_string_eol_s[0]);
+      fl_print_format("    %[%s%] {%c", main->output.stream, main->context.set.important, controller_string_action_s, main->context.set.important, f_string_eol_s[0]);
 
       {
         f_string_t action = "";
@@ -5495,40 +5495,40 @@ extern "C" {
           action = controller_string_thaw_s;
         }
 
-        fl_print_string("      %[%s%] %s%c", main->output.stream, main->context.set.important, controller_string_type_s, main->context.set.important, action, f_string_eol_s[0]);
+        fl_print_format("      %[%s%] %s%c", main->output.stream, main->context.set.important, controller_string_type_s, main->context.set.important, action, f_string_eol_s[0]);
       }
 
-      fl_print_string("      %[%s%] {%c", main->output.stream, main->context.set.important, controller_string_need_s, main->context.set.important, f_string_eol_s[0]);
+      fl_print_format("      %[%s%] {%c", main->output.stream, main->context.set.important, controller_string_need_s, main->context.set.important, f_string_eol_s[0]);
 
       for (j = 0; j < rule.ons.array[i].need.used; ++j) {
 
         if (rule.ons.array[i].need.array[j].used) {
-          fl_print_string("        %Q%c", main->output.stream, rule.ons.array[i].need.array[j], f_string_eol_s[0]);
+          fl_print_format("        %Q%c", main->output.stream, rule.ons.array[i].need.array[j], f_string_eol_s[0]);
         }
       } // for
 
-      fl_print_string("      }%c      %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_want_s, main->context.set.important, f_string_eol_s[0]);
+      fl_print_format("      }%c      %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_want_s, main->context.set.important, f_string_eol_s[0]);
 
       for (j = 0; j < rule.ons.array[i].want.used; ++j) {
 
         if (rule.ons.array[i].want.array[j].used) {
-          fl_print_string("        %Q%c", main->output.stream, rule.ons.array[i].want.array[j], f_string_eol_s[0]);
+          fl_print_format("        %Q%c", main->output.stream, rule.ons.array[i].want.array[j], f_string_eol_s[0]);
         }
       } // for
 
-      fl_print_string("      }%c      %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_wish_s, main->context.set.important, f_string_eol_s[0]);
+      fl_print_format("      }%c      %[%s%] {%c", main->output.stream, f_string_eol_s[0], main->context.set.important, controller_string_wish_s, main->context.set.important, f_string_eol_s[0]);
 
       for (j = 0; j < rule.ons.array[i].wish.used; ++j) {
 
         if (rule.ons.array[i].wish.array[j].used) {
-          fl_print_string("        %Q%c", main->output.stream, rule.ons.array[i].wish.array[j], f_string_eol_s[0]);
+          fl_print_format("        %Q%c", main->output.stream, rule.ons.array[i].wish.array[j], f_string_eol_s[0]);
         }
       } // for
 
-      fl_print_string("      }%c    }%c", main->output.stream, f_string_eol_s[0], f_string_eol_s[0]);
+      fl_print_format("      }%c    }%c", main->output.stream, f_string_eol_s[0], f_string_eol_s[0]);
     } // for
 
-    fl_print_string("  }%c", main->output.stream, f_string_eol_s[0]);
+    fl_print_format("  }%c", main->output.stream, f_string_eol_s[0]);
 
     if (rule.items.used) {
       controller_rule_action_t *action = 0;
@@ -5542,18 +5542,18 @@ extern "C" {
 
         item = &rule.items.array[i];
 
-        fl_print_string("  %[%s%] {%c", main->output.stream, main->context.set.important, controller_string_item_s, main->context.set.important, f_string_eol_s[0]);
-        fl_print_string("    %[%s%] %Q%c", main->output.stream, main->context.set.important, controller_string_type_s, main->context.set.important, controller_rule_item_type_name(item->type), f_string_eol_s[0]);
+        fl_print_format("  %[%s%] {%c", main->output.stream, main->context.set.important, controller_string_item_s, main->context.set.important, f_string_eol_s[0]);
+        fl_print_format("    %[%s%] %Q%c", main->output.stream, main->context.set.important, controller_string_type_s, main->context.set.important, controller_rule_item_type_name(item->type), f_string_eol_s[0]);
 
         for (j = 0; j < item->actions.used; ++j) {
 
           action = &item->actions.array[j];
 
-          fl_print_string("    %[%s%] {%c", main->output.stream, main->context.set.important, controller_string_action_s, main->context.set.important, f_string_eol_s[0]);
-          fl_print_string("      %[%s%] %q%c", main->output.stream, main->context.set.important, controller_string_type_s, main->context.set.important, controller_rule_action_type_name(action->type), f_string_eol_s[0]);
+          fl_print_format("    %[%s%] {%c", main->output.stream, main->context.set.important, controller_string_action_s, main->context.set.important, f_string_eol_s[0]);
+          fl_print_format("      %[%s%] %q%c", main->output.stream, main->context.set.important, controller_string_type_s, main->context.set.important, controller_rule_action_type_name(action->type), f_string_eol_s[0]);
 
           if (item->type == controller_rule_item_type_script || item->type == controller_rule_item_type_utility) {
-            fl_print_string("      %[%s%] {%c", main->output.stream, main->context.set.important, controller_string_parameter_s, main->context.set.important, f_string_eol_s[0]);
+            fl_print_format("      %[%s%] {%c", main->output.stream, main->context.set.important, controller_string_parameter_s, main->context.set.important, f_string_eol_s[0]);
 
             parameter = &action->parameters.array[0];
 
@@ -5576,22 +5576,22 @@ extern "C" {
               f_print_terminated(f_string_eol_s, main->output.stream);
             }
 
-            fl_print_string("      }%c", main->output.stream, f_string_eol_s[0]);
+            fl_print_format("      }%c", main->output.stream, f_string_eol_s[0]);
           }
           else {
             for (k = 0; k < action->parameters.used; ++k) {
-              fl_print_string("      %s%s%s %Q%c", main->output.stream, main->context.set.important, controller_string_parameter_s, main->context.set.important, action->parameters.array[k], f_string_eol_s[0]);
+              fl_print_format("      %s%s%s %Q%c", main->output.stream, main->context.set.important, controller_string_parameter_s, main->context.set.important, action->parameters.array[k], f_string_eol_s[0]);
             } // for
           }
 
-          fl_print_string("    }%c", main->output.stream, f_string_eol_s[0]);
+          fl_print_format("    }%c", main->output.stream, f_string_eol_s[0]);
         } // for
 
-        fl_print_string("  }%c", main->output.stream, f_string_eol_s[0]);
+        fl_print_format("  }%c", main->output.stream, f_string_eol_s[0]);
       } // for
     }
 
-    fl_print_string("}%c", main->output.stream, f_string_eol_s[0]);
+    fl_print_format("}%c", main->output.stream, f_string_eol_s[0]);
 
     funlockfile(main->output.stream);
 
index cedb48caa959a0f939894f2e21655251fa519ebf..48eaca854191aa1efa9e6fb0f21d83c7666e5a72 100644 (file)
@@ -231,9 +231,9 @@ extern "C" {
 
             flockfile(main->error.to.stream);
 
-            fl_print_string("%c%[%SThe pid file '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
-            fl_print_string("%[%S%]", main->error.to.stream, main->error.notable, setting->path_pid.string, main->error.notable);
-            fl_print_string("%[' must not already exist.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SThe pid file '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
+            fl_print_format("%[%S%]", main->error.to.stream, main->error.notable, setting->path_pid.string, main->error.notable);
+            fl_print_format("%[' must not already exist.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
 
             funlockfile(main->error.to.stream);
 
@@ -727,9 +727,9 @@ extern "C" {
 
             flockfile(main->error.to.stream);
 
-            fl_print_string("%c%[%SThe pid file '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
-            fl_print_string("%[%Q%]", main->error.to.stream, main->error.notable, entry->setting->path_pid, main->error.notable);
-            fl_print_string("%[' must not already exist.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+            fl_print_format("%c%[%SThe pid file '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
+            fl_print_format("%[%Q%]", main->error.to.stream, main->error.notable, entry->setting->path_pid, main->error.notable);
+            fl_print_format("%[' must not already exist.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
 
             funlockfile(main->error.to.stream);
 
@@ -771,9 +771,9 @@ extern "C" {
 
                   flockfile(main->error.to.stream);
 
-                  fl_print_string("%c%[%SFailed while processing requested failsafe item '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
-                  fl_print_string("%[%Q%]", main->error.to.stream, main->error.notable, entry->global->setting->entry.items.array[entry->global->setting->failsafe_enabled].name, main->error.notable);
-                  fl_print_string("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+                  fl_print_format("%c%[%SFailed while processing requested failsafe item '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
+                  fl_print_format("%[%Q%]", main->error.to.stream, main->error.notable, entry->global->setting->entry.items.array[entry->global->setting->failsafe_enabled].name, main->error.notable);
+                  fl_print_format("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
 
                   funlockfile(main->error.to.stream);
 
@@ -884,9 +884,9 @@ extern "C" {
 
                 flockfile(main->error.to.stream);
 
-                fl_print_string("%c%[%SFailed while processing requested failsafe item '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
-                fl_print_string("%[%Q%]", main->error.to.stream, main->error.notable, entry->global->setting->entry.items.array[entry->global->setting->failsafe_enabled].name, main->error.notable);
-                fl_print_string("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+                fl_print_format("%c%[%SFailed while processing requested failsafe item '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix ? main->error.prefix : f_string_empty_s, main->error.context);
+                fl_print_format("%[%Q%]", main->error.to.stream, main->error.notable, entry->global->setting->entry.items.array[entry->global->setting->failsafe_enabled].name, main->error.notable);
+                fl_print_format("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
 
                 funlockfile(main->error.to.stream);
 
index 2b1bc06c62520ff6b62f1aebbb9ada6164fc5e3e..240ba0d9121009561f39db83c89aabc7e4993083 100644 (file)
@@ -14,6 +14,8 @@ extern "C" {
 #ifndef _di_fake_print_help_
   f_status_t fake_print_help(const f_file_t output, const f_color_context_t context) {
 
+    flockfile(output.stream);
+
     fll_program_print_help_header(output, context, fake_name_long, fake_version);
 
     fll_program_print_help_option(output, context, f_console_standard_short_help_s, f_console_standard_long_help_s, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "    Print this help message.");
@@ -26,7 +28,7 @@ extern "C" {
     fll_program_print_help_option(output, context, f_console_standard_short_debug_s, f_console_standard_long_debug_s, f_console_symbol_short_disable_s, f_console_symbol_long_disable_s, "   Enable debugging, inceasing verbosity beyond normal output.");
     fll_program_print_help_option(output, context, f_console_standard_short_version_s, f_console_standard_long_version_s, f_console_symbol_short_disable_s, f_console_symbol_long_disable_s, " Print only the version number.");
 
-    fprintf(output.stream, "%c", f_string_eol_s[0]);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     fll_program_print_help_option(output, context, fake_short_define, fake_long_define, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "  Append an additional define after defines from settings file.");
     fll_program_print_help_option(output, context, fake_short_fakefile, fake_long_fakefile, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "Use this fakefile.");
@@ -34,16 +36,14 @@ extern "C" {
     fll_program_print_help_option(output, context, fake_short_process, fake_long_process, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, " Process name for storing build states.");
     fll_program_print_help_option(output, context, fake_short_settings, fake_long_settings, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "Use this settings file.");
 
-    fprintf(output.stream, "%c", f_string_eol_s[0]);
+    f_print_character(f_string_eol_s[0], output.stream);
 
     fll_program_print_help_option(output, context, fake_short_path_build, fake_long_path_build, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "   Specify a custom build directory.");
     fll_program_print_help_option(output, context, fake_short_path_data, fake_long_path_data, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "    Specify a custom path to the data files.");
     fll_program_print_help_option(output, context, fake_short_path_sources, fake_long_path_sources, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, " Specify a custom path to the source files.");
     fll_program_print_help_option(output, context, fake_short_path_work, fake_long_path_work, f_console_symbol_short_enable_s, f_console_symbol_long_enable_s, "    Use includes/libraries/programs from this directory instead of system.");
 
-    fprintf(output.stream, "%c%c", f_string_eol_s[0], f_string_eol_s[0]);
-
-    f_color_print(output.stream, context.set.important, " Special Options: ");
+    fl_print_format("%c%c %[Special Options:%] ", output.stream, f_string_eol_s[0], f_string_eol_s[0], context.set.important, context.set.important);
 
     fll_program_print_help_option_long(output, context, fake_long_documents_disabled, f_console_symbol_long_enable_s, "   Forcibly do not build documents files.");
     fll_program_print_help_option_long(output, context, fake_long_documents_enabled, f_console_symbol_long_enable_s, "    Forcibly do build documents files.");
@@ -52,9 +52,7 @@ extern "C" {
     fll_program_print_help_option_long(output, context, fake_long_static_disabled, f_console_symbol_long_enable_s, "Forcibly do not build static files.");
     fll_program_print_help_option_long(output, context, fake_long_static_enabled, f_console_symbol_long_enable_s, " Forcibly do build static files.");
 
-    fprintf(output.stream, "%c%c", f_string_eol_s[0], f_string_eol_s[0]);
-
-    f_color_print(output.stream, context.set.important, " Operations: ");
+    fl_print_format("%c%c %[Operations:%] ", output.stream, f_string_eol_s[0], f_string_eol_s[0], context.set.important, context.set.important);
 
     fll_program_print_help_option_other(output, context, fake_other_operation_build, "   Build or compile the code based on build settings file.");
     fll_program_print_help_option_other(output, context, fake_other_operation_clean, "   Delete all build files.");
@@ -63,37 +61,33 @@ extern "C" {
 
     fll_program_print_help_usage(output, context, fake_name, "operation");
 
-    fprintf(output.stream, "  When performing the ");
-    f_color_print(output.stream, context.set.notable, "%s", fake_other_operation_build);
-    fprintf(output.stream, " operation, the ");
-    f_color_print(output.stream, context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_mode);
-    fprintf(output.stream, " parameter specifies a name (limited to alpha-numeric, underscore, and dash) to be used in addition to the global.");
-    fprintf(output.stream, "%c", f_string_eol_s[0]);
-
-    fprintf(output.stream, "  For example, when a ");
-    f_color_print(output.stream, context.set.notable, "%s", fake_long_mode);
-    fprintf(output.stream, " of 'fll_monolithic' is specified, build libaries from both 'build_libraries' and 'build_libraries-fll_monolithic' are used (but not 'build_libraries-fll_level').");
-
-    fprintf(output.stream, "%c%c", f_string_eol_s[0], f_string_eol_s[0]);
-
-    fprintf(output.stream, "  When specifying the ");
-    f_color_print(output.stream, context.set.notable, "%s", fake_long_fakefile);
-    fprintf(output.stream, " or the ");
-    f_color_print(output.stream, context.set.notable, "%s", fake_long_settings);
-    fprintf(output.stream, " parameters, the filenames are relative to the data build directory, unless a path is used.");
-    fprintf(output.stream, "%c", f_string_eol_s[0]);
-
-    fprintf(output.stream, "  For example, with '");
-    f_color_print(output.stream, context.set.notable, "%s%s my_fakefile", f_console_symbol_long_enable_s, fake_long_fakefile);
-    fprintf(output.stream, "' the fakefile at '");
-    f_color_print(output.stream, context.set.notable, "./%s%smy_fakefile", fake_default_path_data, fake_default_path_build);
-    fprintf(output.stream, " would be used, however with '");
-    f_color_print(output.stream, context.set.notable, "%s%s ./my_fakefile", f_console_symbol_long_enable_s, fake_long_fakefile);
-    fprintf(output.stream, "' the fakefile at '");
-    f_color_print(output.stream, context.set.notable, "./my_fakefile", fake_default_path_data, fake_default_path_build);
-    fprintf(output.stream, " would be used.");
-
-    fprintf(output.stream, "%c%c", f_string_eol_s[0], f_string_eol_s[0]);
+    f_print_terminated("  When performing the ", output.stream);
+    fl_print_format("%[%s%]", output.stream, context.set.notable, fake_other_operation_build, context.set.notable);
+    f_print_terminated("  operation, the ", output.stream);
+    fl_print_format("%[%s%s%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, fake_long_mode, context.set.notable);
+    fl_print_format(" parameter specifies a name (limited to alpha-numeric, underscore, and dash) to be used in addition to the global.%c", output.stream, f_string_eol_s[0]);
+
+    f_print_terminated("  For example, when a ", output.stream);
+    fl_print_format("%[%s%]", output.stream, context.set.notable, fake_make_parameter_variable_mode, context.set.notable);
+    fl_print_format(" of 'fll_monolithic' is specified, build libraries from both 'build_libraries' and 'build_libraries-fll_monolithic' are used (but not 'build_libraries-fll_level').%c%c", output.stream, f_string_eol_s[0], f_string_eol_s[0]);
+
+    f_print_terminated("  When specifying the ", output.stream);
+    fl_print_format("%[%s%]", output.stream, context.set.notable, fake_make_parameter_variable_fakefile, context.set.notable);
+    f_print_terminated("  or the ", output.stream);
+    fl_print_format("%[%s%]", output.stream, context.set.notable, fake_make_parameter_variable_settings, context.set.notable);
+    fl_print_format(" parameters, the filenames are relative to the data build directory, unless a path is used.%c", output.stream, f_string_eol_s[0]);
+
+    f_print_terminated("  For example, with '", output.stream);
+    fl_print_format("%[%s%s my_fakefile%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, fake_long_fakefile, context.set.notable);
+    f_print_terminated("' the fakefile at '", output.stream);
+    fl_print_format("%[./%s%smy_fakefile%]", output.stream, context.set.notable, fake_default_path_data, fake_default_path_build, context.set.notable);
+    f_print_terminated("' would be used, however with '", output.stream);
+    fl_print_format("%[%s%s ./my_fakefile%]", output.stream, context.set.notable, f_console_symbol_long_enable_s, fake_long_fakefile, context.set.notable);
+    f_print_terminated("' the fakefile at '", output.stream);
+    fl_print_format("%[./my_fakefile%]", output.stream, context.set.notable, context.set.notable);
+    fl_print_format("' would be used.%c%c", output.stream, f_string_eol_s[0], f_string_eol_s[0]);
+
+    funlockfile(output.stream);
 
     return F_none;
   }
@@ -117,9 +111,12 @@ extern "C" {
         if (main->context.set.error.before) {
           main->error.context = main->context.set.error;
           main->error.notable = main->context.set.notable;
+
+          main->warning.context = main->context.set.warning;
+          main->warning.notable = main->context.set.notable;
         }
         else {
-          f_color_set_t *sets[] = { &main->error.context, &main->error.notable, 0 };
+          f_color_set_t *sets[] = { &main->error.context, &main->error.notable, &main->warning.context, &main->warning.notable, 0 };
 
           fll_program_parameter_process_empty(&main->context, sets);
         }
@@ -149,15 +146,19 @@ extern "C" {
 
         if (choice == fake_parameter_verbosity_quiet) {
           main->error.verbosity = f_console_verbosity_quiet;
+          main->warning.verbosity = f_console_verbosity_quiet;
         }
         else if (choice == fake_parameter_verbosity_normal) {
           main->error.verbosity = f_console_verbosity_normal;
+          main->warning.verbosity = f_console_verbosity_normal;
         }
         else if (choice == fake_parameter_verbosity_verbose) {
           main->error.verbosity = f_console_verbosity_verbose;
+          main->warning.verbosity = f_console_verbosity_verbose;
         }
         else if (choice == fake_parameter_verbosity_debug) {
           main->error.verbosity = f_console_verbosity_debug;
+          main->warning.verbosity = f_console_verbosity_debug;
         }
       }
 
@@ -338,10 +339,13 @@ extern "C" {
         }
         else if (F_status_is_error(status)) {
           if (main->error.verbosity != f_console_verbosity_quiet) {
-            fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(main->error.to.stream, main->error.context, "%sThe operation '", fll_error_print_error);
-            f_color_print(main->error.to.stream, main->error.notable, "%s", operations_name);
-            f_color_print(main->error.to.stream, main->error.context, "' failed.%c", f_string_eol_s[0]);
+            flockfile(main->error.to.stream);
+
+            fl_print_format("%c%[%SThe operation '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context);
+            fl_print_format("%[%s%]", main->error.to.stream, main->error.notable, operations_name, main->error.notable);
+            fl_print_format("%[' failed.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+
+            funlockfile(main->error.to.stream);
           }
 
           break;
@@ -351,18 +355,16 @@ extern "C" {
       // ensure a newline is always put at the end of the program execution, unless in quiet mode.
       if (main->error.verbosity != f_console_verbosity_quiet) {
         if (F_status_is_error(status) || status == F_signal) {
-          fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
+          fll_print_character(f_string_eol_s[0], main->error.to.stream);
         }
         else if (status != F_child) {
-          fprintf(main->output.stream, "%cAll operations complete.%c%c", f_string_eol_s[0], f_string_eol_s[0], f_string_eol_s[0]);
+          fll_print_format("%cAll operations complete.%c%c", main->output.stream, f_string_eol_s[0], f_string_eol_s[0], f_string_eol_s[0]);
         }
       }
     }
     else {
       if (main->error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main->error.to.stream, main->error.context, "%sYou failed to specify an operation.%c", fll_error_print_error, f_string_eol_s[0]);
-        fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
+        fll_print_format("%c%[%SYou failed to specify an operation.%]%c%c", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context, f_string_eol_s[0], f_string_eol_s[0]);
       }
 
       status = F_status_set_error(F_parameter);
index ac669fbb0c6a90f6df05733d0f2fc74c9a9ea947..4b8d9b15cb612f150b5ab25fd17f59676c7edb6e 100644 (file)
@@ -74,6 +74,7 @@
 #include <fll/level_1/directory.h>
 #include <fll/level_1/environment.h>
 #include <fll/level_1/iki.h>
+#include <fll/level_1/print.h>
 #include <fll/level_1/string.h>
 
 // fll-2 includes
@@ -84,6 +85,7 @@
 #include <fll/level_2/fss_basic_list.h>
 #include <fll/level_2/fss_extended.h>
 #include <fll/level_2/path.h>
+#include <fll/level_2/print.h>
 #include <fll/level_2/program.h>
 
 #ifdef __cplusplus
@@ -389,6 +391,7 @@ extern "C" {
 
     f_file_t output;
     fll_error_print_t error;
+    fll_error_print_t warning;
 
     uint8_t operation;
 
@@ -459,6 +462,7 @@ extern "C" {
       F_false, \
       macro_f_file_t_initialize2(f_type_output, f_type_descriptor_output, f_file_flag_write_only), \
       fll_error_print_t_initialize, \
+      macro_fll_error_print_t_initialize_warning(), \
       0, \
       0, \
       0, \
index 561b02a06db0971aec8a42608a5e0e981b57e429..1bfd45ab94a3107f92bbfb5d23073cc3211b7e1e 100644 (file)
@@ -169,9 +169,7 @@ extern "C" {
     f_string_dynamic_t destination_directory = f_string_dynamic_t_initialize;
 
     if (main.error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.output.stream, main.context.set.important, "Copying %s.", label);
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+      fll_print_format("%c%[Copying %S.%]%c", main.output.stream, f_string_eol_s[0], main.context.set.important, label, main.context.set.important, f_string_eol_s[0]);
     }
 
      macro_f_string_dynamic_t_resize(*status, path_source, source.used);
@@ -347,7 +345,7 @@ extern "C" {
         }
 
         if (main.error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main.output.stream, "Copied file '%s' to '%s'.%c", path_source.string, destination_file.string, f_string_eol_s[0]);
+          fll_print_format("Copied file '%Q' to '%Q'.%c", main.output.stream, path_source, destination_file, f_string_eol_s[0]);
         }
       }
       else if (F_status_is_error(*status)) {
@@ -421,9 +419,7 @@ extern "C" {
     };
 
     if (main.error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.output.stream, main.context.set.important, "Creating base build directories.");
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+      fll_print_format("%c%[Creating base build directories.%]%c", main.output.stream, f_string_eol_s[0], main.context.set.important, main.context.set.important, f_string_eol_s[0]);
     }
 
     for (uint8_t i = 0; i < 15; ++i) {
@@ -475,7 +471,7 @@ extern "C" {
       }
 
       if (main.error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main.output.stream, "Created directory '%s'.%c", directorys[i]->string, f_string_eol_s[0]);
+        fll_print_format("Created directory '%Q'.%c", main.output.stream, directorys[i], f_string_eol_s[0]);
       }
     } // for
 
@@ -699,11 +695,13 @@ extern "C" {
         if (F_status_is_error(*status)) {
           if (F_status_set_fine(*status) == F_failure) {
             if (main.error.verbosity != f_console_verbosity_quiet) {
-              fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main.error.to.stream, main.error.context, "%sFailed to execute script: ", main.error.prefix);
-              f_color_print(main.error.to.stream, main.error.notable, "%s", path.string);
-              f_color_print(main.error.to.stream, main.error.context, ".");
-              fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+              flockfile(main.error.to.stream);
+
+              fl_print_format("%c%[%SFailed to execute script: '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+              fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, path, main.error.notable);
+              fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+              funlockfile(main.error.to.stream);
             }
           }
           else {
@@ -778,9 +776,7 @@ extern "C" {
     if (!data_build.setting.build_sources_library.used) return 0;
 
     if (main.error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.output.stream, main.context.set.important, "Compiling shared library.");
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+      fll_print_format("%c%[Compiling shared library.%]%c", main.output.stream, f_string_eol_s[0], main.context.set.important, main.context.set.important, f_string_eol_s[0]);
     }
 
     f_string_dynamics_t arguments = f_string_dynamics_t_initialize;
@@ -1122,7 +1118,7 @@ extern "C" {
       *status = f_file_link(parameter_file_name_major, parameter_file_path);
 
       if (F_status_is_error_not(*status) && main.error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main.output.stream, "Linked file '%s' to '%s'.%c", parameter_file_path, parameter_file_name_major, f_string_eol_s[0]);
+        fll_print_format("Linked file '%S' to '%S'.%c", main.output.stream, parameter_file_path, parameter_file_name_major, f_string_eol_s[0]);
       }
       else if (F_status_is_error(*status)) {
         if (F_status_set_fine(*status) == F_file_found) {
@@ -1157,7 +1153,7 @@ extern "C" {
       *status = f_file_link(parameter_file_name_minor, parameter_file_path);
 
       if (F_status_is_error_not(*status) && main.error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main.output.stream, "Linked file '%s' to '%s'.%c", parameter_file_path, parameter_file_name_minor, f_string_eol_s[0]);
+        fll_print_format("Linked file '%S' to '%S'.%c", main.output.stream, parameter_file_path, parameter_file_name_minor, f_string_eol_s[0]);
       }
       else if (F_status_is_error(*status)) {
         if (F_status_set_fine(*status) == F_file_found) {
@@ -1191,7 +1187,7 @@ extern "C" {
         *status = f_file_link(parameter_file_name_micro, parameter_file_path);
 
         if (F_status_is_error_not(*status) && main.error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main.output.stream, "Linked file '%s' to '%s'.%c", parameter_file_path, parameter_file_name_micro, f_string_eol_s[0]);
+          fll_print_format("Linked file '%S' to '%S'.%c", main.output.stream, parameter_file_path, parameter_file_name_micro, f_string_eol_s[0]);
         }
         else if (F_status_is_error(*status)) {
           if (F_status_set_fine(*status) == F_file_found) {
@@ -1225,7 +1221,7 @@ extern "C" {
           *status = f_file_link(parameter_file_name_nano, parameter_file_path);
 
           if (F_status_is_error_not(*status) && main.error.verbosity == f_console_verbosity_verbose) {
-            fprintf(main.output.stream, "Linked file '%s' to '%s'.%c", parameter_file_path, parameter_file_name_nano, f_string_eol_s[0]);
+            fll_print_format("Linked file '%S' to '%S'.%c", main.output.stream, parameter_file_path, parameter_file_name_nano, f_string_eol_s[0]);
           }
           else if (F_status_is_error(*status)) {
             if (F_status_set_fine(*status) == F_file_found) {
@@ -1255,9 +1251,7 @@ extern "C" {
     if (!data_build.setting.build_sources_library.used) return 0;
 
     if (main.error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.output.stream, main.context.set.important, "Compiling static library.");
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+      fll_print_format("%c%[Compiling static library.%]%c", main.output.stream, f_string_eol_s[0], main.context.set.important, main.context.set.important, f_string_eol_s[0]);
     }
 
     f_string_dynamic_t file_name = f_string_dynamic_t_initialize;
@@ -1430,13 +1424,15 @@ extern "C" {
     if (environment->used + data_build.setting.environment.used > environment->size) {
       if (environment->used + data_build.setting.environment.used > f_environment_max_length) {
         if (main.error.verbosity != f_console_verbosity_quiet) {
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main.error.to.stream, main.context.set.error, "%sThe values for the setting '", fll_error_print_error);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", fake_build_setting_name_environment);
-          f_color_print(main.error.to.stream, main.context.set.error, "' of setting file '");
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", main.file_data_build_settings.string);
-          f_color_print(main.error.to.stream, main.context.set.error, "' is too large.");
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+          flockfile(main.error.to.stream);
+
+          fl_print_format("%c%[%SThe values for the setting '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+          fl_print_format("%[%s%]", main.error.to.stream, main.error.notable, fake_build_setting_name_environment, main.error.notable);
+          fl_print_format("%[' of setting file '%]", main.error.to.stream, main.error.context, main.error.context);
+          fl_print_format("%[%s%]", main.error.to.stream, main.error.notable, fake_build_setting_name_environment, main.error.notable);
+          fl_print_format("%[' is too large.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+          flockfile(main.error.to.stream);
         }
 
         *status = F_status_set_error(F_array_too_large);
@@ -1532,13 +1528,15 @@ extern "C" {
       for (uint8_t i = 0; i < 1; ++i) {
 
         if (!settings[i]->used) {
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main.error.to.stream, main.context.set.error, "%sThe setting '", fll_error_print_error);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", names[i]);
-          f_color_print(main.error.to.stream, main.context.set.error, "' is required but is not specified in the settings file '");
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", setting_file.used ? path_file : main.file_data_build_settings.string);
-          f_color_print(main.error.to.stream, main.context.set.error, "'.");
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+          flockfile(main.error.to.stream);
+
+          fl_print_format("%c%[%SThe setting '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, names[i], main.error.notable);
+          fl_print_format("%[' is required but is not specified in the settings file '%]", main.error.to.stream, main.error.context, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, setting_file.used ? path_file : main.file_data_build_settings.string, main.error.notable);
+          fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+          funlockfile(main.error.to.stream);
 
           failed = F_true;
         }
@@ -1858,13 +1856,15 @@ extern "C" {
 
         if (found == F_false) {
           if (main.error.verbosity != f_console_verbosity_quiet) {
-            fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(main.error.to.stream, main.context.set.error, "%sThe specified mode '", fll_error_print_error);
-            f_color_print(main.error.to.stream, main.context.set.notable, "%s", modes->array[i].string);
-            f_color_print(main.error.to.stream, main.context.set.error, "' is not a valid mode, according to '");
-            f_color_print(main.error.to.stream, main.context.set.notable, "%s", path_file);
-            f_color_print(main.error.to.stream, main.context.set.error, "'.");
-            fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+            flockfile(main.error.to.stream);
+
+            fl_print_format("%c%[%SThe specified mode '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+            fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, modes->array[i], main.error.notable);
+            fl_print_format("%[' is not a valid mode, according to '%]", main.error.to.stream, main.error.context, main.error.context);
+            fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, path_file, main.error.notable);
+            fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+            funlockfile(main.error.to.stream);
           }
 
           error_printed = F_true;
@@ -1909,7 +1909,7 @@ extern "C" {
         if (F_status_is_error(*status)) break;
       } // for
 
-      // "build_libaries" is appended after all modes to help assist with static linker file issues (@todo there should likely be more options to have a postfix linker parameter that can be added here instead, such as "build_libraries_last").
+      // "build_libraries" is appended after all modes to help assist with static linker file issues (@todo there should likely be more options to have a postfix linker parameter that can be added here instead, such as "build_libraries_last").
       if (total_build_libraries) {
         f_string_dynamic_t temporary[total_build_libraries];
 
@@ -1939,12 +1939,14 @@ extern "C" {
     if (F_status_is_error(*status)) {
       if (*status == F_status_set_error(F_string_too_large)) {
         if (main.error.verbosity != f_console_verbosity_quiet) {
+          funlockfile(main.error.to.stream);
+
           // @todo update FSS functions to return which setting index the problem happened on.
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main.error.to.stream, main.context.set.error, "%sA setting in the build setting file '", fll_error_print_error);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", path_file);
-          f_color_print(main.error.to.stream, main.context.set.error, "' is too long.");
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+          fl_print_format("%c%[%SA setting in the build setting file '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, path_file, main.error.notable);
+          fl_print_format("%[' is too long.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+          funlockfile(main.error.to.stream);
         }
       }
       else if (!error_printed) {
@@ -2241,16 +2243,18 @@ extern "C" {
         if (!settings_single_source[i]->used) continue;
 
         if (settings_single_source[i]->used > 1) {
-          if (main.error.verbosity == f_console_verbosity_verbose) {
-            fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-            f_color_print(main.output.stream, main.context.set.warning, "%sthe setting '", fll_error_print_warning);
-            f_color_print(main.output.stream, main.context.set.notable, "%s", settings_single_name[i]);
-            f_color_print(main.output.stream, main.context.set.warning, "' in the file '");
-            f_color_print(main.output.stream, main.context.set.notable, "%s", path_file);
-            f_color_print(main.output.stream, main.context.set.warning, "' may only have a single property, only using the first: '");
-            f_color_print(main.output.stream, main.context.set.notable, "%s", settings_single_source[i]->array[0].string);
-            f_color_print(main.output.stream, main.context.set.warning, "'.");
-            fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+          if (main.warning.verbosity == f_console_verbosity_verbose) {
+            flockfile(main.warning.to.stream);
+
+            fl_print_format("%c%[%SThe setting '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+            fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, settings_single_name[i], main.warning.notable);
+            fl_print_format("%[' in the file '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+            fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, path_file, main.warning.notable);
+            fl_print_format("%[' may only have a single property, only using the first: '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+            fl_print_format("%[%Q%]", main.warning.to.stream, main.warning.notable, settings_single_source[i]->array[0], main.warning.notable);
+            fl_print_format("%['.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
+
+            funlockfile(main.warning.to.stream);
           }
         }
 
@@ -2264,20 +2268,22 @@ extern "C" {
           else {
             *settings_single_bool[i] = F_true;
 
-            if (main.error.verbosity == f_console_verbosity_verbose) {
-              fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main.output.stream, main.context.set.warning, "%sthe setting '", fll_error_print_warning);
-              f_color_print(main.output.stream, main.context.set.notable, "%s", settings_single_name[i]);
-              f_color_print(main.output.stream, main.context.set.warning, "' in the file '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", path_file);
-              f_color_print(main.output.stream, main.context.set.warning, "' may be either '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", fake_common_setting_bool_yes);
-              f_color_print(main.output.stream, main.context.set.warning, "' or '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", fake_common_setting_bool_no);
-              f_color_print(main.output.stream, main.context.set.warning, "', defaulting to '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", fake_common_setting_bool_yes);
-              f_color_print(main.output.stream, main.context.set.warning, "'.");
-              fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+            if (main.warning.verbosity == f_console_verbosity_verbose) {
+              flockfile(main.warning.to.stream);
+
+              fl_print_format("%c%[%SThe setting '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+              fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, settings_single_name[i], main.warning.notable);
+              fl_print_format("%[' in the file '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, path_file, main.warning.notable);
+              fl_print_format("%[' may be either '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_common_setting_bool_yes, main.warning.notable);
+              fl_print_format("%[' or '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_common_setting_bool_no, main.warning.notable);
+              fl_print_format("%[', defaulting to '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_common_setting_bool_yes, main.warning.notable);
+              fl_print_format("%['.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
+
+              funlockfile(main.warning.to.stream);
             }
           }
         }
@@ -2294,22 +2300,24 @@ extern "C" {
           else {
             *settings_single_language[i] = fake_build_language_type_c;
 
-            if (main.error.verbosity == f_console_verbosity_verbose) {
-              fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main.output.stream, main.context.set.warning, "%sthe setting '", fll_error_print_warning);
-              f_color_print(main.output.stream, main.context.set.notable, "%s", settings_single_name[i]);
-              f_color_print(main.output.stream, main.context.set.warning, "' in the file '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", path_file);
-              f_color_print(main.output.stream, main.context.set.warning, "' may only be one of '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_language_bash);
-              f_color_print(main.output.stream, main.context.set.warning, "', '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_language_c);
-              f_color_print(main.output.stream, main.context.set.warning, "', or '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_language_cpp);
-              f_color_print(main.output.stream, main.context.set.warning, "', defaulting to '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_language_c);
-              f_color_print(main.output.stream, main.context.set.warning, "'.");
-              fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+            if (main.warning.verbosity == f_console_verbosity_verbose) {
+              flockfile(main.warning.to.stream);
+
+              fl_print_format("%c%[%SThe setting '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+              fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, settings_single_name[i], main.warning.notable);
+              fl_print_format("%[' in the file '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, path_file, main.warning.notable);
+              fl_print_format("%[' may only be one of '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_build_language_bash, main.warning.notable);
+              fl_print_format("%[', '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_build_language_c, main.warning.notable);
+              fl_print_format("%[', or '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_build_language_cpp, main.warning.notable);
+              fl_print_format("%[', defaulting to '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_build_language_c, main.warning.notable);
+              fl_print_format("%['.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
+
+              funlockfile(main.warning.to.stream);
             }
           }
         }
@@ -2329,24 +2337,26 @@ extern "C" {
           else {
             *settings_single_version[i] = settings_single_version_default[i];
 
-            if (main.error.verbosity == f_console_verbosity_verbose) {
-              fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main.output.stream, main.context.set.warning, "%sthe setting '", fll_error_print_warning);
-              f_color_print(main.output.stream, main.context.set.notable, "%s", settings_single_name[i]);
-              f_color_print(main.output.stream, main.context.set.warning, "' in the file '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", path_file);
-              f_color_print(main.output.stream, main.context.set.warning, "' may only be one of '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_version_major);
-              f_color_print(main.output.stream, main.context.set.warning, "', '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_version_minor);
-              f_color_print(main.output.stream, main.context.set.warning, "', '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_version_micro);
-              f_color_print(main.output.stream, main.context.set.warning, "', or '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_version_nano);
-              f_color_print(main.output.stream, main.context.set.warning, "', defaulting to '");
-              f_color_print(main.output.stream, main.context.set.notable, "%s", settings_single_version_default_name[i]);
-              f_color_print(main.output.stream, main.context.set.warning, "'.");
-              fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+            if (main.warning.verbosity == f_console_verbosity_verbose) {
+              flockfile(main.warning.to.stream);
+
+              fl_print_format("%c%[%SThe setting '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+              fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, settings_single_name[i], main.warning.notable);
+              fl_print_format("%[' in the file '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, path_file, main.warning.notable);
+              fl_print_format("%[' may only be one of '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_build_version_major, main.warning.notable);
+              fl_print_format("%[', '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_build_version_minor, main.warning.notable);
+              fl_print_format("%[', '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_build_version_micro, main.warning.notable);
+              fl_print_format("%[', or '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_build_version_nano, main.warning.notable);
+              fl_print_format("%[', defaulting to '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+              fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, settings_single_version_default_name[i], main.warning.notable);
+              fl_print_format("%['.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
+
+              funlockfile(main.warning.to.stream);
             }
           }
         }
@@ -2383,32 +2393,36 @@ extern "C" {
         if (!setting->version_file) {
           setting->version_file = fake_build_version_type_micro;
 
-          if (main.error.verbosity == f_console_verbosity_verbose) {
-            fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-            f_color_print(main.output.stream, main.context.set.warning, "%sthe setting '", fll_error_print_warning);
-            f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_setting_name_version_file);
-            f_color_print(main.output.stream, main.context.set.warning, "' in the file '");
-            f_color_print(main.output.stream, main.context.set.notable, "%s", path_file);
-            f_color_print(main.output.stream, main.context.set.warning, "' is required, defaulting to '");
-            f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_version_micro);
-            f_color_print(main.output.stream, main.context.set.warning, "'.");
-            fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+          if (main.warning.verbosity == f_console_verbosity_verbose) {
+            flockfile(main.warning.to.stream);
+
+            fl_print_format("%c%[%SThe setting '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+            fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, fake_build_setting_name_version_file, main.warning.notable);
+            fl_print_format("%[' in the file '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+            fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, path_file, main.warning.notable);
+            fl_print_format("%[' is required, defaulting to '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+            fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_build_version_micro, main.warning.notable);
+            fl_print_format("%['.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
+
+            funlockfile(main.warning.to.stream);
           }
         }
 
         if (!setting->version_target) {
           setting->version_target = fake_build_version_type_major;
 
-          if (main.error.verbosity == f_console_verbosity_verbose) {
-            fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-            f_color_print(main.output.stream, main.context.set.warning, "%sthe setting '", fll_error_print_warning);
-            f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_setting_name_version_target);
-            f_color_print(main.output.stream, main.context.set.warning, "' in the file '");
-            f_color_print(main.output.stream, main.context.set.notable, "%s", path_file);
-            f_color_print(main.output.stream, main.context.set.warning, "' is required, defaulting to '");
-            f_color_print(main.output.stream, main.context.set.notable, "%s", fake_build_version_major);
-            f_color_print(main.output.stream, main.context.set.warning, "'.");
-            fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+          if (main.warning.verbosity == f_console_verbosity_verbose) {
+            flockfile(main.warning.to.stream);
+
+            fl_print_format("%c%[%SThe setting '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+            fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, fake_build_setting_name_version_target, main.warning.notable);
+            fl_print_format("%[' in the file '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+            fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, path_file, main.warning.notable);
+            fl_print_format("%[' is required, defaulting to '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+            fl_print_format("%[%s%]", main.warning.to.stream, main.warning.notable, fake_build_version_major, main.warning.notable);
+            fl_print_format("%['.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
+
+            funlockfile(main.warning.to.stream);
           }
         }
       }
@@ -2482,17 +2496,20 @@ extern "C" {
             prefix[i]->used = 0;
 
             for (j = 0; j < 2; ++j) {
+
               if (setting_target[j] && i + 1 <= setting_target[j]) {
                 if (main.error.verbosity != f_console_verbosity_quiet) {
-                  fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-                  f_color_print(main.error.to.stream, main.context.set.error, "%sWhen the '", fll_error_print_error);
-                  f_color_print(main.error.to.stream, main.context.set.notable, "%s", setting_name[j]);
-                  f_color_print(main.error.to.stream, main.context.set.error, "' is set to '");
-                  f_color_print(main.error.to.stream, main.context.set.notable, "%s", name_target[setting_target[j] - 1]);
-                  f_color_print(main.error.to.stream, main.context.set.error, "', then the '");
-                  f_color_print(main.error.to.stream, main.context.set.notable, "%s", name_object[i]);
-                  f_color_print(main.error.to.stream, main.context.set.error, "' Object must have Content.");
-                  fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+                  flockfile(main.error.to.stream);
+
+                  fl_print_format("%c%[%SWhen the '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+                  fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, setting_name[j], main.error.notable);
+                  fl_print_format("%[' is set to '%]", main.error.to.stream, main.error.context, main.error.context);
+                  fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, name_target[setting_target[j] - 1], main.error.notable);
+                  fl_print_format("%[' then the '%]", main.error.to.stream, main.error.context, main.error.context);
+                  fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, name_object[i], main.error.notable);
+                  fl_print_format("%[' Object must have Content.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+                  funlockfile(main.error.to.stream);
                 }
 
                 *status = F_status_set_error(F_failure);
@@ -2606,23 +2623,18 @@ extern "C" {
           setting->search_shared = F_false;
         }
 
-        if (main.error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main.output.stream, main.context.set.error, "%sthe parameters '", fll_error_print_warning);
-          f_color_print(main.output.stream, main.context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_shared_disabled);
-          f_color_print(main.output.stream, main.context.set.error, "' and '");
-          f_color_print(main.output.stream, main.context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_shared_enabled);
-          f_color_print(main.output.stream, main.context.set.error, "' contradict, defaulting to '");
-
-          if (setting->build_shared) {
-            f_color_print(main.output.stream, main.context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_shared_enabled);
-          }
-          else {
-            f_color_print(main.output.stream, main.context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_shared_disabled);
-          }
+        if (main.error.verbosity != f_console_verbosity_quiet) {
+          flockfile(main.error.to.stream);
 
-          f_color_print(main.output.stream, main.context.set.error, "'.");
-          fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+          fl_print_format("%c%[%SThe parameters '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+          fl_print_format("%[%s%s%]", main.error.to.stream, main.error.notable, f_console_symbol_long_enable_s, fake_long_shared_disabled, main.error.notable);
+          fl_print_format("%[' and '%]", main.error.to.stream, main.error.context, main.error.context);
+          fl_print_format("%[%s%s%]", main.error.to.stream, main.error.notable, f_console_symbol_long_enable_s, fake_long_shared_enabled, main.error.notable);
+          fl_print_format("%[' contradict, defaulting to '%]", main.error.to.stream, main.error.context, main.error.context);
+          fl_print_format("%[%s%s%]", main.error.to.stream, main.error.notable, f_console_symbol_long_enable_s, setting->build_shared ? fake_long_shared_enabled : fake_long_shared_disabled, main.error.notable);
+          fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+          funlockfile(main.error.to.stream);
         }
       }
       else {
@@ -2647,22 +2659,17 @@ extern "C" {
         }
 
         if (main.error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main.output.stream, main.context.set.error, "%sthe parameters '", fll_error_print_warning);
-          f_color_print(main.output.stream, main.context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_static_disabled);
-          f_color_print(main.output.stream, main.context.set.error, "' and '");
-          f_color_print(main.output.stream, main.context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_static_enabled);
-          f_color_print(main.output.stream, main.context.set.error, "' contradict, defaulting to '");
-
-          if (setting->build_static) {
-            f_color_print(main.output.stream, main.context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_static_enabled);
-          }
-          else {
-            f_color_print(main.output.stream, main.context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_static_disabled);
-          }
+          flockfile(main.error.to.stream);
+
+          fl_print_format("%c%[%SThe parameters '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+          fl_print_format("%[%s%s%]", main.error.to.stream, main.error.notable, f_console_symbol_long_enable_s, fake_long_static_disabled, main.error.notable);
+          fl_print_format("%[' and '%]", main.error.to.stream, main.error.context, main.error.context);
+          fl_print_format("%[%s%s%]", main.error.to.stream, main.error.notable, f_console_symbol_long_enable_s, fake_long_static_enabled, main.error.notable);
+          fl_print_format("%[' contradict, defaulting to '%]", main.error.to.stream, main.error.context, main.error.context);
+          fl_print_format("%[%s%s%]", main.error.to.stream, main.error.notable, f_console_symbol_long_enable_s, setting->build_static ? fake_long_static_enabled : fake_long_static_disabled, main.error.notable);
+          fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
 
-          f_color_print(main.output.stream, main.context.set.error, "'.");
-          fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+          funlockfile(main.error.to.stream);
         }
       }
       else {
@@ -2678,22 +2685,17 @@ extern "C" {
     if (setting->build_language == fake_build_language_type_c || setting->build_language == fake_build_language_type_cpp) {
       if (setting->build_shared == F_false && setting->build_static == F_false) {
         if (main.error.verbosity != f_console_verbosity_quiet) {
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main.error.to.stream, main.context.set.error, "%sThe build settings '", fll_error_print_error);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", fake_build_setting_name_build_shared);
-          f_color_print(main.error.to.stream, main.context.set.error, "' and '");
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", fake_build_setting_name_build_static);
-          f_color_print(main.error.to.stream, main.context.set.error, "' cannot both be false when using the language '");
-
-          if (setting->build_language == fake_build_language_type_c) {
-            f_color_print(main.error.to.stream, main.context.set.notable, "%s", fake_build_language_c);
-          }
-          else {
-            f_color_print(main.error.to.stream, main.context.set.notable, "%s", fake_build_language_cpp);
-          }
+          flockfile(main.error.to.stream);
 
-          f_color_print(main.error.to.stream, main.context.set.error, "'.");
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+          fl_print_format("%c%[%SThe build settings '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+          fl_print_format("%[%s%]", main.error.to.stream, main.error.notable, fake_build_setting_name_build_shared, main.error.notable);
+          fl_print_format("%[' and '%]", main.error.to.stream, main.error.context, main.error.context);
+          fl_print_format("%[%s%]", main.error.to.stream, main.error.notable, fake_build_setting_name_build_static, main.error.notable);
+          fl_print_format("%[' cannot both be false when using the language '%]", main.error.to.stream, main.error.context, main.error.context);
+          fl_print_format("%[%s%]", main.error.to.stream, main.error.notable, f_console_symbol_long_enable_s, setting->build_language == fake_build_language_type_c ? fake_build_language_c : fake_build_language_cpp, main.error.notable);
+          fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+          funlockfile(main.error.to.stream);
         }
 
         *status = F_status_set_error(F_failure);
@@ -2852,9 +2854,7 @@ extern "C" {
     if (!data_build.setting.build_sources_library.used) return 0;
 
     if (main.error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.output.stream, main.context.set.important, "Compiling static objects.");
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+      fll_print_format("%c%[Compiling static objects.%]%c", main.output.stream, f_string_eol_s[0], main.context.set.important, main.context.set.important, f_string_eol_s[0]);
     }
 
     f_string_dynamic_t file_name = f_string_dynamic_t_initialize;
@@ -2941,11 +2941,13 @@ extern "C" {
 
         if (*status == F_false) {
           if (main.error.verbosity != f_console_verbosity_quiet) {
-            fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(main.error.to.stream, main.context.set.error, "%sThe path '", fll_error_print_error);
-            f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination_path.string);
-            f_color_print(main.error.to.stream, main.context.set.error, "' exists but is not a directory.");
-            fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+            flockfile(main.error.to.stream);
+
+            fl_print_format("%c%[%SThe path '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+            fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, destination_path, main.error.notable);
+            fl_print_format("%[' exists but is not a directory.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+            funlockfile(main.error.to.stream);
           }
 
           *status = F_status_set_error(F_failure);
@@ -2956,11 +2958,13 @@ extern "C" {
 
           if (F_status_is_error(*status)) {
             if (F_status_set_fine(*status) == F_file_found_not) {
-              fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main.error.to.stream, main.context.set.error, "%sThe path '", fll_error_print_error);
-              f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination_path.string);
-              f_color_print(main.error.to.stream, main.context.set.error, "' could not be created, a parent directory does not exist.");
-              fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+              flockfile(main.error.to.stream);
+
+              fl_print_format("%c%[%SThe path '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+              fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, destination_path, main.error.notable);
+              fl_print_format("%[' could not be created, a parent directory does not exist.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+              funlockfile(main.error.to.stream);
             }
             else {
               fll_error_file_print(main.error, F_status_set_fine(*status), "f_directory_create", F_true, destination_path.string, "create", fll_error_file_type_directory);
@@ -2970,7 +2974,7 @@ extern "C" {
           }
 
           if (main.error.verbosity == f_console_verbosity_verbose) {
-            fprintf(main.output.stream, "Directory '%s' created.%c", destination_path.string, f_string_eol_s[0]);
+            fll_print_format("Directory '%S' created.%c", main.output.stream, destination_path, f_string_eol_s[0]);
           }
         }
         else if (F_status_is_error(*status)) {
@@ -3066,17 +3070,13 @@ extern "C" {
 
     if (F_status_is_fine(status)) {
       if (main->error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main->output.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main->output.stream, main->context.set.important, "Building project%c", data_build.setting.project_name.used ? ' ' : 0);
+        flockfile(main->output.stream);
 
-        if (data_build.setting.project_name.used) {
-          f_color_print_code(main->output.stream, main->context.notable);
-          f_print_dynamic(main->output.stream, data_build.setting.project_name);
-          f_color_print_code(main->output.stream, main->context.reset);
-        }
+        fl_print_format("%c%[Building project%] ", main->output.stream, f_string_eol_s[0], main->context.set.important, main->context.set.important);
+        fl_print_format("%[%Q%]", main->output.stream, main->context.set.notable, data_build.setting.project_name, main->context.set.notable);
+        fl_print_format("%[.%]%c", main->output.stream, main->context.set.important, main->context.set.important, f_string_eol_s[0]);
 
-        f_color_print(main->output.stream, main->context.set.important, ".");
-        fprintf(main->output.stream, "%c", f_string_eol_s[0]);
+        funlockfile(main->output.stream);
       }
     }
 
@@ -3188,9 +3188,7 @@ extern "C" {
     if (!data_build.setting.build_sources_program.used) return 0;
 
     if (main.error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.output.stream, main.context.set.important, "Compiling shared program.");
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+      fll_print_format("%c%[Compiling shared program.%]%c", main.output.stream, f_string_eol_s[0], main.context.set.important, main.context.set.important, f_string_eol_s[0]);
     }
 
     f_string_dynamics_t arguments = f_string_dynamics_t_initialize;
@@ -3293,9 +3291,7 @@ extern "C" {
     if (!data_build.setting.build_sources_program.used) return 0;
 
     if (main.error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.output.stream, main.context.set.important, "Compiling static program.");
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+      fll_print_format("%c%[Compiling static program.%]%c", main.output.stream, f_string_eol_s[0], main.context.set.important, main.context.set.important, f_string_eol_s[0]);
     }
 
     f_string_dynamics_t arguments = f_string_dynamics_t_initialize;
index ed6fa07b972c87c9f96cb408e49ff6c379c0bd04..1401c31209ff1779386743e3d7e25546d717940e 100644 (file)
@@ -16,10 +16,13 @@ extern "C" {
     f_status_t status = F_none;
 
     if (main.error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.output.stream, main.context.set.important, "Deleting all files within build directory '");
-      f_color_print(main.output.stream, main.context.set.notable, "%s", main.path_build.string);
-      f_color_print(main.output.stream, main.context.set.important, "'.%c", f_string_eol_s[0]);
+      flockfile(main.output.stream);
+
+      fl_print_format("%c%[Deleting all files within build directory '%]", main.output.stream, f_string_eol_s[0], main.context.set.important, main.context.set.important);
+      fl_print_format("%[%Q%]", main.output.stream, main.context.set.notable, main.path_build, main.context.set.notable);
+      fl_print_format("%[.%]%c", main.output.stream, main.context.set.important, main.context.set.important, f_string_eol_s[0]);
+
+      funlockfile(main.output.stream);
     }
 
     if (fake_signal_received(main)) {
@@ -35,7 +38,13 @@ extern "C" {
 
     if (F_status_set_fine(status) == F_file_found_not) {
       if (main.error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main.output.stream, "The build directory '%s' does not exist.%c", main.path_build.string, f_string_eol_s[0]);
+        flockfile(main.output.stream);
+
+        f_print_terminated("The build directory '", main.output.stream);
+        fl_print_format("%[%Q%]", main.output.stream, main.context.set.notable, main.path_build, main.context.set.notable);
+        fl_print_format("' does not exist.%c", main.output.stream, f_string_eol_s[0]);
+
+        funlockfile(main.output.stream);
       }
 
       status = F_none;
@@ -61,7 +70,7 @@ extern "C" {
     if (!result) {
 
       // @todo in order to get this working, the recursive function that calls this needs to be rewritten with more flexibility or provide a higher-level equivalent function.
-      printf("Removed '%s'.%c", path, f_string_eol_s[0]);
+      fll_print_format("Removed '%S'.%c", stdout, path, f_string_eol_s[0]);
     }
 
     return result;
index 263f3468d8fb064a64d1c5b927f83d473be19aa2..ea3de3d60f238568ce2c5e8730ac46c941002cfc 100644 (file)
@@ -15,16 +15,20 @@ extern "C" {
     if (F_status_is_error(*status)) return 1;
 
     if (main.error.verbosity == f_console_verbosity_verbose) {
-      fprintf(main.output.stream, "%s", program.string);
+      flockfile(main.output.stream);
+
+      f_print_dynamic(program, main.output.stream);
 
       for (f_array_length_t i = 0; i < arguments.used; ++i) {
 
         if (!arguments.array[i].used) continue;
 
-        fprintf(main.output.stream, " %s", arguments.array[i].string);
+        fl_print_format(" %Q", main.output.stream, arguments.array[i]);
       } // for
 
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+      f_print_character(f_string_eol_s[0], main.output.stream);
+
+      funlockfile(main.output.stream);
 
       // flush to stdout before executing command.
       fflush(main.output.stream);
@@ -71,10 +75,13 @@ extern "C" {
 
       if (F_status_set_fine(*status) == F_file_found_not) {
         if (main.error.verbosity != f_console_verbosity_quiet) {
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main.error.to.stream, main.context.set.error, "%sFailed to find program '", fll_error_print_error);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", program.used ? program.string : f_string_empty_s);
-          f_color_print(main.error.to.stream, main.context.set.error, "' for executing.%c", f_string_eol_s[0]);
+          flockfile(main.error.to.stream);
+
+          fl_print_format("%c%[%SFailed to find program '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+          fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, program, main.error.notable);
+          fl_print_format("%[' for executing.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+          funlockfile(main.error.to.stream);
         }
       }
       else {
@@ -679,10 +686,13 @@ extern "C" {
 
                 if (F_status_is_error(status)) {
                   if (fll_error_print(main->error, F_status_set_fine(status), "f_utf_is_word_dash_plus", F_false) == F_known_not && main->error.verbosity != f_console_verbosity_quiet) {
-                    fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-                    f_color_print(main->error.to.stream, main->context.set.error, "%sFailed to process the parameter '", fll_error_print_error);
-                    f_color_print(main->error.to.stream, main->context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_process);
-                    f_color_print(main->error.to.stream, main->context.set.error, "'.%c", f_string_eol_s[0]);
+                    flockfile(main->error.to.stream);
+
+                    fl_print_format("%c%[%SFailed to process the parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context);
+                    fl_print_format("%[%s%s%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fake_long_process, main->error.notable);
+                    fl_print_format("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+
+                    funlockfile(main->error.to.stream);
                   }
 
                   return status;
@@ -690,12 +700,15 @@ extern "C" {
 
                 if (status == F_false) {
                   if (main->error.verbosity != f_console_verbosity_quiet) {
-                    fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-                    f_color_print(main->error.to.stream, main->context.set.error, "%sThe '", fll_error_print_error);
-                    f_color_print(main->error.to.stream, main->context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_process);
-                    f_color_print(main->error.to.stream, main->context.set.error, "' parameters value '");
-                    f_color_print(main->error.to.stream, main->context.set.notable, "%s", arguments.argv[location]);
-                    f_color_print(main->error.to.stream, main->context.set.error, "' contains non-word, non-dash, and non-plus characters.%c", f_string_eol_s[0]);
+                    flockfile(main->error.to.stream);
+
+                    fl_print_format("%c%[%SThe '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context);
+                    fl_print_format("%[%s%s%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fake_long_process, main->error.notable);
+                    fl_print_format("%[' parameters value '%]", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+                    fl_print_format("%[%S%]", main->error.to.stream, main->error.notable, arguments.argv[location], main->error.notable);
+                    fl_print_format("%[' contains non-word, non-dash, and non-plus characters.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+
+                    funlockfile(main->error.to.stream);
                   }
 
                   return F_status_set_error(F_parameter);
@@ -708,10 +721,13 @@ extern "C" {
             if (F_status_is_error(status)) {
               if (status == F_status_set_error(F_string_too_large)) {
                 if (main->error.verbosity != f_console_verbosity_quiet) {
-                  fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-                  f_color_print(main->error.to.stream, main->context.set.error, "%sThe parameter '", fll_error_print_error);
-                  f_color_print(main->error.to.stream, main->context.set.notable, "%s%s", f_console_symbol_long_enable_s, parameters_name[i]);
-                  f_color_print(main->error.to.stream, main->context.set.error, "' is too long.%c", f_string_eol_s[0]);
+                  flockfile(main->error.to.stream);
+
+                  fl_print_format("%c%[%SThe parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context);
+                  fl_print_format("%[%s%S%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, parameters_name[i], main->error.notable);
+                  fl_print_format("%[' is too long.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+
+                  funlockfile(main->error.to.stream);
                 }
               }
               else {
@@ -727,10 +743,13 @@ extern "C" {
 
           if (length == 0 || status == F_data_not) {
             if (main->error.verbosity != f_console_verbosity_quiet) {
-              fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main->error.to.stream, main->context.set.error, "%sThe parameter '", fll_error_print_error);
-              f_color_print(main->error.to.stream, main->context.set.notable, "%s%s", f_console_symbol_long_enable_s, parameters_name[i]);
-              f_color_print(main->error.to.stream, main->context.set.error, "' must not be empty and must not contain only whitespace.%c", f_string_eol_s[0]);
+              flockfile(main->error.to.stream);
+
+              fl_print_format("%c%[%SThe parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context);
+              fl_print_format("%[%s%S%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, parameters_name[i], main->error.notable);
+              fl_print_format("%[' must not be empty and must not contain only whitespace.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+
+              funlockfile(main->error.to.stream);
             }
           }
         }
@@ -807,10 +826,13 @@ extern "C" {
 
           if (F_status_is_error(status)) {
             if (fll_error_print(main->error, F_status_set_fine(status), "fl_console_parameter_to_string_dynamic_directory", F_false) == F_known_not && main->error.verbosity != f_console_verbosity_quiet) {
-              fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main->error.to.stream, main->context.set.error, "%sFailed to process parameter '", fll_error_print_error);
-              f_color_print(main->error.to.stream, main->context.set.notable, "%s%s", f_console_symbol_long_enable_s, parameters_name[i]);
-              f_color_print(main->error.to.stream, main->context.set.error, "'.%c", f_string_eol_s[0]);
+              flockfile(main->error.to.stream);
+
+              fl_print_format("%c%[%SFailed to process parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context);
+              fl_print_format("%[%s%S%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, parameters_name[i], main->error.notable);
+              fl_print_format("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+
+              funlockfile(main->error.to.stream);
             }
 
             return status;
@@ -821,10 +843,13 @@ extern "C" {
 
           if (F_status_is_error(status)) {
             if (fll_error_print(main->error, F_status_set_fine(status), " macro_f_string_dynamic_t_resize", F_false) == F_known_not && main->error.verbosity != f_console_verbosity_quiet) {
-              fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main->error.to.stream, main->context.set.error, "%sFailed to load default for the parameter '", fll_error_print_error);
-              f_color_print(main->error.to.stream, main->context.set.notable, "%s%s", f_console_symbol_long_enable_s, parameters_name[i]);
-              f_color_print(main->error.to.stream, main->context.set.error, "'.%c", f_string_eol_s[0]);
+              flockfile(main->error.to.stream);
+
+              fl_print_format("%c%[%SFailed to load default for the parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context);
+              fl_print_format("%[%s%S%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, parameters_name[i], main->error.notable);
+              fl_print_format("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+
+              funlockfile(main->error.to.stream);
             }
 
             return status;
@@ -841,10 +866,13 @@ extern "C" {
 
       if (F_status_is_error(status)) {
         if (fll_error_print(main->error, F_status_set_fine(status), "fll_program_parameter_additional_rip", F_false) == F_known_not && main->error.verbosity != f_console_verbosity_quiet) {
-          fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main->error.to.stream, main->context.set.error, "%sFailed to process the parameter '", fll_error_print_error);
-          f_color_print(main->error.to.stream, main->context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_define);
-          f_color_print(main->error.to.stream, main->context.set.error, "'.%c", f_string_eol_s[0]);
+          flockfile(main->error.to.stream);
+
+          fl_print_format("%c%[%SFailed to process the parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context);
+          fl_print_format("%[%s%s%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fake_long_define, main->error.notable);
+          fl_print_format("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+
+          funlockfile(main->error.to.stream);
         }
 
         return status;
@@ -860,10 +888,13 @@ extern "C" {
 
       if (F_status_is_error(status)) {
         if (fll_error_print(main->error, F_status_set_fine(status), "fll_program_parameter_additional_rip", F_false) == F_known_not && main->error.verbosity != f_console_verbosity_quiet) {
-          fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main->error.to.stream, main->context.set.error, "%sFailed to process the parameter '", fll_error_print_error);
-          f_color_print(main->error.to.stream, main->context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_mode);
-          f_color_print(main->error.to.stream, main->context.set.error, "'.%c", f_string_eol_s[0]);
+          flockfile(main->error.to.stream);
+
+          fl_print_format("%c%[%SFailed to process the parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context);
+          fl_print_format("%[%s%s%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fake_long_mode, main->error.notable);
+          fl_print_format("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+
+          funlockfile(main->error.to.stream);
         }
 
         return status;
@@ -883,10 +914,13 @@ extern "C" {
 
           if (F_status_is_error(status)) {
             if (fll_error_print(main->error, F_status_set_fine(status), "f_utf_is_word_dash_plus", F_false) == F_known_not && main->error.verbosity != f_console_verbosity_quiet) {
-              fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main->error.to.stream, main->context.set.error, "%sFailed to process the parameter '", fll_error_print_error);
-              f_color_print(main->error.to.stream, main->context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_mode);
-              f_color_print(main->error.to.stream, main->context.set.error, "'.%c", f_string_eol_s[0]);
+              flockfile(main->error.to.stream);
+
+              fl_print_format("%c%[%SFailed to process the parameter '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context);
+              fl_print_format("%[%s%s%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fake_long_mode, main->error.notable);
+              fl_print_format("%['.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+
+              funlockfile(main->error.to.stream);
             }
 
             return status;
@@ -894,12 +928,15 @@ extern "C" {
 
           if (status == F_false) {
             if (main->error.verbosity != f_console_verbosity_quiet) {
-              fprintf(main->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main->error.to.stream, main->context.set.error, "%sThe '", fll_error_print_error);
-              f_color_print(main->error.to.stream, main->context.set.notable, "%s%s", f_console_symbol_long_enable_s, fake_long_mode);
-              f_color_print(main->error.to.stream, main->context.set.error, "' parameters value '");
-              f_color_print(main->error.to.stream, main->context.set.notable, "%s", main->mode.array[i].string);
-              f_color_print(main->error.to.stream, main->context.set.error, "' contains non-word, non-dash, and non-plus characters.%c", f_string_eol_s[0]);
+              flockfile(main->error.to.stream);
+
+              fl_print_format("%c%[%SThe '%]", main->error.to.stream, f_string_eol_s[0], main->error.context, main->error.prefix, main->error.context);
+              fl_print_format("%[%s%s%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fake_long_mode, main->error.notable);
+              fl_print_format("%[' parameters value '%]", main->error.to.stream, main->error.notable, f_console_symbol_long_enable_s, fake_long_mode, main->error.notable);
+              fl_print_format("%[%Q%]", main->error.to.stream, main->error.notable, main->mode.array[i], main->error.notable);
+              fl_print_format("%[' contains non-word, non-dash, and non-plus characters.%]%c", main->error.to.stream, main->error.context, main->error.context, f_string_eol_s[0]);
+
+              funlockfile(main->error.to.stream);
             }
 
             return F_status_set_error(F_parameter);
@@ -936,9 +973,7 @@ extern "C" {
         case F_signal_termination:
 
           if (main.error.verbosity != f_console_verbosity_quiet) {
-            fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(main.error.to.stream, main.context.set.error, "ALERT: An appropriate exit signal has been received, now aborting.");
-            fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+            fll_print_format("%c%[ALERT: An appropriate exit signal has been received, now aborting.%]%c", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.context, f_string_eol_s[0]);
           }
 
           return F_true;
@@ -1057,10 +1092,13 @@ extern "C" {
         }
       }
       else if (parameters_required[i]) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sNo valid path for the (required) directory parameter '", fll_error_print_error);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s%s", f_console_symbol_long_enable_s, parameters_name[i]);
-        f_color_print(main.error.to.stream, main.context.set.error, "' was found.%c", f_string_eol_s[0]);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SNo valid path for the (required) directory parameter '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+        fl_print_format("%[%s%s%]", main.error.to.stream, main.error.notable, f_console_symbol_long_enable_s, parameters_name[i], main.error.notable);
+        fl_print_format("%[' was found.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
 
         return F_status_set_error(F_directory_found_not);
       }
@@ -1072,19 +1110,19 @@ extern "C" {
 
 #ifndef _di_fake_verbose_print_clone_
   void fake_verbose_print_clone(const f_file_t output, const f_string_t source, const f_string_t destination) {
-    fprintf(output.stream, "Cloned '%s' to '%s'.%c", source, destination, f_string_eol_s[0]);
+    fll_print_format("Cloned '%S' to '%S'.%c", output.stream, source, destination, f_string_eol_s[0]);
   }
 #endif // _di_fake_verbose_print_clone_
 
 #ifndef _di_fake_verbose_print_copy_
   void fake_verbose_print_copy(const f_file_t output, const f_string_t source, const f_string_t destination) {
-    fprintf(output.stream, "Copied '%s' to '%s'.%c", source, destination, f_string_eol_s[0]);
+    fll_print_format("Copied '%S' to '%S'.%c", output.stream, source, destination, f_string_eol_s[0]);
   }
 #endif // _di_fake_verbose_print_copy_
 
 #ifndef _di_fake_verbose_print_move_
   void fake_verbose_print_move(const f_file_t output, const f_string_t source, const f_string_t destination) {
-    fprintf(output.stream, "Moved '%s' to '%s'.%c", source, destination, f_string_eol_s[0]);
+    fll_print_format("Moved '%S' to '%S'.%c", output.stream, source, destination, f_string_eol_s[0]);
   }
 #endif // _di_fake_verbose_print_move_
 
index e2ec44f51cb94278d7cd797d1904340c5d4b0092..200a1e337d38cbb1188f5a12c1890b0256a447f4 100644 (file)
@@ -66,10 +66,13 @@ extern "C" {
         }
         else if (status == F_exist_not) {
           if (main.error.verbosity != f_console_verbosity_quiet) {
-            fprintf(error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(error.to.stream, error.context, "%sThe group name '", error.prefix);
-            f_color_print(error.to.stream, error.notable, "%s", buffer.string);
-            f_color_print(error.to.stream, error.context, "' was not found.%c", f_string_eol_s[0]);
+            flockfile(main.error.to.stream);
+
+            fl_print_format("%c%[%SThe group name '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+            fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, buffer, main.error.notable);
+            fl_print_format("%[' was not found.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+            funlockfile(main.error.to.stream);
           }
 
           return F_status_set_error(F_failure);
@@ -83,10 +86,13 @@ extern "C" {
     }
     else if (number > f_type_size_32_unsigned) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(error.to.stream, error.context, "%sThe number '", error.prefix);
-        f_color_print(error.to.stream, error.notable, "%llu", number);
-        f_color_print(error.to.stream, error.context, "' is too large.%c", f_string_eol_s[0]);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SThe number '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+        fl_print_format("%[%un%]", main.error.to.stream, main.error.notable, number, main.error.notable);
+        fl_print_format("%[' is too large.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
     }
 
@@ -109,10 +115,13 @@ extern "C" {
     if (F_status_is_error(status)) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
         if (F_status_set_fine(status) == F_syntax) {
-          fprintf(error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(error.to.stream, error.context, "%sThe mode '", error.prefix);
-          f_color_print(error.to.stream, error.notable, "%s", buffer.string);
-          f_color_print(error.to.stream, error.context, "' is invalid.%c", f_string_eol_s[0]);
+          flockfile(main.error.to.stream);
+
+          fl_print_format("%c%[%SThe mode '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+          fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, buffer, main.error.notable);
+          fl_print_format("%[' is invalid.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+          funlockfile(main.error.to.stream);
         }
         else {
           fll_error_print(error, status, "f_file_mode_from_string", F_true);
@@ -148,10 +157,13 @@ extern "C" {
         }
         else if (status == F_exist_not) {
           if (main.error.verbosity != f_console_verbosity_quiet) {
-            fprintf(error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(error.to.stream, error.context, "%sThe user '", error.prefix);
-            f_color_print(error.to.stream, error.notable, "%s", buffer.string);
-            f_color_print(error.to.stream, error.context, "' was not found.%c", f_string_eol_s[0]);
+            flockfile(main.error.to.stream);
+
+            fl_print_format("%c%[%SThe user '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+            fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, buffer, main.error.notable);
+            fl_print_format("%[' was not found.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+            funlockfile(main.error.to.stream);
           }
 
           return F_status_set_error(F_failure);
@@ -165,10 +177,13 @@ extern "C" {
     }
     else if (number > f_type_size_32_unsigned) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(error.to.stream, error.context, "%sThe number '", error.prefix);
-        f_color_print(error.to.stream, error.notable, "%llu", number);
-        f_color_print(error.to.stream, error.context, "' is too large.%c", f_string_eol_s[0]);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SThe number '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+        fl_print_format("%[%un%]", main.error.to.stream, main.error.notable, number, main.error.notable);
+        fl_print_format("%[' is too large.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
     }
 
@@ -199,10 +214,13 @@ extern "C" {
 
     if (!data_make->buffer.used) {
       if (main.error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.output.stream, main.context.set.warning, "%sthe fakefile '", fll_error_print_warning);
-        f_color_print(main.output.stream, main.context.set.notable, "%s", main.file_data_build_fakefile.string);
-        f_color_print(main.output.stream, main.context.set.warning, "' is empty.");
+        flockfile(main.warning.to.stream);
+
+        fl_print_format("%c%[%SThe fakefile '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+        fl_print_format("%[%Q%]", main.warning.to.stream, main.warning.notable, main.file_data_build_fakefile, main.warning.notable);
+        fl_print_format("%[' is empty.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
+
+        funlockfile(main.warning.to.stream);
       }
 
       return;
@@ -351,12 +369,15 @@ extern "C" {
 
       if (missing_main) {
         if (main.error.verbosity != f_console_verbosity_quiet) {
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main.error.to.stream, main.error.context, "%sThe fakefile '", main.error.prefix);
-          f_color_print(main.error.to.stream, main.error.notable, "%s", main.file_data_build_fakefile.string);
-          f_color_print(main.error.to.stream, main.error.context, "' is missing the required '");
-          f_color_print(main.error.to.stream, main.error.notable, "%s", fake_make_section_main);
-          f_color_print(main.error.to.stream, main.error.context, "' object.%c", f_string_eol_s[0]);
+          flockfile(main.error.to.stream);
+
+          fl_print_format("%c%[%SThe fakefile '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+          fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, main.file_data_build_fakefile, main.error.notable);
+          fl_print_format("%[' is missing the required '%]", main.error.to.stream, main.error.context, main.error.context);
+          fl_print_format("%[%s%]", main.error.to.stream, main.error.notable, fake_make_section_main, main.error.notable);
+          fl_print_format("%[' object.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+          funlockfile(main.error.to.stream);
         }
 
         *status = F_status_set_error(F_failure);
@@ -483,18 +504,24 @@ extern "C" {
                   // Ensure that the terminating NULL is after the end of the string used size.
                   --data_make->setting_build.environment.array[data_make->setting_build.environment.used++].used;
                 }
-                else if (main.error.verbosity == f_console_verbosity_verbose) {
-                  fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-                  f_color_print(main.output.stream, main.context.set.warning, "%sThe environment name '", fll_error_print_warning);
-                  f_color_print(main.output.stream, main.context.set.notable, "%s", name_define.string);
-                  f_color_print(main.output.stream, main.context.set.warning, "' is already added.%c", f_string_eol_s[0]);
+                else if (main.warning.verbosity == f_console_verbosity_verbose) {
+                  flockfile(main.warning.to.stream);
+
+                  fl_print_format("%c%[%SThe environment name '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+                  fl_print_format("%[%Q%]", main.warning.to.stream, main.warning.notable, name_define, main.warning.notable);
+                  fl_print_format("%[' is already added.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
+
+                  funlockfile(main.warning.to.stream);
                 }
               }
-              else if (main.error.verbosity == f_console_verbosity_verbose) {
-                fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-                f_color_print(main.output.stream, main.context.set.warning, "%sThe environment name '", fll_error_print_warning);
-                f_color_print(main.output.stream, main.context.set.notable, "%s", name_define.string);
-                f_color_print(main.output.stream, main.context.set.warning, "' is invalid, ignoring.%c", f_string_eol_s[0]);
+              else if (main.warning.verbosity == f_console_verbosity_verbose) {
+                flockfile(main.warning.to.stream);
+
+                fl_print_format("%c%[%SThe environment name '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+                fl_print_format("%[%Q%]", main.warning.to.stream, main.warning.notable, name_define, main.warning.notable);
+                fl_print_format("%[' is invalid, ignoring.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
+
+                funlockfile(main.warning.to.stream);
               }
 
               name_define.used = 0;
@@ -747,14 +774,13 @@ extern "C" {
           }
           else {
             if (main.error.verbosity != f_console_verbosity_quiet) {
-              fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main.error.to.stream, main.context.set.error, "%sInvalid characters in the define setting name '", fll_error_print_error);
+              flockfile(main.error.to.stream);
 
-              f_color_print_code(main.error.to.stream, *main.error.notable.before);
-              f_print_dynamic(main.error.to.stream, define.array[i].name);
-              f_color_print_code(main.error.to.stream, *main.error.notable.after);
+              fl_print_format("%c%[%SInvalid characters in the define setting name '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+              fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, define.array[i].name, main.error.notable);
+              fl_print_format("%[', only alpha-numeric ASCII characters and underscore (without a leading digit) are allowed.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
 
-              f_color_print(main.error.to.stream, main.context.set.error, "', only alpha-numeric ASCII characters and underscore (without a leading digit) is %c", f_string_eol_s[0]);
+              funlockfile(main.error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
@@ -1081,8 +1107,7 @@ extern "C" {
     }
 
     if (main->error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main->output.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main->output.stream, main->context.set.important, "Making project.%c", f_string_eol_s[0]);
+      fll_print_format("%c$[Making project.%]%c", main->output.stream, f_string_eol_s[0], main->context.set.important, main->context.set.important, f_string_eol_s[0]);
     }
 
     f_status_t status = F_none;
@@ -1095,11 +1120,13 @@ extern "C" {
 
     if (F_status_is_error(status)) {
       fll_error_print(main->error, F_status_set_fine(status), "f_string_dynamics_increase", F_true);
+
       return status;
     }
 
     if (fake_signal_received(*main)) {
       macro_fake_make_data_t_delete_simple(data_make);
+
       return F_signal;
     }
 
@@ -1174,13 +1201,16 @@ extern "C" {
     {
       f_status_t status_path = f_path_change_at(data_make.path.top.id);
 
-      if (F_status_is_error(status_path) && main->error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main->output.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main->output.stream, main->context.set.warning, "%sFailed change back to orignal path '", fll_error_print_warning);
-        f_color_print(main->output.stream, main->context.set.notable, "%s", data_make.path.stack.array[0].string);
-        f_color_print(main->output.stream, main->context.set.warning, "', status code = ");
-        f_color_print(main->output.stream, main->context.set.notable, "%llu", F_status_set_fine(status_path));
-        f_color_print(main->output.stream, main->context.set.warning, ".%c", f_string_eol_s[0]);
+      if (F_status_is_error(status_path) && main->warning.verbosity == f_console_verbosity_verbose) {
+        flockfile(main->warning.to.stream);
+
+        fl_print_format("%c%[%SFailed change back to orignal path '%]", main->warning.to.stream, f_string_eol_s[0], main->warning.context, main->warning.prefix, main->warning.context);
+        fl_print_format("%[%Q%]", main->warning.to.stream, main->warning.notable, data_make.path.stack.array[0], main->warning.notable);
+        fl_print_format("%[', status code =%] ", main->warning.to.stream, main->warning.context, main->warning.context);
+        fl_print_format("%[%ui%]", main->warning.to.stream, main->warning.notable, F_status_set_fine(status_path), main->warning.notable);
+        fl_print_format("%['.%]%c", main->warning.to.stream, main->warning.context, main->warning.context, f_string_eol_s[0]);
+
+        funlockfile(main->warning.to.stream);
       }
     }
 
@@ -1615,7 +1645,7 @@ extern "C" {
         if (status == F_equal_to) {
           unmatched = F_false;
 
-          status = f_conversion_number_unsigned_to_string(uint8_value[i], 10, &value);
+          status = f_conversion_number_unsigned_to_string(uint8_value[i], f_conversion_data_base_10_s, &value);
           break;
         }
       } // for
@@ -1959,15 +1989,13 @@ extern "C" {
     const f_fss_named_t *section = &data_make->fakefile.array[id_section];
 
     if (main->error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main->output.stream, "%c", f_string_eol_s[0]);
+      flockfile(main->output.stream);
 
-      f_color_print(main->output.stream, main->context.set.important, "Processing Section '");
+      fl_print_format("%c%[Processing Section '%]", main->output.stream, f_string_eol_s[0], main->context.set.important, main->context.set.important);
+      fl_print_format("%[%Q%]", main->output.stream, main->context.set.notable, section->name, main->context.set.notable);
+      fl_print_format("%['.%]%c", main->output.stream, main->context.set.important, main->context.set.important, f_string_eol_s[0]);
 
-      f_color_print_code(main->output.stream, *main->context.set.notable.before);
-      f_print_dynamic_partial(main->output.stream, data_make->buffer, section->name);
-      f_color_print_code(main->output.stream, *main->context.set.notable.after);
-
-      f_color_print(main->output.stream, main->context.set.important, "'.%c", f_string_eol_s[0]);
+      funlockfile(main->output.stream);
     }
 
     if (!section->objects.used) {
@@ -2282,19 +2310,13 @@ extern "C" {
     if (i == section->objects.used && (operation_if == fake_make_operation_if_type_true_next || operation_if == fake_make_operation_if_type_false_next || operation_if == fake_make_operation_if_type_else_true || operation_if == fake_make_operation_if_type_else_false)) {
 
       if (main->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-        const char *type_name = 0;
+        flockfile(data_make->error.to.stream);
 
-        if (operation_if == fake_make_operation_if_type_true_next || operation_if == fake_make_operation_if_type_false_next) {
-          type_name = fake_make_operation_if;
-        }
-        else {
-          type_name = fake_make_operation_else;
-        }
+        fl_print_format("%c%[%SIncomplete '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+        fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, operation_if == fake_make_operation_if_type_true_next || operation_if == fake_make_operation_if_type_false_next ? fake_make_operation_if : fake_make_operation_else, data_make->error.notable);
+        fl_print_format("%[' at end of section.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
 
-        fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(data_make->error.to.stream, data_make->error.context, "%sIncomplete '", data_make->error.prefix);
-        f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", type_name);
-        f_color_print(data_make->error.to.stream, data_make->error.context, "' at end of section.%c", f_string_eol_s[0]);
+        funlockfile(data_make->error.to.stream);
       }
 
       fake_print_message_section_operation_failed(*main, data_make->error, data_make->buffer, section->name, section->objects.array[section->objects.used - 1]);
@@ -2351,9 +2373,13 @@ extern "C" {
       }
 
       if (main->error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main->output.stream, "Breaking as '");
-        f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.used ? arguments.array[0].string : fake_make_operation_argument_success);
-        fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+        flockfile(main->output.stream);
+
+        fl_print_format("%cBreaking as '", main->output.stream, f_string_eol_s[0]);
+        fl_print_format("%[%S%]", main->output.stream, main->context.set.notable, arguments.used ? arguments.array[0].string : fake_make_operation_argument_success, main->context.set.notable);
+        fl_print_format("'.%c", main->output.stream, f_string_eol_s[0]);
+
+        funlockfile(main->output.stream);
       }
 
       return 0;
@@ -2467,11 +2493,12 @@ extern "C" {
             *status = F_status_set_error(F_failure);
           }
           else if (main->error.verbosity == f_console_verbosity_verbose) {
-            fprintf(main->output.stream, "Cloned '");
-            f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.array[i].string);
-            fprintf(main->output.stream, "' to '");
-            f_color_print(main->output.stream, main->context.set.notable, "%s", destination);
-            fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+            flockfile(main->output.stream);
+
+            fl_print_format("%cCloned '%[%Q%]' to '", main->output.stream, f_string_eol_s[0], main->context.set.notable, arguments.array[i], main->context.set.notable);
+            fl_print_format("%[%S%]'.%c", main->output.stream, f_string_eol_s[0], main->context.set.notable, destination, main->context.set.notable, f_string_eol_s[0]);
+
+            funlockfile(main->output.stream);
           }
         }
         else if (F_status_is_error(status_file)) {
@@ -2572,11 +2599,12 @@ extern "C" {
             *status = F_status_set_error(F_failure);
           }
           else if (main->error.verbosity == f_console_verbosity_verbose) {
-            fprintf(main->output.stream, "Copied '");
-            f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.array[i].string);
-            fprintf(main->output.stream, "' to '");
-            f_color_print(main->output.stream, main->context.set.notable, "%s", destination);
-            fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+            flockfile(main->output.stream);
+
+            fl_print_format("%cCopied '%[%Q%]", main->output.stream, f_string_eol_s[0], main->context.set.notable, arguments.array[i], main->context.set.notable);
+            fl_print_format("' to '%[%S%]'.%c", main->output.stream, main->context.set.notable, destination, main->context.set.notable, f_string_eol_s[0]);
+
+            funlockfile(main->output.stream);
           }
         }
         else if (F_status_is_error(status_file)) {
@@ -2602,9 +2630,7 @@ extern "C" {
         fll_error_print(data_make->error, F_status_set_fine(*status), "f_environment_set", F_true);
       }
       else if (main->error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main->output.stream, "Defined environment variable '");
-        f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.array[0].string);
-        fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+        fll_print_format("%cDefined environment variable '%[%Q%]'.%c", main->output.stream, f_string_eol_s[0], main->context.set.notable, arguments.array[0], main->context.set.notable, f_string_eol_s[0]);
       }
 
       return 0;
@@ -2622,11 +2648,14 @@ extern "C" {
 
         if (F_status_is_error(*status)) {
           if (F_status_set_fine(*status) == F_file_found_not) {
-            if (main->error.verbosity == f_console_verbosity_verbose) {
-              fprintf(main->output.stream, "%c", f_string_eol_s[0]);
-              f_color_print(main->output.stream, main->context.set.warning, "%sthe file '", fll_error_print_warning);
-              f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.array[i].string);
-              f_color_print(main->output.stream, main->context.set.warning, "' was not found.%c", f_string_eol_s[0]);
+            if (main->warning.verbosity == f_console_verbosity_verbose) {
+              flockfile(main->warning.to.stream);
+
+              fl_print_format("%c%[%SThe file '%]", main->warning.to.stream, main->warning.prefix, f_string_eol_s[0]);
+              fl_print_format("%[%Q%]", main->warning.to.stream, main->warning.notable, arguments.array[i], main->warning.notable);
+              fl_print_format("%[' was not found.%]%c", main->warning.to.stream, f_string_eol_s[0]);
+
+              funlockfile(main->warning.to.stream);
             }
 
             *status = F_none;
@@ -2646,9 +2675,7 @@ extern "C" {
 
           if (F_status_set_fine(*status) == F_file_found_not) {
             if (main->error.verbosity == f_console_verbosity_verbose) {
-              fprintf(main->output.stream, "The directory '");
-              f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.array[i].string);
-              fprintf(main->output.stream, "' does not exist.%c", f_string_eol_s[0]);
+              fll_print_format("%cThe directory '%[%Q%]' does not exist.%c", main->output.stream, f_string_eol_s[0], main->context.set.notable, arguments.array[i], main->context.set.notable, f_string_eol_s[0]);
             }
 
             *status = F_none;
@@ -2659,9 +2686,7 @@ extern "C" {
             return 0;
           }
           else if (main->error.verbosity == f_console_verbosity_verbose) {
-            fprintf(main->output.stream, "Removed '");
-            f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.array[i].string);
-            fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+            fll_print_format("%cRemoved '%[%Q%]'.%c", main->output.stream, f_string_eol_s[0], main->context.set.notable, arguments.array[i], main->context.set.notable, f_string_eol_s[0]);
           }
         }
         else {
@@ -2669,9 +2694,7 @@ extern "C" {
 
           if (F_status_set_fine(*status) == F_file_found_not) {
             if (main->error.verbosity == f_console_verbosity_verbose) {
-              fprintf(main->output.stream, "The file '");
-              f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.array[i].string);
-              fprintf(main->output.stream, "' does not exist.%c", f_string_eol_s[0]);
+              fll_print_format("%cThe file '%[%Q%]' does not exist.%c", main->output.stream, f_string_eol_s[0], main->context.set.notable, arguments.array[i], main->context.set.notable, f_string_eol_s[0]);
             }
 
             *status = F_none;
@@ -2682,9 +2705,7 @@ extern "C" {
             return 0;
           }
           else if (main->error.verbosity == f_console_verbosity_verbose) {
-            fprintf(main->output.stream, "Removed '");
-            f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.array[i].string);
-            fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+            fll_print_format("%cRemoved '%[%Q%]'.%c", main->output.stream, f_string_eol_s[0], main->context.set.notable, arguments.array[i], main->context.set.notable, f_string_eol_s[0]);
           }
         }
       } // for
@@ -2725,9 +2746,7 @@ extern "C" {
       }
 
       if (main->error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main->output.stream, "Exiting as '");
-        f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.used ? arguments.array[0].string : fake_make_operation_argument_success);
-        fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+        fll_print_format("%cExiting as '%[%S%]'.%c", main->output.stream, f_string_eol_s[0], main->context.set.notable, arguments.used ? arguments.array[0].string : fake_make_operation_argument_success, main->context.set.notable, f_string_eol_s[0]);
       }
 
       return 0;
@@ -2758,19 +2777,23 @@ extern "C" {
       }
 
       if (main->error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main->output.stream, "Set failure state to '");
+        flockfile(main->output.stream);
+
+        f_print_terminated("Set failure state to '", main->output.stream);
 
         if (data_make->setting_make.fail == fake_make_operation_fail_type_exit) {
-          f_color_print(main->output.stream, main->context.set.notable, "%s", fake_make_operation_argument_exit);
+          fl_print_format("%[%s%]", main->output.stream, main->context.set.notable, fake_make_operation_argument_exit, main->context.set.notable);
         }
         else if (data_make->setting_make.fail == fake_make_operation_fail_type_warn) {
-          f_color_print(main->output.stream, main->context.set.notable, "%s", fake_make_operation_argument_warn);
+          fl_print_format("%[%s%]", main->output.stream, main->context.set.notable, fake_make_operation_argument_warn, main->context.set.notable);
         }
         else if (data_make->setting_make.fail == fake_make_operation_fail_type_ignore) {
-          f_color_print(main->output.stream, main->context.set.notable, "%s", fake_make_operation_argument_ignore);
+          fl_print_format("%[%s%]", main->output.stream, main->context.set.notable, fake_make_operation_argument_ignore, main->context.set.notable);
         }
 
-        fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+        fl_print_format("'.%c", main->output.stream, f_string_eol_s[0]);
+
+        funlockfile(main->output.stream);
       }
 
       return 0;
@@ -2804,11 +2827,12 @@ extern "C" {
           fll_error_file_print(data_make->error, F_status_set_fine(*status), "f_file_role_change", F_true, arguments.array[i].string, "change group of", fll_error_file_type_file);
         }
         else if (main->error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main->output.stream, "Changed group of '");
-          f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.array[i].string);
-          fprintf(main->output.stream, "' to ");
-          f_color_print(main->output.stream, main->context.set.notable, "%llu", id);
-          fprintf(main->output.stream, ".%c", f_string_eol_s[0]);
+          flockfile(main->output.stream);
+
+          fl_print_format("Changed group of '%[%s%]", main->output.stream, main->context.set.notable, arguments.array[i], main->context.set.notable);
+          fl_print_format("' to %[%ul%].%c", main->output.stream, main->context.set.notable, id, main->context.set.notable, f_string_eol_s[0]);
+
+          funlockfile(main->output.stream);
         }
       } // for
 
@@ -2843,11 +2867,12 @@ extern "C" {
           fll_error_file_print(data_make->error, F_status_set_fine(*status), "fll_file_role_change_all", F_true, arguments.array[i].string, "change group of", fll_error_file_type_file);
         }
         else if (main->error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main->output.stream, "Changed group of '");
-          f_color_print(main->output.stream, main->context.set.notable, "%s", arguments.array[i].string);
-          fprintf(main->output.stream, "' to ");
-          f_color_print(main->output.stream, main->context.set.notable, "%llu", id);
-          fprintf(main->output.stream, ".%c", f_string_eol_s[0]);
+          flockfile(main->output.stream);
+
+          fl_print_format("Changed group of '%[%s%]", main->output.stream, main->context.set.notable, arguments.array[i], main->context.set.notable);
+          fl_print_format("' to %[%ul%].%c", main->output.stream, main->context.set.notable, id, main->context.set.notable, f_string_eol_s[0]);
+
+          funlockfile(main->output.stream);
         }
       } // for
 
@@ -3314,18 +3339,20 @@ extern "C" {
           *operation_if = fake_make_operation_if_type_false_always_next;
 
           if (main->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-            fprintf(main->output.stream, "%c", f_string_eol_s[0]);
+            flockfile(data_make->error.to.stream);
 
             if ((i == 1 && number_left > f_number_t_size_unsigned) || (i > 1 && number_right > f_number_t_size_unsigned)) {
-              f_color_print(main->error.to.stream, data_make->error.context, "%sThe number '", data_make->error.prefix);
-              f_color_print(main->error.to.stream, data_make->error.notable, "%c%s", arguments.array[i].string);
-              f_color_print(main->error.to.stream, data_make->error.context, "' may only be between the ranges -%llu to %llu.%c", f_number_t_size_unsigned, f_number_t_size_unsigned, f_string_eol_s[0]);
+              fl_print_format("%c%[%SThe number '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[i], data_make->error.notable);
+              fl_print_format("%[' may only be between the ranges -%un to %un.%]%c", data_make->error.to.stream, data_make->error.context, f_number_t_size_unsigned, f_number_t_size_unsigned, data_make->error.context, f_string_eol_s[0]);
             }
             else {
-              f_color_print(main->error.to.stream, data_make->error.context, "%sInvalid or unsupported number provided '", data_make->error.prefix);
-              f_color_print(main->error.to.stream, data_make->error.notable, "%s", arguments.array[i].string);
-              f_color_print(main->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+              fl_print_format("%c%[%SInvalid or unsupported number provided '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[i], data_make->error.notable);
+              fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, f_number_t_size_unsigned, f_number_t_size_unsigned, data_make->error.context, f_string_eol_s[0]);
             }
+
+            funlockfile(data_make->error.to.stream);
           }
         }
 
@@ -3342,11 +3369,12 @@ extern "C" {
         fll_error_file_print(data_make->error, F_status_set_fine(*status), "f_file_link", F_true, arguments.array[1].string, "create link", fll_error_file_type_file);
       }
       else if (main->error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main->output.stream, "Created symbolic link from '");
-        f_color_print(main->error.to.stream, main->context.set.notable, "%s", arguments.array[1].string);
-        fprintf(main->output.stream, "' to '");
-        f_color_print(main->error.to.stream, main->context.set.notable, "%s", arguments.array[0].string);
-        fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+        flockfile(main->output.stream);
+
+        fl_print_format("Created symbolic link from '%[%Q%]", main->output.stream, main->context.set.notable, arguments.array[1], main->context.set.notable);
+        fl_print_format("' to %[%Q%].%c", main->output.stream, main->context.set.notable, arguments.array[0], main->context.set.notable, f_string_eol_s[0]);
+
+        funlockfile(main->output.stream);
       }
 
       return 0;
@@ -3363,6 +3391,7 @@ extern "C" {
       mode_t mode_file = 0;
 
       for (f_array_length_t i = 1; i < arguments.used; ++i) {
+
         mode = 0;
 
         *status = f_file_mode_read(arguments.array[i].string, &mode_file);
@@ -3387,11 +3416,7 @@ extern "C" {
         }
 
         if (main->error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main->output.stream, "Changed mode of '");
-          f_color_print(main->error.to.stream, main->context.set.notable, "%s", arguments.array[i].string);
-          fprintf(main->output.stream, "' to ");
-          f_color_print(main->error.to.stream, main->context.set.notable, "%#o", mode);
-          fprintf(main->output.stream, ".%c", f_string_eol_s[0]);
+          fll_print_format("Changed mode of '%Q' to %#@u.%c", main->output.stream, arguments.array[i], mode, f_string_eol_s[0]);
         }
       } // for
 
@@ -3433,11 +3458,7 @@ extern "C" {
         }
 
         if (main->error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main->output.stream, "Changed mode of '");
-          f_color_print(main->error.to.stream, main->context.set.notable, "%s", arguments.array[i].string);
-          fprintf(main->output.stream, "' to ");
-          f_color_print(main->error.to.stream, main->context.set.notable, "%#o", mode);
-          fprintf(main->output.stream, ".%c", f_string_eol_s[0]);
+          fll_print_format("Changed mode of '%Q' to %#@u.%c", main->output.stream, arguments.array[i], mode, f_string_eol_s[0]);
         }
       } // for
 
@@ -3561,11 +3582,7 @@ extern "C" {
           break;
         }
         else if (main->error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main->output.stream, "Changed owner of '");
-          f_color_print(main->error.to.stream, main->context.set.notable, "%s", arguments.array[i].string);
-          fprintf(main->output.stream, "' to ");
-          f_color_print(main->error.to.stream, main->context.set.notable, "%d", id);
-          fprintf(main->output.stream, ".%c", f_string_eol_s[0]);
+          fll_print_format("Changed owner of '%Q' to %u.%c", main->output.stream, arguments.array[i], id, f_string_eol_s[0]);
         }
       } // for
 
@@ -3600,11 +3617,7 @@ extern "C" {
           fll_error_file_print(data_make->error, F_status_set_fine(*status), "fll_file_role_change_all", F_true, arguments.array[i].string, "change owner of", fll_error_file_type_file);
         }
         else if (main->error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main->output.stream, "Changed owner of '");
-          f_color_print(main->error.to.stream, main->context.set.notable, "%s", arguments.array[i].string);
-          fprintf(main->output.stream, "' to ");
-          f_color_print(main->error.to.stream, main->context.set.notable, "%d", id);
-          fprintf(main->output.stream, ".%c", f_string_eol_s[0]);
+          fll_print_format("Changed owner of '%Q' to %u.%c", main->output.stream, arguments.array[i], id, f_string_eol_s[0]);
         }
       } // for
 
@@ -3620,6 +3633,7 @@ extern "C" {
 
       if (F_status_is_error(*status)) {
         fake_print_message_section_operation_path_stack_max(*main, data_make->error, F_status_set_fine(*status), "f_path_change", data_make->path.stack.array[data_make->path.stack.used - 1].string);
+
         return 0;
       }
 
@@ -3628,30 +3642,32 @@ extern "C" {
 
         if (F_status_is_error(*status)) {
           fll_error_print(data_make->error, F_status_set_fine(*status), "fake_make_path_relative", F_true);
+
           return 0;
         }
 
-        fprintf(main->output.stream, "Changed to project path '");
-        f_color_print_code(main->output.stream, *main->context.set.notable.before);
-        f_print_dynamic(main->output.stream, data_make->path_cache);
-        f_color_print_code(main->output.stream, *main->context.set.notable.after);
-        fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+        fll_print_format("Changed to project path '%[%Q%]'.%c", main->output.stream, main->context.set.notable, data_make->path_cache, main->context.set.notable, f_string_eol_s[0]);
       }
 
       return 0;
     }
 
     if (operation == fake_make_operation_type_print) {
+      flockfile(main->output.stream);
+
       for (f_array_length_t i = 0; i < arguments.used; ++i) {
 
-        f_print_dynamic(main->output.stream, arguments.array[i]);
+        f_print_dynamic(arguments.array[i], main->output.stream);
 
         if (i + 1 < arguments.used) {
-          fprintf(main->output.stream, "%s", f_string_space_s);
+          f_print_character(f_string_space_s[0], main->output.stream);
         }
       } // for
 
-      fprintf(main->output.stream, "%c", f_string_eol_s[0]);
+      f_print_character(f_string_space_s[0], main->output.stream);
+
+      funlockfile(main->output.stream);
+
       return 0;
     }
 
@@ -3740,11 +3756,7 @@ extern "C" {
             return 0;
           }
 
-          fprintf(main->output.stream, "Changed to project path '");
-          f_color_print_code(main->output.stream, *main->context.set.notable.before);
-          f_print_dynamic(main->output.stream, data_make->path_cache);
-          f_color_print_code(main->output.stream, *main->context.set.notable.after);
-          fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+          fll_print_format("Changed to project path '%[%Q%]'.%c", main->output.stream, main->context.set.notable, data_make->path_cache, main->context.set.notable, f_string_eol_s[0]);
         }
 
         ++data_make->path.stack.used;
@@ -3764,7 +3776,7 @@ extern "C" {
       }
 
       if (main->error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main->output.stream, "Changed to project path ''.%c", f_string_eol_s[0]);
+        fll_print_format("Changed to project path ''.%c", main->output.stream, f_string_eol_s[0]);
       }
 
       // clear stack, except for the project root.
@@ -3813,11 +3825,7 @@ extern "C" {
         }
 
         if (main->error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main->output.stream, "Touched %s '", arguments.array[0].string);
-          f_color_print_code(main->output.stream, *main->context.set.notable.before);
-          f_print_dynamic(main->output.stream, arguments.array[i]);
-          f_color_print_code(main->output.stream, *main->context.set.notable.after);
-          fprintf(main->output.stream, "'.%c", f_string_eol_s[0]);
+          fll_print_format("Touched '%[%Q%]'.%c", main->output.stream, main->context.set.notable, arguments.array[i], main->context.set.notable, f_string_eol_s[0]);
         }
       } // for
     }
@@ -3853,16 +3861,20 @@ extern "C" {
     }
 
     if (main.error.verbosity == f_console_verbosity_verbose) {
-      fprintf(main.output.stream, "%s", program.string);
+      flockfile(main.output.stream);
 
-      for (f_array_length_t i = 0; i < arguments.used; ++i) {
+      f_print_dynamic_safely(program, main.output.stream);
 
-        if (!arguments.array[i].used) continue;
+      for (f_array_length_t i = 0; i < arguments.used; ++i) {
 
-        fprintf(main.output.stream, " %s", arguments.array[i].string);
+        if (arguments.array[i].used) {
+          fll_print_format(" %Q", main.output.stream, arguments.array[i]);
+        }
       } // for
 
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
+      f_print_character(f_string_eol_s[0], main.output.stream);
+
+      funlockfile(main.output.stream);
 
       // flush to stdout before executing command.
       fflush(main.output.stream);
@@ -3885,11 +3897,14 @@ extern "C" {
 
     if (F_status_is_error(status)) {
       if (F_status_set_fine(status) == F_file_found_not) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main.error.to.stream, data_make->error.context, "%sFailed to find program '", data_make->error.prefix);
-          f_color_print(main.error.to.stream, data_make->error.notable, "%s", program.string);
-          f_color_print(main.error.to.stream, data_make->error.context, "' for executing.%c", f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          flockfile(data_make->error.to.stream);
+
+          fl_print_format("%c%[%SFailed to find program '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+          fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, program, data_make->error.notable);
+          fl_print_format("%[' for executing.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+          funlockfile(data_make->error.to.stream);
         }
       }
       else if (F_status_set_fine(status) != F_failure) {
@@ -3924,7 +3939,7 @@ extern "C" {
       if (return_code) {
         f_string_dynamic_t number = f_string_dynamic_t_initialize;
 
-        status2 = f_conversion_number_signed_to_string(WEXITSTATUS(return_code), 10, &number);
+        status2 = f_conversion_number_signed_to_string(WEXITSTATUS(return_code), f_conversion_data_base_10_s, &number);
 
         if (F_status_is_error(status2)) {
           *status = status2;
@@ -3960,11 +3975,14 @@ extern "C" {
       return;
     }
 
-    if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-      fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.error.to.stream, data_make->error.context, "%sFailed with return code '", data_make->error.prefix);
-      f_color_print(main.error.to.stream, data_make->error.notable, "%s", data_make->setting_make.parameter.array[0].value.array[0].string);
-      f_color_print(main.error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+    if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+      flockfile(data_make->error.to.stream);
+
+      fl_print_format("%c%[%SFailed with return code '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+      fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, data_make->setting_make.parameter.array[0].value.array[0], data_make->error.notable);
+      fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+      funlockfile(data_make->error.to.stream);
     }
 
     if (data_make->setting_make.fail == fake_make_operation_fail_type_exit) {
@@ -4030,21 +4048,22 @@ extern "C" {
 
     if (operation == fake_make_operation_type_index || operation == fake_make_operation_type_run || operation == fake_make_operation_type_shell) {
       if (!arguments.used) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
       }
       else if (operation == fake_make_operation_type_index) {
         if (!data_make->setting_build.build_indexer.used) {
+          if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+            flockfile(data_make->error.to.stream);
+
+            fl_print_format("%c%[%SNo indexer has been specified, cannot perform '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+            fl_print_format("%[%s%]", data_make->error.to.stream, data_make->error.notable, fake_make_operation_index, data_make->error.notable);
+            fl_print_format("%[' section operation.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
 
-          if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-            fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(data_make->error.to.stream, data_make->error.context, "%sNo indexer has been specified, cannot perform '", data_make->error.prefix);
-            f_color_print(data_make->error.to.stream, data_make->error.notable, fake_make_operation_index);
-            f_color_print(data_make->error.to.stream, data_make->error.context, "' section operation.%c", f_string_eol_s[0]);
+            funlockfile(data_make->error.to.stream);
           }
 
           *status = F_status_set_error(F_failure);
@@ -4056,9 +4075,8 @@ extern "C" {
 
     if (operation == fake_make_operation_type_break) {
       if (arguments.used > 1) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sHas too many arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SHas too many arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4067,11 +4085,14 @@ extern "C" {
         if (fl_string_dynamic_compare_string(fake_make_operation_argument_success, arguments.array[0], fake_make_operation_argument_success_length) == F_equal_to_not) {
           if (fl_string_dynamic_compare_string(fake_make_operation_argument_failure, arguments.array[0], fake_make_operation_argument_failure_length) == F_equal_to_not) {
 
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sUnsupported break type '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[0].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SUnsupported break type '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[0], data_make->error.notable);
+              fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
@@ -4084,9 +4105,8 @@ extern "C" {
 
     if (operation == fake_make_operation_type_build) {
       if (arguments.used > 1) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sHas too many arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SHas too many arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4103,11 +4123,14 @@ extern "C" {
           f_status_t status_file = f_file_is(path_file, f_file_type_regular, F_false);
 
           if (status_file == F_file_found_not) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sFailed to find file '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", path_file);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SFailed to find file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%S%]", data_make->error.to.stream, data_make->error.notable, path_file, data_make->error.notable);
+              fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(status_file);
@@ -4117,20 +4140,22 @@ extern "C" {
             *status = status_file;
           }
           else if (!status_file) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sThe file '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", path_file);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "' must be a regular file.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SThe file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%s%]", data_make->error.to.stream, data_make->error.notable, path_file, data_make->error.notable);
+              fl_print_format("%[' must be a regular file.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
           }
         }
         else {
-          if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-            fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(data_make->error.to.stream, data_make->error.context, "%sFilename argument must not be an empty string.%c", data_make->error.prefix, f_string_eol_s[0]);
+          if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+            fll_print_format("%c%[%SFilename argument must not be an empty string.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
           }
 
           *status = F_status_set_error(F_failure);
@@ -4142,9 +4167,8 @@ extern "C" {
 
     if (operation == fake_make_operation_type_clean || operation == fake_make_operation_type_pop || operation == fake_make_operation_type_top || operation == fake_make_operation_type_skeleton) {
       if (arguments.used) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sHas too many arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SHas too many arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4152,9 +4176,8 @@ extern "C" {
       else if (operation == fake_make_operation_type_pop) {
         if (data_make->path.stack.used == 1) {
 
-          if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-            fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(data_make->error.to.stream, data_make->error.context, "%sMust not attempt to pop project root off of path stack.%c", data_make->error.prefix, f_string_eol_s[0]);
+          if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+            fll_print_format("%c%[%SMust not attempt to pop project root off of path stack.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
           }
 
           *status = F_status_set_error(F_failure);
@@ -4182,11 +4205,14 @@ extern "C" {
         for (f_array_length_t i = 0; i < arguments.used - 1; ++i) {
 
           if (f_file_exists(arguments.array[i].string) != F_true) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sFailed to find file '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[i].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SFailed to find file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[i], data_make->error.notable);
+              fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
@@ -4199,11 +4225,14 @@ extern "C" {
           f_status_t status_file = f_directory_is(arguments.array[arguments.used - 1].string);
 
           if (status_file == F_false || status_file == F_file_found_not) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sThe last file '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[arguments.used - 1].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "' must be a valid directory.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SThe last file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[arguments.used - 1], data_make->error.notable);
+              fl_print_format("%[' must be a valid directory.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
@@ -4222,11 +4251,14 @@ extern "C" {
             status_file = f_directory_is(arguments.array[1].string);
 
             if (status_file == F_false) {
-              if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-                fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-                f_color_print(data_make->error.to.stream, data_make->error.context, "%sThe last file '", data_make->error.prefix);
-                f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[1].string);
-                f_color_print(data_make->error.to.stream, data_make->error.context, "' must be a valid directory.%c", f_string_eol_s[0]);
+              if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                flockfile(data_make->error.to.stream);
+
+                fl_print_format("%c%[%SThe last file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+                fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[1], data_make->error.notable);
+                fl_print_format("%[' must be a valid directory.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+                funlockfile(data_make->error.to.stream);
               }
 
               *status = F_status_set_error(F_failure);
@@ -4235,9 +4267,8 @@ extern "C" {
         }
       }
       else {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4248,19 +4279,21 @@ extern "C" {
 
     if (operation == fake_make_operation_type_compile) {
       if (!arguments.used) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
       }
       else if (data_make->setting_build.build_compiler.used) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sNo compiler has been specified, cannot perform '", data_make->error.prefix);
-          f_color_print(data_make->error.to.stream, data_make->error.notable, fake_make_operation_compile);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "' section operation.%c", f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          flockfile(data_make->error.to.stream);
+
+          fl_print_format("%c%[%SNo compiler has been specified, cannot perform '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+          fl_print_format("%[%s%]", data_make->error.to.stream, data_make->error.notable, fake_make_operation_compile, data_make->error.notable);
+          fl_print_format("%[' section operation.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+          funlockfile(data_make->error.to.stream);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4287,11 +4320,14 @@ extern "C" {
         for (f_array_length_t i = 0; i < arguments.used - 1; ++i) {
 
           if (f_file_exists(arguments.array[i].string) != F_true) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sFailed to find file '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[i].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SFailed to find file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[i], data_make->error.notable);
+              fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
@@ -4304,11 +4340,14 @@ extern "C" {
           f_status_t status_file = f_directory_is(arguments.array[arguments.used - 1].string);
 
           if (status_file == F_false || status_file == F_file_found_not) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sThe last file '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[arguments.used - 1].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "' must be a valid directory.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SThe last file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[arguments.used - 1], data_make->error.notable);
+              fl_print_format("%[' must be a valid directory.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
@@ -4327,11 +4366,14 @@ extern "C" {
             status_file = f_directory_is(arguments.array[1].string);
 
             if (status_file == F_false) {
-              if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-                fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-                f_color_print(data_make->error.to.stream, data_make->error.context, "%sThe last file '", data_make->error.prefix);
-                f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[1].string);
-                f_color_print(data_make->error.to.stream, data_make->error.context, "' must be a valid directory.%c", f_string_eol_s[0]);
+              if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                flockfile(data_make->error.to.stream);
+
+                fl_print_format("%c%[%SThe last file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+                fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[1], data_make->error.notable);
+                fl_print_format("%[' must be a valid directory.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+                funlockfile(data_make->error.to.stream);
               }
 
               *status = F_status_set_error(F_failure);
@@ -4340,9 +4382,8 @@ extern "C" {
         }
       }
       else {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4367,9 +4408,8 @@ extern "C" {
         } // for
       }
       else {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4383,32 +4423,29 @@ extern "C" {
         *status = fake_make_operate_validate_define_name(arguments.array[0]);
 
         if (*status == F_none) {
-          if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-            fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(data_make->error.to.stream, data_make->error.context, "%sDefine name must not be an empty string.%c", data_make->error.prefix, f_string_eol_s[0]);
+          if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+            fll_print_format("%c%[%SDefine name must not be an empty string.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
           }
 
           *status = F_status_set_error(F_failure);
         }
         else if (*status == F_false) {
-          if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-            fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(data_make->error.to.stream, data_make->error.context, "%sInvalid characters in the define setting name '", data_make->error.prefix);
+          if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+            flockfile(data_make->error.to.stream);
 
-            f_color_print_code(data_make->error.to.stream, *data_make->error.notable.before);
-            f_print_dynamic(data_make->error.to.stream, arguments.array[0]);
-            f_color_print_code(data_make->error.to.stream, *data_make->error.notable.after);
+            fl_print_format("%c%[%SInvalid characters in the define setting name '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+            fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[0], data_make->error.notable);
+            fl_print_format("%[', only alpha-numeric ASCII characters and underscore (without a leading digit) is allowed.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
 
-            f_color_print(data_make->error.to.stream, data_make->error.context, "', only alpha-numeric ASCII characters and underscore (without a leading digit) is allowed.%c", f_string_eol_s[0]);
+            funlockfile(data_make->error.to.stream);
           }
 
           *status = F_status_set_error(F_failure);
         }
       }
       else {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4419,11 +4456,14 @@ extern "C" {
 
     if (operation == fake_make_operation_type_else) {
       if (*operation_if == fake_make_operation_if_type_else_true || *operation_if == fake_make_operation_if_type_else_false) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sMust not be used after another '", data_make->error.prefix);
-          f_color_print(data_make->error.to.stream, data_make->error.notable, "else");
-          f_color_print(data_make->error.to.stream, data_make->error.context, "' section operation.%c", f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          flockfile(data_make->error.to.stream);
+
+          fl_print_format("%c%[%SMust not be used after another '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+          fl_print_format("%[else%]", data_make->error.to.stream, data_make->error.notable, data_make->error.notable);
+          fl_print_format("%[' section operation.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+          funlockfile(data_make->error.to.stream);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4433,11 +4473,14 @@ extern "C" {
       }
 
       if (*operation_if == fake_make_operation_if_type_true || *operation_if == fake_make_operation_if_type_false || *operation_if == fake_make_operation_if_type_false_always) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sMust not be used inside an ", data_make->error.prefix);
-          f_color_print(data_make->error.to.stream, data_make->error.notable, "if");
-          f_color_print(data_make->error.to.stream, data_make->error.context, "' section operation.%c", f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          flockfile(data_make->error.to.stream);
+
+          fl_print_format("%c%[%SMust not be used inside an '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+          fl_print_format("%[if%]", data_make->error.to.stream, data_make->error.notable, data_make->error.notable);
+          fl_print_format("%[' section operation.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+          funlockfile(data_make->error.to.stream);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4447,9 +4490,8 @@ extern "C" {
       }
 
       if (*operation_if != fake_make_operation_if_type_else_true_next && *operation_if != fake_make_operation_if_type_else_false_next && *operation_if != fake_make_operation_if_type_else_false_next_always) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sHas no preceding if condition.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SHas no preceding if condition.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4459,9 +4501,8 @@ extern "C" {
       }
 
       if (arguments.used) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sHas too many arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SHas too many arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4473,9 +4514,8 @@ extern "C" {
 
     if (operation == fake_make_operation_type_exit) {
       if (arguments.used > 1) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sHas too many arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SHas too many arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4483,12 +4523,14 @@ extern "C" {
       else if (arguments.used) {
         if (fl_string_dynamic_compare_string(fake_make_operation_argument_success, arguments.array[0], fake_make_operation_argument_success_length) == F_equal_to_not) {
           if (fl_string_dynamic_compare_string(fake_make_operation_argument_failure, arguments.array[0], fake_make_operation_argument_failure_length) == F_equal_to_not) {
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
 
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sUnsupported exit type '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[0].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+              fl_print_format("%c%[%SUnsupported exit type '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[0], data_make->error.notable);
+              fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
@@ -4505,11 +4547,14 @@ extern "C" {
           if (fl_string_dynamic_compare_string(fake_make_operation_argument_warn, arguments.array[0], fake_make_operation_argument_warn_length) == F_equal_to_not) {
             if (fl_string_dynamic_compare_string(fake_make_operation_argument_ignore, arguments.array[0], fake_make_operation_argument_ignore_length) == F_equal_to_not) {
 
-              if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-                fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-                f_color_print(data_make->error.to.stream, data_make->error.context, "%sUnsupported fail type '", data_make->error.prefix);
-                f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[0].string);
-                f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+              if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                flockfile(data_make->error.to.stream);
+
+                fl_print_format("%c%[%SUnsupported fail type '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+                fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[0], data_make->error.notable);
+                fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+                funlockfile(data_make->error.to.stream);
               }
 
               *status = F_status_set_error(F_failure);
@@ -4518,9 +4563,8 @@ extern "C" {
         }
       }
       else {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4538,17 +4582,20 @@ extern "C" {
           status_file = f_file_is(arguments.array[i].string, f_file_type_regular, F_false);
 
           if (status_file == F_file_found_not) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sFailed to find file '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[i].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SFailed to find file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[i], data_make->error.notable);
+              fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(status_file);
           }
           else if (F_status_is_error(status_file)) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
               fll_error_file_print(data_make->error, F_status_set_fine(*status), "f_file_is", F_true, arguments.array[i].string, "find", fll_error_file_type_directory);
             }
 
@@ -4559,9 +4606,8 @@ extern "C" {
         return;
       }
 
-      if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-        fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+      if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+        fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
       }
 
       *status = F_status_set_error(F_failure);
@@ -4571,11 +4617,14 @@ extern "C" {
 
     if (operation == fake_make_operation_type_if) {
       if (*operation_if == fake_make_operation_if_type_true || *operation_if == fake_make_operation_if_type_false || *operation_if == fake_make_operation_if_type_false_always) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sMust not be used after another '", data_make->error.prefix);
-          f_color_print(data_make->error.to.stream, data_make->error.notable, "if");
-          f_color_print(data_make->error.to.stream, data_make->error.context, "' section operation.%c", f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          flockfile(data_make->error.to.stream);
+
+          fl_print_format("%c%[%SMust not be used after another '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+          fl_print_format("%[if%]", data_make->error.to.stream, data_make->error.notable, data_make->error.notable);
+          fl_print_format("%[' section operation.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+          funlockfile(data_make->error.to.stream);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4664,11 +4713,14 @@ extern "C" {
         } // for
 
         if (i == 14) {
-          if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-            fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(data_make->error.to.stream, data_make->error.context, "%sUnsupported if type '", data_make->error.prefix);
-            f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[0].string);
-            f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+          if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+            flockfile(data_make->error.to.stream);
+
+            fl_print_format("%c%[%SUnsupported if type '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+            fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[0], data_make->error.notable);
+            fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+            funlockfile(data_make->error.to.stream);
           }
 
           *status = F_status_set_error(F_failure);
@@ -4680,9 +4732,8 @@ extern "C" {
         if (arguments.used >= if_type_minimum[i]) {
           if (*operation_if == fake_make_operation_if_type_if_success || *operation_if == fake_make_operation_if_type_if_failure) {
             if (arguments.used > if_type_minimum[i]) {
-              if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-                fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-                f_color_print(data_make->error.to.stream, data_make->error.context, "%sHas too many arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+              if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                fll_print_format("%c%[%SHas too many arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
               }
 
               *status = F_status_set_error(F_failure);
@@ -4697,11 +4748,14 @@ extern "C" {
             if (*operation_if == fake_make_operation_if_type_if_mode) {
               if (fl_string_dynamic_compare_string(fake_make_operation_argument_is, arguments.array[1], fake_make_operation_argument_is_length) == F_equal_to_not) {
                 if (fl_string_dynamic_compare_string(fake_make_operation_argument_has, arguments.array[1], fake_make_operation_argument_has_length) == F_equal_to_not) {
-                  if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-                    fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-                    f_color_print(data_make->error.to.stream, data_make->error.context, "%sUnsupported mode type '", data_make->error.prefix);
-                    f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[1].string);
-                    f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+                  if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                    flockfile(data_make->error.to.stream);
+
+                    fl_print_format("%c%[%SUnsupported mode type '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+                    fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[1], data_make->error.notable);
+                    fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+                    funlockfile(data_make->error.to.stream);
                   }
 
                   *status = F_status_set_error(F_failure);
@@ -4772,11 +4826,14 @@ extern "C" {
                   type_file |= 0x40;
                 }
                 else {
-                  if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-                    fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-                    f_color_print(data_make->error.to.stream, data_make->error.context, "%sUnsupported file type '", data_make->error.prefix);
-                    f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[i].string);
-                    f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+                  if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                    flockfile(data_make->error.to.stream);
+
+                    fl_print_format("%c%[%SUnsupported file type '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+                    fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[i], data_make->error.notable);
+                    fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+                    funlockfile(data_make->error.to.stream);
                   }
 
                   type_file |= 0x80;
@@ -4843,11 +4900,14 @@ extern "C" {
 
             if (fl_string_dynamic_compare_string(fake_make_operation_argument_environment, arguments.array[1], fake_make_operation_argument_environment_length) == F_equal_to_not) {
               if (fl_string_dynamic_compare_string(fake_make_operation_argument_parameter, arguments.array[1], fake_make_operation_argument_parameter_length) == F_equal_to_not) {
-                if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-                  fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-                  f_color_print(data_make->error.to.stream, data_make->error.context, "%sUnsupported define type '", data_make->error.prefix);
-                  f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[1].string);
-                  f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+                if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                  flockfile(data_make->error.to.stream);
+
+                  fl_print_format("%c%[%SUnsupported define type '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+                  fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[1], data_make->error.notable);
+                  fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+                  funlockfile(data_make->error.to.stream);
                 }
 
                 *status = F_status_set_error(F_failure);
@@ -4859,9 +4919,8 @@ extern "C" {
 
           if (*operation_if == fake_make_operation_if_type_if_equal || *operation_if == fake_make_operation_if_type_if_equal_not) {
             if (arguments.used < 3) {
-              if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-                fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-                f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+              if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
               }
 
               *status = F_status_set_error(F_failure);
@@ -4872,9 +4931,8 @@ extern "C" {
 
           if (*operation_if == fake_make_operation_if_type_if_greater || *operation_if == fake_make_operation_if_type_if_greater_equal || *operation_if == fake_make_operation_if_type_if_less || *operation_if == fake_make_operation_if_type_if_less_equal) {
             if (arguments.used < 3) {
-              if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-                fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-                f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+              if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
               }
 
               *status = F_status_set_error(F_failure);
@@ -4915,19 +4973,21 @@ extern "C" {
               if (F_status_is_error(status_number)) {
                 *status = F_status_set_error(F_failure);
 
-                if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-                  fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
+                if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                  flockfile(data_make->error.to.stream);
 
                   if (number > f_number_t_size_unsigned) {
-                    f_color_print(data_make->error.to.stream, data_make->error.context, "%sThe number '", data_make->error.prefix);
-                    f_color_print(data_make->error.to.stream, data_make->error.notable, "%c%s", arguments.array[i].string);
-                    f_color_print(data_make->error.to.stream, data_make->error.context, "' may only be between the ranges -%llu to %llu.%c", f_number_t_size_unsigned, f_number_t_size_unsigned, f_string_eol_s[0]);
+                    fl_print_format("%c%[%SThe number '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+                    fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[i], data_make->error.notable);
+                    fl_print_format("%[' may only be between the ranges -%un to %un.%]%c", data_make->error.to.stream, data_make->error.context, f_number_t_size_unsigned, f_number_t_size_unsigned, data_make->error.context, f_string_eol_s[0]);
                   }
                   else {
-                    f_color_print(data_make->error.to.stream, data_make->error.context, "%sInvalid or unsupported number provided '", data_make->error.prefix);
-                    f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[i].string);
-                    f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+                    fl_print_format("%c%[%SInvalid or unsupported number provided '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+                    fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[i], data_make->error.notable);
+                    fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
                   }
+
+                  funlockfile(data_make->error.to.stream);
                 }
               }
             } // for
@@ -4937,9 +4997,8 @@ extern "C" {
         }
       }
 
-      if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-        fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+      if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+        fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
       }
 
       *status = F_status_set_error(F_failure);
@@ -4950,9 +5009,8 @@ extern "C" {
 
     if (operation == fake_make_operation_type_link) {
       if (arguments.used > 2) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sHas too many arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SHas too many arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -4979,9 +5037,8 @@ extern "C" {
         }
       }
       else {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -5008,11 +5065,14 @@ extern "C" {
         for (f_array_length_t i = 0; i < arguments.used - 1; ++i) {
 
           if (f_file_exists(arguments.array[i].string) != F_true) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sFailed to find file '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[i].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SFailed to find file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[i], data_make->error.notable);
+              fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
@@ -5025,11 +5085,14 @@ extern "C" {
           f_status_t status_file = f_directory_is(arguments.array[arguments.used - 1].string);
 
           if (status_file == F_false || status_file == F_file_found_not) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sThe last file '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[arguments.used - 1].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "' must be a valid directory.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SThe last file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[arguments.used - 1], data_make->error.notable);
+              fl_print_format("%[' must be a valid directory.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
@@ -5048,11 +5111,14 @@ extern "C" {
             status_file = f_directory_is(arguments.array[1].string);
 
             if (status_file == F_false) {
-              if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-                fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-                f_color_print(data_make->error.to.stream, data_make->error.context, "%sThe last file '", data_make->error.prefix);
-                f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[1].string);
-                f_color_print(data_make->error.to.stream, data_make->error.context, "' must be a valid directory.%c", f_string_eol_s[0]);
+              if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                flockfile(data_make->error.to.stream);
+
+                fl_print_format("%c%[%SThe last file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+                fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[arguments.used - 1], data_make->error.notable);
+                fl_print_format("%[' must be a valid directory.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+                funlockfile(data_make->error.to.stream);
               }
 
               *status = F_status_set_error(F_failure);
@@ -5061,9 +5127,8 @@ extern "C" {
         }
       }
       else {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -5074,9 +5139,8 @@ extern "C" {
 
     if (operation == fake_make_operation_type_operate) {
       if (arguments.used > 1) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sHas too many arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SHas too many arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -5092,23 +5156,27 @@ extern "C" {
         } // for
 
         if (id_section == data_make->fakefile.used) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sNo operation section named '", data_make->error.prefix);
-          f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[0].string);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "' was found.%c", f_string_eol_s[0]);
+          flockfile(data_make->error.to.stream);
+
+          fl_print_format("%c%[%SNo operation section named '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+          fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[0], data_make->error.notable);
+          fl_print_format("%[' was found.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+          funlockfile(data_make->error.to.stream);
         }
         else {
           for (f_array_length_t i = 0; i < section_stack->used; ++i) {
 
             if (section_stack->array[i] == id_section) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sThe section operation '", data_make->error.prefix);
+              if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+                flockfile(data_make->error.to.stream);
 
-              f_color_print_code(data_make->error.to.stream, *data_make->error.notable.before);
-              f_print_dynamic_partial(data_make->error.to.stream, data_make->buffer, data_make->fakefile.array[id_section].name);
-              f_color_print_code(data_make->error.to.stream, *data_make->error.notable.after);
+                fl_print_format("%c%[%SThe section operation '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+                fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, data_make->fakefile.array[id_section].name, data_make->error.notable);
+                fl_print_format("%[' is already in the operation stack, recursion is not allowed.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
 
-              f_color_print(data_make->error.to.stream, data_make->error.context, "' is already in the operation stack, recursion is not allowed.%c", f_string_eol_s[0]);
+                funlockfile(data_make->error.to.stream);
+              }
 
               *status = F_status_set_error(F_failure);
               break;
@@ -5117,9 +5185,8 @@ extern "C" {
         }
       }
       else {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -5129,9 +5196,8 @@ extern "C" {
 
     if (operation == fake_make_operation_type_to) {
       if (arguments.used > 1) {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sHas too many arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SHas too many arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -5141,44 +5207,48 @@ extern "C" {
           f_status_t status_file = f_file_is(arguments.array[0].string, f_file_type_directory, F_false);
 
           if (status_file == F_file_found_not) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sFailed to find file '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[0].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SFailed to find file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[0], data_make->error.notable);
+              fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(status_file);
           }
           else if (F_status_is_error(status_file)) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
               fll_error_file_print(data_make->error, F_status_set_fine(*status), "f_file_is", F_true, main.file_data_build_fakefile.string, "find", fll_error_file_type_file);
             }
 
             *status = status_file;
           }
           else if (!status_file) {
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sThe file '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[0].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "' must be a directory file.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SThe file '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[0], data_make->error.notable);
+              fl_print_format("%[' must be a directory file.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
           }
         }
         else {
-          if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-            fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-            f_color_print(data_make->error.to.stream, data_make->error.context, "%sFilename argument must not be an empty string.%c", data_make->error.prefix, f_string_eol_s[0]);
+          if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+            fll_print_format("%c%[%SFilename argument must not be an empty string.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
           }
         }
       }
       else {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
@@ -5192,11 +5262,14 @@ extern "C" {
         if (fl_string_dynamic_compare_string(fake_make_operation_argument_file, arguments.array[0], fake_make_operation_argument_file_length) == F_equal_to_not) {
           if (fl_string_dynamic_compare_string(fake_make_operation_argument_directory, arguments.array[0], fake_make_operation_argument_directory_length) == F_equal_to_not) {
 
-            if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-              fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "%sUnsupported file type '", data_make->error.prefix);
-              f_color_print(data_make->error.to.stream, data_make->error.notable, "%s", arguments.array[0].string);
-              f_color_print(data_make->error.to.stream, data_make->error.context, "'.%c", f_string_eol_s[0]);
+            if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+              flockfile(data_make->error.to.stream);
+
+              fl_print_format("%c%[%SUnsupported file type '%]", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context);
+              fl_print_format("%[%Q%]", data_make->error.to.stream, data_make->error.notable, arguments.array[0], data_make->error.notable);
+              fl_print_format("%['.%]%c", data_make->error.to.stream, data_make->error.context, data_make->error.context, f_string_eol_s[0]);
+
+              funlockfile(data_make->error.to.stream);
             }
 
             *status = F_status_set_error(F_failure);
@@ -5217,9 +5290,8 @@ extern "C" {
         } // for
       }
       else {
-        if (main.error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
-          fprintf(data_make->error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(data_make->error.to.stream, data_make->error.context, "%sRequires more arguments.%c", data_make->error.prefix, f_string_eol_s[0]);
+        if (data_make->error.verbosity != f_console_verbosity_quiet && data_make->error.to.stream) {
+          fll_print_format("%c%[%SRequires more arguments.%]%c", data_make->error.to.stream, f_string_eol_s[0], data_make->error.context, data_make->error.prefix, data_make->error.context, f_string_eol_s[0]);
         }
 
         *status = F_status_set_error(F_failure);
index f28173c9fde9522ef7b8e0c0e541e7accb077552..a0c0160b2f2f749860067dca0458e9c34398c49d 100644 (file)
@@ -15,25 +15,21 @@ extern "C" {
 
     if (status == F_file_found_not) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sFailed to find '", fll_error_print_error);
+        flockfile(main.error.to.stream);
 
-        if (f_file_exists(source) == F_true) {
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
-        }
-        else {
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
-        }
-
-        f_color_print(main.error.to.stream, main.context.set.error, "' while trying to %s '", operation);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+        fl_print_format("%c%[%SFailed to find '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+        fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, f_file_exists(source) == F_true ? destination : source, main.error.notable);
+        fl_print_format("%[while trying to %S '%]", main.error.to.stream, main.error.context, operation, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
         if (destination) {
-          f_color_print(main.error.to.stream, main.context.set.error, "' %s '", how);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+          fl_print_format("%[' %S '%]", main.error.to.stream, main.error.context, how, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
         }
 
-        f_color_print(main.error.to.stream, main.context.set.error, "'.%c", f_string_eol_s[0]);
+        fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -41,18 +37,21 @@ extern "C" {
 
     if (status == F_parameter) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sInvalid parameter when calling ", fll_error_print_error);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", function);
-        f_color_print(main.error.to.stream, main.context.set.error, "() to %s '", operation);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SInvalid parameter when calling '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, function, main.error.notable);
+        fl_print_format("%[() to %s '%]", main.error.to.stream, main.error.context, operation, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
         if (destination) {
-          f_color_print(main.error.to.stream, main.context.set.error, "' %s '", how);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+          fl_print_format("%[' %S '%]", main.error.to.stream, main.error.context, how, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
         }
 
-        f_color_print(main.error.to.stream, main.context.set.error, "'.%c", f_string_eol_s[0]);
+        fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -60,16 +59,19 @@ extern "C" {
 
     if (status == F_name) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sInvalid name for '", fll_error_print_error);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SInvalid name for '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
         if (destination) {
-          f_color_print(main.error.to.stream, main.context.set.error, "' or '");
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+          fl_print_format("%[' or '%]", main.error.to.stream, main.error.context, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
         }
 
-        f_color_print(main.error.to.stream, main.context.set.error, "'.%c", f_string_eol_s[0]);
+        fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -77,16 +79,19 @@ extern "C" {
 
     if (status == F_memory_not) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sUnable to allocate memory, while trying to %s '", fll_error_print_error, operation);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SUnable to allocate memory, while trying to %S '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, operation, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
         if (destination) {
-          f_color_print(main.error.to.stream, main.context.set.error, "' %s '", how);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+          fl_print_format("%[' %S '%]", main.error.to.stream, main.error.context, how, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
         }
 
-        f_color_print(main.error.to.stream, main.context.set.error, "'.%c", f_string_eol_s[0]);
+        fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -94,17 +99,19 @@ extern "C" {
 
     if (status == F_number_overflow) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
+        flockfile(main.error.to.stream);
 
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sOverflow while trying to %s '", fll_error_print_error, operation);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+        fl_print_format("%c%[%SOverflow while trying to %S '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, operation, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
         if (destination) {
-          f_color_print(main.error.to.stream, main.context.set.error, "' %s '", how);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+          fl_print_format("%[' %S '%]", main.error.to.stream, main.error.context, how, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
         }
 
-        f_color_print(main.error.to.stream, main.context.set.error, "'.%c", f_string_eol_s[0]);
+        fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -112,16 +119,19 @@ extern "C" {
 
     if (status == F_directory) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sInvalid directory while trying to %s '", fll_error_print_error, operation);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SInvalid directory while trying to %S '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, operation, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
         if (destination) {
-          f_color_print(main.error.to.stream, main.context.set.error, "' %s '", how);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+          fl_print_format("%[' %S '%]", main.error.to.stream, main.error.context, how, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
         }
 
-        f_color_print(main.error.to.stream, main.context.set.error, "'.%c", f_string_eol_s[0]);
+        fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -129,16 +139,19 @@ extern "C" {
 
     if (status == F_access_denied) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sAccess denied while trying to %s '", fll_error_print_error, operation);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SAccess denied while trying to %S '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, operation, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
         if (destination) {
-          f_color_print(main.error.to.stream, main.context.set.error, "' %s '", how);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+          fl_print_format("%[' %S '%]", main.error.to.stream, main.error.context, how, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
         }
 
-        f_color_print(main.error.to.stream, main.context.set.error, "'.%c", f_string_eol_s[0]);
+        fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -146,16 +159,19 @@ extern "C" {
 
     if (status == F_loop) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sLoop while trying to %s '", fll_error_print_error, operation);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SLoop while trying to %S '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, operation, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
         if (destination) {
-          f_color_print(main.error.to.stream, main.context.set.error, "' %s '", how);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+          fl_print_format("%[' %S '%]", main.error.to.stream, main.error.context, how, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
         }
 
-        f_color_print(main.error.to.stream, main.context.set.error, "'.%c", f_string_eol_s[0]);
+        fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -163,16 +179,19 @@ extern "C" {
 
     if (status == F_prohibited) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sProhibited by system while trying to %s '", fll_error_print_error, operation);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SProhibited by system while trying to %S '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, operation, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
         if (destination) {
-          f_color_print(main.error.to.stream, main.context.set.error, "' %s '", how);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+          fl_print_format("%[' %S '%]", main.error.to.stream, main.error.context, how, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
         }
 
-        f_color_print(main.error.to.stream, main.context.set.error, "'.%c", f_string_eol_s[0]);
+        fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -180,16 +199,19 @@ extern "C" {
 
     if (status == F_directory_found_not) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sFailed to %s '", fll_error_print_error, operation);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SFailed to %S '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, operation, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
         if (destination) {
-          f_color_print(main.error.to.stream, main.context.set.error, "' %s '", how);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+          fl_print_format("%[' %S '%]", main.error.to.stream, main.error.context, how, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
         }
 
-        f_color_print(main.error.to.stream, main.context.set.error, "' due to an invalid directory in the path.%c", f_string_eol_s[0]);
+        fl_print_format("%[' due to an invalid directory in the path.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -197,34 +219,40 @@ extern "C" {
 
     if (status == F_failure) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sFailed to %s '", fll_error_print_error, operation);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SFailed to %S '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, operation, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
         if (destination) {
-          f_color_print(main.error.to.stream, main.context.set.error, "' %s '", how);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+          fl_print_format("%[' %S '%]", main.error.to.stream, main.error.context, how, main.error.context);
+          fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
         }
 
-        f_color_print(main.error.to.stream, main.context.set.error, "'.%c", f_string_eol_s[0]);
+        fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
     }
 
     if (fll_error_print(main.error, status, function, F_false) == F_known_not && fallback && main.error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.error.to.stream, main.context.set.error, "UNKNOWN %s(", fll_error_print_error);
-      f_color_print(main.error.to.stream, main.context.set.notable, "%llu", status);
-      f_color_print(main.error.to.stream, main.context.set.error, ") occurred while trying to %s '", operation);
-      f_color_print(main.error.to.stream, main.context.set.notable, "%s", source);
+      flockfile(main.error.to.stream);
+
+      fl_print_format("%c%[UNKNOWN %s(%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, operation, main.error.context);
+      fl_print_format("%[%ui%]", main.error.to.stream, main.error.notable, status, main.error.notable);
+      fl_print_format("%[) occurred while trying to %S '%]", main.error.to.stream, main.error.context, operation, main.error.context);
+      fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, source, main.error.notable);
 
       if (destination) {
-        f_color_print(main.error.to.stream, main.context.set.error, "' %s '", how);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", destination);
+        fl_print_format("%[' %S '%]", main.error.to.stream, main.error.context, how, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, destination, main.error.notable);
       }
 
-      f_color_print(main.error.to.stream, main.context.set.error, "'.%c", f_string_eol_s[0]);
+      fl_print_format("%['.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+      funlockfile(main.error.to.stream);
     }
 
     return F_true;
@@ -236,12 +264,15 @@ extern "C" {
 
     if (status == F_file_found_not) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%serror occurred on invalid UTF-8 character at stop position (at ", fll_error_print_error);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%d", range.start);
-        f_color_print(main.error.to.stream, main.context.set.error, " of setting file '");
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", path_file);
-        f_color_print(main.error.to.stream, main.context.set.error, "').%c", f_string_eol_s[0]);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SOccurred on invalid UTF-8 character at stop position (at '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+        fl_print_format("%[%un%]", main.error.to.stream, main.error.notable, range.start, main.error.notable);
+        fl_print_format("%[ of setting file '%]", main.error.to.stream, main.error.context, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, path_file, main.error.notable);
+        fl_print_format("%[').%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -249,21 +280,15 @@ extern "C" {
 
     if (status == F_complete_not_utf || status == F_complete_not_utf_eos || status == F_complete_not_utf_stop) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%serror occurred on invalid UTF-8 character", fll_error_print_error);
+        flockfile(main.error.to.stream);
 
-        if (status == F_complete_not_utf_eos) {
-          f_color_print(main.error.to.stream, main.context.set.error, " at end of string");
-        }
-        else if (status == F_complete_not_utf_stop) {
-          f_color_print(main.error.to.stream, main.context.set.error, " at stop point of string");
-        }
+        fl_print_format("%c%[%SOccurred on invalid UTF-8 character at %s (at '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, status == F_complete_not_utf_eos ? "end of string" : "stop point of string", main.error.context);
+        fl_print_format("%[%un%]", main.error.to.stream, main.error.notable, range.start, main.error.notable);
+        fl_print_format("%[ of setting file '%]", main.error.to.stream, main.error.context, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, path_file, main.error.notable);
+        fl_print_format("%[').%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
 
-        f_color_print(main.error.to.stream, main.context.set.error, " (at ");
-        f_color_print(main.error.to.stream, main.context.set.notable, "%d", range.start);
-        f_color_print(main.error.to.stream, main.context.set.error, " of setting file '");
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", path_file);
-        f_color_print(main.error.to.stream, main.context.set.error, "').%c", f_string_eol_s[0]);
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
@@ -271,24 +296,30 @@ extern "C" {
 
     if (status == F_complete_not_utf_stop) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%serror occurred on invalid UTF-8 character at stop point of string (at ", fll_error_print_error);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%d", range.start);
-        f_color_print(main.error.to.stream, main.context.set.error, " of setting file '");
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", path_file);
-        f_color_print(main.error.to.stream, main.context.set.error, "').%c", f_string_eol_s[0]);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SOccurred on invalid UTF-8 character at stop point of string (at '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+        fl_print_format("%[%un%]", main.error.to.stream, main.error.notable, range.start, main.error.notable);
+        fl_print_format("%[ of setting file '%]", main.error.to.stream, main.error.context, main.error.context);
+        fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, path_file, main.error.notable);
+        fl_print_format("%[').%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_false;
     }
 
     if (fll_error_print(main.error, status, function, F_false) == F_known_not && fallback && main.error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.error.to.stream, main.context.set.error, "UNKNOWN %s(", fll_error_print_error);
-      f_color_print(main.error.to.stream, main.context.set.notable, "%llu", status);
-      f_color_print(main.error.to.stream, main.context.set.error, ") in function ");
-      f_color_print(main.error.to.stream, main.context.set.notable, "%s", function);
-      f_color_print(main.error.to.stream, main.context.set.error, "().%c", f_string_eol_s[0]);
+      flockfile(main.error.to.stream);
+
+      fl_print_format("%c%[UNKNOWN %s(%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+      fl_print_format("%[%ui%]", main.error.to.stream, main.error.notable, status, main.error.notable);
+      fl_print_format("%[) in function '%]", main.error.to.stream, main.error.context, main.error.context);
+      fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, function, main.error.notable);
+      fl_print_format("%[().%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+      funlockfile(main.error.to.stream);
     }
 
     return F_true;
@@ -300,12 +331,13 @@ extern "C" {
 
     if (main.error.verbosity == f_console_verbosity_quiet) return;
 
-    fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+    flockfile(main.error.to.stream);
 
-    f_color_print(main.error.to.stream, main.context.set.error, "%sThe parameter '", fll_error_print_error);
-    f_color_print(main.error.to.stream, main.context.set.notable, "%s%s", f_console_symbol_long_enable_s, parameter);
+    fl_print_format("%c%[%SThe parameter '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+    fl_print_format("%[%S%S%]", main.error.to.stream, main.error.notable, f_console_symbol_long_enable_s, parameter, main.error.notable);
+    fl_print_format("%[' was specified, but no value was given.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
 
-    f_color_print(main.error.to.stream, main.context.set.error, "' was specified, but no value was given.%c", f_string_eol_s[0]);
+    funlockfile(main.error.to.stream);
   }
 #endif // _di_fake_print_error_parameter_missing_value_
 
@@ -314,12 +346,13 @@ extern "C" {
 
     if (main.error.verbosity == f_console_verbosity_quiet) return;
 
-    fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+    flockfile(main.error.to.stream);
 
-    f_color_print(main.error.to.stream, main.context.set.error, "%sThe parameter '", fll_error_print_error);
-    f_color_print(main.error.to.stream, main.context.set.notable, "%s%s", f_console_symbol_long_enable_s, parameter);
+    fl_print_format("%c%[%SThe parameter '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+    fl_print_format("%[%S%S%]", main.error.to.stream, main.error.notable, f_console_symbol_long_enable_s, parameter, main.error.notable);
+    fl_print_format("%[' was specified too many times.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
 
-    f_color_print(main.error.to.stream, main.context.set.error, "' specified too many times.%c", f_string_eol_s[0]);
+    funlockfile(main.error.to.stream);
   }
 #endif // _di_fake_print_error_parameter_too_many_
 
@@ -332,22 +365,17 @@ extern "C" {
 
     f_fss_count_lines(buffer, operation_name.start, &line);
 
-    fprintf(error.to.stream, "%c", f_string_eol_s[0]);
-    f_color_print(error.to.stream, main.error.context, "%sThe section operation '", main.error.prefix);
-
-    f_color_print_code(error.to.stream, main.context.notable);
-    f_print_dynamic_partial(error.to.stream, buffer, operation_name);
-    f_color_print_code(error.to.stream, main.context.reset);
+    flockfile(main.error.to.stream);
 
-    f_color_print(error.to.stream, main.error.context, "' from section '");
+    fl_print_format("%c%[%SThe section operation '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+    fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, operation_name, main.error.notable);
+    fl_print_format("%[' from section '%]", main.error.to.stream, main.error.context, main.error.context);
+    fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, section_name, main.error.notable);
+    fl_print_format("%[' on line %]", main.error.to.stream, main.error.context, main.error.context);
+    fl_print_format("%[%un%]", main.error.to.stream, main.error.notable, line, main.error.notable);
+    fl_print_format(" %[failed.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
 
-    f_color_print_code(error.to.stream, main.context.notable);
-    f_print_dynamic_partial(error.to.stream, buffer, section_name);
-    f_color_print_code(error.to.stream, main.context.reset);
-
-    f_color_print(error.to.stream, main.error.context, "' on line ");
-    f_color_print(error.to.stream, main.context.set.notable, "%llu", line);
-    f_color_print(error.to.stream, main.error.context, " failed.%c", f_string_eol_s[0]);
+    funlockfile(main.error.to.stream);
   }
 #endif // _di_fake_print_message_section_operation_failed_
 
@@ -356,15 +384,18 @@ extern "C" {
 
     if (main.error.verbosity == f_console_verbosity_quiet || !error.to.stream) return;
 
+    flockfile(main.error.to.stream);
+
     if (F_status_set_fine(status) == F_false) {
-      fprintf(error.to.stream, "%c", f_string_eol_s[0]);
-      f_color_print(error.to.stream, main.error.context, "%sThe path '", main.error.prefix);
-      f_color_print(error.to.stream, main.context.set.notable, "%s", path);
-      f_color_print(error.to.stream, main.error.context, "' is outside the project root.%c", f_string_eol_s[0]);
+      fl_print_format("%c%[%SThe path '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+      fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, path, main.error.notable);
+      fl_print_format("%[' is outside the project root.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
     }
     else {
       fll_error_file_print(main.error, F_status_set_fine(status), function, F_true, path, "determine real path of", fll_error_file_type_file);
     }
+
+    funlockfile(main.error.to.stream);
   }
 #endif // _di_fake_print_message_section_operation_path_outside_
 
@@ -374,18 +405,20 @@ extern "C" {
     if (main.error.verbosity == f_console_verbosity_quiet || !error.to.stream) return;
 
     if (status == F_array_too_large) {
-      fprintf(error.to.stream, "%c", f_string_eol_s[0]);
-      f_color_print(error.to.stream, main.error.context, "%s: Maximum stack size reached while processing path '", main.error.prefix);
-      f_color_print(error.to.stream, main.context.set.notable, "%s", path);
-      f_color_print(error.to.stream, main.error.context, "'");
+      flockfile(main.error.to.stream);
+
+      fl_print_format("%c%[%SMaximum stack size reached while processing path '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+      fl_print_format("%[%S%]", main.error.to.stream, main.error.notable, path, main.error.notable);
+      fl_print_format("%['", main.error.to.stream, main.error.context);
 
       if (function) {
-        f_color_print(error.to.stream, main.error.context, " while calling ");
-        f_color_print(error.to.stream, main.context.set.notable, "%s", function);
-        f_color_print(error.to.stream, main.error.context, "()");
+        fl_print_format(" while calling%] %[%S%]", main.error.to.stream, main.error.context, main.error.notable, function, main.error.notable);
+        fl_print_format("%[()", main.error.to.stream, main.error.context);
       }
 
-      f_color_print(error.to.stream, main.error.context, ".%c", f_string_eol_s[0]);
+      fl_print_format(".%]%c", main.error.to.stream, main.error.context, f_string_eol_s[0]);
+
+      funlockfile(main.error.to.stream);
     }
     else {
       fll_error_file_print(error, status, function, F_true, path, "change path to", fll_error_file_type_directory);
@@ -402,24 +435,19 @@ extern "C" {
 
     f_fss_count_lines(buffer, operation_name.start, &line);
 
-    fprintf(error.to.stream, "%c", f_string_eol_s[0]);
-    f_color_print(error.to.stream, main.error.context, "The section operation '", main.error.prefix);
-
-    f_color_print_code(error.to.stream, main.context.notable);
-    f_print_dynamic_partial(error.to.stream, buffer, operation_name);
-    f_color_print_code(error.to.stream, main.context.reset);
+    flockfile(main.error.to.stream);
 
-    f_color_print(error.to.stream, main.error.context, "' from section '");
+    fl_print_format("%c%[%SThe section operation '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+    fl_print_format("%[%/Q%]", main.error.to.stream, main.error.notable, buffer, operation_name, main.error.notable);
+    fl_print_format("%[' from section '%]", main.error.to.stream, main.error.context, buffer, main.error.context);
+    fl_print_format("%[%/Q%]", main.error.to.stream, main.error.notable, buffer, section_name, main.error.notable);
+    fl_print_format("%[' on line%] ", main.error.to.stream, main.error.context, main.error.context);
+    fl_print_format("%[%ul%]", main.error.to.stream, main.error.notable, line, main.error.notable);
+    fl_print_format("%[' cannot be processed because the max stack depth of%] ", main.error.to.stream, main.error.context, main.error.context);
+    fl_print_format("%[%ul%]", main.error.to.stream, main.error.notable, stack_max, main.error.notable);
+    fl_print_format(" %[has been reached.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
 
-    f_color_print_code(error.to.stream, main.context.notable);
-    f_print_dynamic_partial(error.to.stream, buffer, section_name);
-    f_color_print_code(error.to.stream, main.context.reset);
-
-    f_color_print(error.to.stream, main.error.context, "' on line ");
-    f_color_print(error.to.stream, main.context.set.notable, "%llu", line);
-    f_color_print(error.to.stream, main.error.context, " cannot be processed because the max stack depth of ");
-    f_color_print(error.to.stream, main.context.set.notable, "%llu", stack_max);
-    f_color_print(error.to.stream, main.error.context, " has been reached.%c", f_string_eol_s[0]);
+    funlockfile(main.error.to.stream);
   }
 #endif // _di_fake_print_message_section_operation_stack_max_
 
@@ -432,102 +460,91 @@ extern "C" {
 
     f_fss_count_lines(buffer, operation_name.start, &line);
 
-    fprintf(error.to.stream, "%c", f_string_eol_s[0]);
-    f_color_print(error.to.stream, main.error.context, "%sThe section operation '", main.error.prefix);
-
-    f_color_print_code(error.to.stream, main.context.notable);
-    f_print_dynamic_partial(error.to.stream, buffer, operation_name);
-    f_color_print_code(error.to.stream, main.context.reset);
-
-    f_color_print(error.to.stream, main.error.context, "' from section '");
+    flockfile(main.error.to.stream);
 
-    f_color_print_code(error.to.stream, main.context.notable);
-    f_print_dynamic_partial(error.to.stream, buffer, section_name);
-    f_color_print_code(error.to.stream, main.context.reset);
+    fl_print_format("%c%[%SThe section operation '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+    fl_print_format("%[%/Q%]", main.error.to.stream, main.error.notable, buffer, operation_name, main.error.notable);
+    fl_print_format("%[' from section '%]", main.error.to.stream, main.error.context, buffer, main.error.context);
+    fl_print_format("%[%/Q%]", main.error.to.stream, main.error.notable, buffer, section_name, main.error.notable);
+    fl_print_format("%[' on line%] ", main.error.to.stream, main.error.context, main.error.context);
+    fl_print_format("%[%ul%]", main.error.to.stream, main.error.notable, line, main.error.notable);
+    fl_print_format(" %[is not a known operation name.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
 
-    f_color_print(error.to.stream, main.error.context, "' on line ");
-    f_color_print(error.to.stream, main.context.set.notable, "%llu", line);
-    f_color_print(error.to.stream, main.error.context, " is not a known operation name.%c", f_string_eol_s[0]);
+    funlockfile(main.error.to.stream);
   }
 #endif // _di_fake_print_message_section_operation_unknown_
 
 #ifndef _di_fake_print_warning_settings_content_empty_
   void fake_print_warning_settings_content_empty(const fake_main_t main, const f_string_t path_file, const f_string_dynamic_t buffer, const f_string_range_t range_object, const f_string_t settings_name) {
 
-    if (main.error.verbosity == f_console_verbosity_quiet) return;
-
-    fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+    if (main.warning.verbosity == f_console_verbosity_quiet) return;
 
-    f_color_print(f_type_warning, main.context.set.warning, "%sthe fakefile '", fll_error_print_warning);
-    f_color_print(f_type_warning, main.context.set.notable, "%s", path_file);
-    f_color_print(f_type_warning, main.context.set.warning, "' has empty content for the '");
-    f_color_print(f_type_warning, main.context.set.notable, "%s", settings_name);
-    f_color_print(f_type_warning, main.context.set.warning, "' object '");
+    flockfile(main.warning.to.stream);
 
-    f_color_print_code(f_type_warning, main.context.notable);
-    f_print_dynamic_partial(f_type_warning, buffer, range_object);
-    f_color_print_code(f_type_warning, main.context.reset);
+    fl_print_format("%c%[%SThe fakefile '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+    fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, path_file, main.warning.notable);
+    fl_print_format("%[' has empty content for the '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+    fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, settings_name, main.warning.notable);
+    fl_print_format("%[' object '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+    fl_print_format("%[%/Q%]", main.warning.to.stream, main.warning.notable, buffer, range_object, main.warning.notable);
+    fl_print_format("%['.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
 
-    f_color_print(f_type_warning, main.context.set.warning, "'.%c", f_string_eol_s[0]);
+    funlockfile(main.warning.to.stream);
   }
 #endif // _di_fake_print_warning_settings_content_empty_
 
 #ifndef _di_fake_print_warning_settings_content_invalid_
   void fake_print_warning_settings_content_invalid(const fake_main_t main, const f_string_t path_file, const f_string_dynamic_t buffer, const f_string_range_t range_object, const f_string_range_t range_content, const f_string_t settings_name) {
 
-    if (main.error.verbosity == f_console_verbosity_quiet) return;
-
-    fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-
-    f_color_print(main.output.stream, main.context.set.warning, "%sthe fakefile '", fll_error_print_warning);
-    f_color_print(main.output.stream, main.context.set.notable, "%s", path_file);
-    f_color_print(main.output.stream, main.context.set.warning, "' has an invalid content '");
-
-    f_color_print_code(main.output.stream, main.context.notable);
-    f_print_dynamic_partial(main.output.stream, buffer, range_content);
-    f_color_print_code(main.output.stream, main.context.reset);
+    if (main.warning.verbosity == f_console_verbosity_quiet) return;
 
-    f_color_print(main.output.stream, main.context.set.warning, "' for the '");
-    f_color_print(main.output.stream, main.context.set.notable, "%s", settings_name);
-    f_color_print(main.output.stream, main.context.set.warning, "' object '");
+    flockfile(main.warning.to.stream);
 
-    f_color_print_code(main.output.stream, main.context.notable);
-    f_print_dynamic_partial(main.output.stream, buffer, range_object);
-    f_color_print_code(main.output.stream, main.context.reset);
+    fl_print_format("%c%[%SThe fakefile '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+    fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, path_file, main.warning.notable);
+    fl_print_format("%[' has invalid content '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+    fl_print_format("%[%/Q%]", main.warning.to.stream, main.warning.notable, buffer, range_content, main.warning.notable);
+    fl_print_format("%[' for the '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+    fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, settings_name, main.warning.notable);
+    fl_print_format("%[' object '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+    fl_print_format("%[%/Q%]", main.warning.to.stream, main.warning.notable, buffer, range_object, main.warning.notable);
+    fl_print_format("%['.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
 
-    f_color_print(main.output.stream, main.context.set.warning, "'.%c", f_string_eol_s[0]);
+    funlockfile(main.warning.to.stream);
   }
 #endif // _di_fake_print_warning_settings_content_invalid_
 
 #ifndef _di_fake_print_warning_settings_content_multiple_
   void fake_print_warning_settings_content_multiple(const fake_main_t main, const f_string_t path_file, const f_string_t name_object) {
 
-    if (main.error.verbosity != f_console_verbosity_verbose) return;
+    if (main.warning.verbosity == f_console_verbosity_quiet) return;
 
-    fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+    flockfile(main.warning.to.stream);
 
-    f_color_print(f_type_warning, main.context.set.warning, "%sthe setting '", fll_error_print_warning);
-    f_color_print(f_type_warning, main.context.set.notable, "%s", name_object);
-    f_color_print(f_type_warning, main.context.set.warning, "' in the file '");
-    f_color_print(f_type_warning, main.context.set.notable, "%s", path_file);
+    fl_print_format("%c%[%SThe fakefile '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+    fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, name_object, main.warning.notable);
+    fl_print_format("%[' in the file '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+    fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, path_file, main.warning.notable);
+    fl_print_format("%[' may only have a single property, only using the first.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
 
-    f_color_print(f_type_warning, main.context.set.warning, "' may only have a single property, only using the first.%c", f_string_eol_s[0]);
+    funlockfile(main.warning.to.stream);
   }
 #endif // _di_fake_print_warning_settings_content_multiple_
 
 #ifndef _di_fake_print_warning_settings_object_multiple_
   void fake_print_warning_settings_object_multiple(const fake_main_t main, const f_string_t path_file, const f_string_t label, const f_string_t name_object) {
 
-    if (main.error.verbosity != f_console_verbosity_verbose) return;
+    if (main.warning.verbosity == f_console_verbosity_quiet) return;
 
-    fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
+    flockfile(main.warning.to.stream);
 
-    f_color_print(f_type_warning, main.context.set.warning, "%sthe %s object '", fll_error_print_warning, label);
-    f_color_print(f_type_warning, main.context.set.notable, "%s", name_object);
-    f_color_print(f_type_warning, main.context.set.warning, "' in the file '");
-    f_color_print(f_type_warning, main.context.set.notable, "%s", path_file);
+    fl_print_format("%c%[%SThe object '%]", main.warning.to.stream, f_string_eol_s[0], main.warning.context, main.warning.prefix, main.warning.context);
+    fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, name_object, main.warning.notable);
+    fl_print_format("%[' in the file '%]", main.warning.to.stream, main.warning.context, main.warning.context);
+    fl_print_format("%[%S%]", main.warning.to.stream, main.warning.notable, path_file, main.warning.notable);
+    fl_print_format("%[' may only be specified once, only using the first.%]%c", main.warning.to.stream, main.warning.context, main.warning.context, f_string_eol_s[0]);
 
-    f_color_print(f_type_warning, main.context.set.warning, "' may only be specified once, only using the first.%c", f_string_eol_s[0]);
+    funlockfile(main.warning.to.stream);
   }
 #endif // _di_fake_print_warning_settings_object_multiple_
 
index 0e80ae96622388dd6c692461ca9b379d81dd0914..b2aa91aa7c6aba4a92d10055334d94b330b326ed 100644 (file)
@@ -20,8 +20,7 @@ extern "C" {
     f_status_t status = F_none;
 
     if (main.error.verbosity != f_console_verbosity_quiet) {
-      fprintf(main.output.stream, "%c", f_string_eol_s[0]);
-      f_color_print(main.output.stream, main.context.set.important, "Generating skeleton structure.%c", f_string_eol_s[0]);
+      fll_print_format("%cGenerating skeleton structure.%c", main.output.stream, f_string_eol_s[0], f_string_eol_s[0]);
     }
 
     {
@@ -168,7 +167,7 @@ extern "C" {
 
     if (status == F_true) {
       if (main.error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main.output.stream, "Directory '%s' already exists.%c", path.string, f_string_eol_s[0]);
+        fll_print_format("Directory '%Q' already exists.%c", main.output.stream, path, f_string_eol_s[0]);
       }
 
       return F_none;
@@ -176,10 +175,13 @@ extern "C" {
 
     if (status == F_false) {
       if (main.error.verbosity != f_console_verbosity_quiet) {
-        fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-        f_color_print(main.error.to.stream, main.context.set.error, "%sThe path '", fll_error_print_error);
-        f_color_print(main.error.to.stream, main.context.set.notable, "%s", path.string);
-        f_color_print(main.error.to.stream, main.context.set.error, "' exists but is not a directory.%c", f_string_eol_s[0]);
+        flockfile(main.error.to.stream);
+
+        fl_print_format("%c%[%SThe path '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+        fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, path, main.error.notable);
+        fl_print_format("%[' exists but is not a directory.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+        funlockfile(main.error.to.stream);
       }
 
       return F_status_set_warning(F_failure);
@@ -189,10 +191,13 @@ extern "C" {
 
       if (F_status_is_error(status)) {
         if (F_status_set_fine(status) == F_file_found_not) {
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main.error.to.stream, main.context.set.error, "%sThe path '", fll_error_print_error);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", path.string);
-          f_color_print(main.error.to.stream, main.context.set.error, "' could not be created, a parent directory does not exist.%c", f_string_eol_s[0]);
+          flockfile(main.error.to.stream);
+
+          fl_print_format("%c%[%SThe path '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+          fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, path, main.error.notable);
+          fl_print_format("%[' could not be created, a parent directory does not exist.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+          funlockfile(main.error.to.stream);
         }
         else {
           fll_error_file_print(main.error, F_status_set_fine(status), "f_directory_create", F_true, path.string, "create", fll_error_file_type_directory);
@@ -202,7 +207,7 @@ extern "C" {
       }
 
       if (main.error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main.output.stream, "Directory '%s' created.%c", path.string, f_string_eol_s[0]);
+        fll_print_format("Directory '%Q' created.%c", main.output.stream, path, f_string_eol_s[0]);
       }
     }
     else if (F_status_is_error(status)) {
@@ -226,7 +231,7 @@ extern "C" {
 
     if (status == F_true) {
       if (main.error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main.output.stream, "File '%s' already exists.%c", path.string, f_string_eol_s[0]);
+        fll_print_format("File '%Q' already exists.%c", main.output.stream, path, f_string_eol_s[0]);
       }
 
       return F_none;
@@ -238,7 +243,7 @@ extern "C" {
 
       if (status == F_true) {
         if (main.error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main.output.stream, "File '%s' already exists (as a symbolic link).%c", path.string, f_string_eol_s[0]);
+          fll_print_format("File '%Q' already exists (as a symbolic link).%c", main.output.stream, path, f_string_eol_s[0]);
         }
 
         return F_none;
@@ -247,7 +252,7 @@ extern "C" {
 
     if (status == F_false) {
       if (main.error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main.output.stream, "File '%s' already exists but is not a regular file (or symbolic link).%c", path.string, f_string_eol_s[0]);
+        fll_print_format("File '%Q' already exists but is not a regular file (or symbolic link).%c", main.output.stream, path, f_string_eol_s[0]);
       }
 
       return F_status_set_warning(F_none);
@@ -263,10 +268,13 @@ extern "C" {
 
       if (F_status_is_error(status)) {
         if (F_status_set_fine(status) == F_file_found_not) {
-          fprintf(main.error.to.stream, "%c", f_string_eol_s[0]);
-          f_color_print(main.error.to.stream, main.context.set.error, "%sThe file '", fll_error_print_error);
-          f_color_print(main.error.to.stream, main.context.set.notable, "%s", path.string);
-          f_color_print(main.error.to.stream, main.context.set.error, "' could not be created, a parent directory does not exist.%c", f_string_eol_s[0]);
+          flockfile(main.error.to.stream);
+
+          fl_print_format("%c%[%SThe file '%]", main.error.to.stream, f_string_eol_s[0], main.error.context, main.error.prefix, main.error.context);
+          fl_print_format("%[%Q%]", main.error.to.stream, main.error.notable, path, main.error.notable);
+          fl_print_format("%[' could not be created, a parent directory does not exist.%]%c", main.error.to.stream, main.error.context, main.error.context, f_string_eol_s[0]);
+
+          funlockfile(main.error.to.stream);
         }
         else {
           fll_error_file_print(main.error, F_status_set_fine(status), "f_file_create", F_true, path.string, "create", fll_error_file_type_file);
@@ -276,7 +284,7 @@ extern "C" {
       }
 
       if (main.error.verbosity == f_console_verbosity_verbose) {
-        fprintf(main.output.stream, "File '%s' created.%c", path.string, f_string_eol_s[0]);
+        fll_print_format("File '%Q' created.%c", main.output.stream, path, f_string_eol_s[0]);
       }
 
       if (content.used) {
@@ -303,7 +311,7 @@ extern "C" {
         }
 
         if (main.error.verbosity == f_console_verbosity_verbose) {
-          fprintf(main.output.stream, "File '%s' pre-populated.%c", path.string, f_string_eol_s[0]);
+          fll_print_format("File '%Q' pre-populated.%c", main.output.stream, path, f_string_eol_s[0]);
         }
 
         f_file_stream_close(F_true, &file);
index c5fb7054b398774004e51c004c8652b461f9fe75..97025c183a343688b41a821d5c25df6ae4222e5d 100644 (file)
@@ -27,6 +27,7 @@ fl_directory
 fl_environment
 fl_fss
 fl_iki
+fl_print
 fl_status
 fl_string
 fll_error
@@ -34,4 +35,5 @@ fll_execute
 fll_file
 fll_fss
 fll_path
+fll_print
 fll_program
index ade692349723bdc4196726a0f385427133da06a1..8c22f384261fc07767a086ecbdd4f1832ad6ca2f 100644 (file)
@@ -20,7 +20,7 @@ build_compiler gcc
 build_indexer ar
 build_language c
 build_libraries -lc -lcap
-build_libraries-individual -lfll_error -lfll_execute -lfll_file -lfll_fss -lfll_path -lfll_program -lfl_console -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_fss -lfl_iki -lfl_status -lfl_string -lf_account -lf_capability -lf_color -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_path -lf_print -lf_signal -lf_string -lf_thread -lf_type_array -lf_utf
+build_libraries-individual -lfll_error -lfll_execute -lfll_file -lfll_fss -lfll_path -lfll_print -lfll_program -lfl_console -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_fss -lfl_iki -lfl_print -lfl_status -lfl_string -lf_account -lf_capability -lf_color -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_path -lf_print -lf_signal -lf_string -lf_thread -lf_type_array -lf_utf
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 build_sources_library fake.c private-common.c private-fake.c private-clean.c private-build.c private-make.c private-print.c private-skeleton.c
@@ -52,7 +52,7 @@ defines_all -D_libcap_legacy_only_ -D_pthread_attr_unsupported_ -D_pthread_sigqu
 defines_static
 defines_shared
 
-flags_all -z now -g -fdiagnostics-color=always -pthread -Wno-logical-not-parentheses -Wno-logical-op-parentheses -Wno-parentheses
+flags_all -O2 -z now -g -fdiagnostics-color=always -pthread -Wno-logical-not-parentheses -Wno-logical-op-parentheses -Wno-parentheses
 flags_shared
 flags_static
 flags_library -fPIC
index 7d5fd4f3a072227ed96f62293d59eb2e87cb777e..14ab6dd3da8907f771d2d3c8493016db8e5cbab1 100644 (file)
@@ -132,7 +132,7 @@ Fakefile Documentation:
       The second Content may be either 'success' or 'failure' to designate on whether or not to exit as success or failure.
 
       When set to "failure" this will trigger a failure message.
-      When set to "failure", the fail state will be forcibly changed to "fail" regardless of the currrent fail state.
+      When set to "failure", the fail state will be forcibly changed to "fail" regardless of the current fail state.
 
     - fail\:
       Toggle how the to handle an operation failure.