]> Kevux Git Server - fll/commitdiff
Progress: Continue program relating work, focusing on Featureless Make and printing.
authorKevin Day <kevin@kevux.org>
Mon, 20 Mar 2023 03:17:45 +0000 (22:17 -0500)
committerKevin Day <kevin@kevux.org>
Mon, 20 Mar 2023 03:17:45 +0000 (22:17 -0500)
I am finally getting close to wrapping up the printing changes in Featureless Make.
There are some improvements in the design that need to be reflected in the other already migrated programs (such as fss_write).

Having the extra flags and object on fl_print_t is already showing its worth.
I am able to drastically simplify the print functions.

I am also now using fake_main_t structure.
I like that pattern that is forming from this and will need to also update the already migrated programs.

Featureless Make is nearly fully migrated.
There are still some fixme and todo situations to resolve.

83 files changed:
build/stand_alone/fake.settings
level_3/fake/c/main/build.c
level_3/fake/c/main/build.h
level_3/fake/c/main/build/library.c
level_3/fake/c/main/build/library.h
level_3/fake/c/main/build/load.c
level_3/fake/c/main/build/load.h
level_3/fake/c/main/build/object.c
level_3/fake/c/main/build/object.h
level_3/fake/c/main/build/objects.c
level_3/fake/c/main/build/objects.h
level_3/fake/c/main/build/print.c [deleted file]
level_3/fake/c/main/build/print.h [deleted file]
level_3/fake/c/main/build/print/compile.c
level_3/fake/c/main/build/print/compile.h
level_3/fake/c/main/build/print/error.c
level_3/fake/c/main/build/print/error.h
level_3/fake/c/main/build/print/message.c [new file with mode: 0644]
level_3/fake/c/main/build/print/message.h [new file with mode: 0644]
level_3/fake/c/main/build/print/verbose.c
level_3/fake/c/main/build/print/verbose.h
level_3/fake/c/main/build/print/warning.c
level_3/fake/c/main/build/print/warning.h
level_3/fake/c/main/build/program.c
level_3/fake/c/main/build/program.h
level_3/fake/c/main/build/skeleton.c
level_3/fake/c/main/build/skeleton.h
level_3/fake/c/main/clean.c
level_3/fake/c/main/clean.h
level_3/fake/c/main/common.c
level_3/fake/c/main/common/type.h
level_3/fake/c/main/fake.c
level_3/fake/c/main/fake.h
level_3/fake/c/main/fake/path_generate.c
level_3/fake/c/main/fake/path_generate.h
level_3/fake/c/main/make.c
level_3/fake/c/main/make.h
level_3/fake/c/main/make/load_fakefile.c
level_3/fake/c/main/make/load_fakefile.h
level_3/fake/c/main/make/load_parameters.c
level_3/fake/c/main/make/load_parameters.h
level_3/fake/c/main/make/operate.c
level_3/fake/c/main/make/operate.h
level_3/fake/c/main/make/operate_block.c
level_3/fake/c/main/make/operate_block.h
level_3/fake/c/main/make/operate_process.c
level_3/fake/c/main/make/operate_process.h
level_3/fake/c/main/make/operate_process_type.c
level_3/fake/c/main/make/operate_process_type.h
level_3/fake/c/main/make/operate_validate.c
level_3/fake/c/main/make/operate_validate.h
level_3/fake/c/main/make/operate_validate_type.c
level_3/fake/c/main/make/operate_validate_type.h
level_3/fake/c/main/make/print.c [deleted file]
level_3/fake/c/main/make/print/common.c [new file with mode: 0644]
level_3/fake/c/main/make/print/common.h [new file with mode: 0644]
level_3/fake/c/main/make/print/error.c
level_3/fake/c/main/make/print/error.h
level_3/fake/c/main/make/print/message.c [new file with mode: 0644]
level_3/fake/c/main/make/print/message.h [moved from level_3/fake/c/main/make/print.h with 57% similarity]
level_3/fake/c/main/make/print/verbose.c
level_3/fake/c/main/make/print/verbose.h
level_3/fake/c/main/make/print/warning.c
level_3/fake/c/main/make/print/warning.h
level_3/fake/c/main/print.c [deleted file]
level_3/fake/c/main/print.h [deleted file]
level_3/fake/c/main/print/common.c [new file with mode: 0644]
level_3/fake/c/main/print/common.h [new file with mode: 0644]
level_3/fake/c/main/print/context.c
level_3/fake/c/main/print/context.h
level_3/fake/c/main/print/error.c
level_3/fake/c/main/print/error.h
level_3/fake/c/main/print/message.c [new file with mode: 0644]
level_3/fake/c/main/print/message.h [new file with mode: 0644]
level_3/fake/c/main/print/operation.c
level_3/fake/c/main/print/operation.h
level_3/fake/c/main/print/verbose.c
level_3/fake/c/main/print/verbose.h
level_3/fake/c/main/print/warning.c
level_3/fake/c/main/print/warning.h
level_3/fake/c/main/skeleton.c
level_3/fake/c/main/skeleton.h
level_3/fake/data/build/settings

index ed8e2d160b9e29fdc56e627c8d59c16d8a94df08..f2c975a41726663c6ea077d2f726a561c093b2c0 100644 (file)
@@ -67,11 +67,11 @@ build_sources_program fll/level_2/fss.c fll/level_2/fss/basic.c fll/level_2/fss/
 build_sources_program fll/level_2/print.c
 build_sources_program fll/level_2/program.c fll/level_2/program/common.c fll/level_2/program/print.c fll/level_2/private-program.c
 
-build_sources_program program/fake/main/build.c program/fake/main/clean.c program/fake/main/common.c program/fake/main/fake.c program/fake/main/make.c program/fake/main/print.c program/fake/main/print/context.c program/fake/main/print/error.c program/fake/main/print/operation.c program/fake/main/print/warning.c program/fake/main/print/verbose.c program/fake/main/skeleton.c
-build_sources_program program/fake/main/build/enumeration.c program/fake/main/build/library.c program/fake/main/build/load.c program/fake/main/build/object.c program/fake/main/build/objects.c program/fake/main/build/print.c program/fake/main/build/print/compile.c program/fake/main/build/print/error.c program/fake/main/build/print/verbose.c program/fake/main/build/print/warning.c program/fake/main/build/program.c program/fake/main/build/skeleton.c program/fake/main/build/string.c
+build_sources_program program/fake/main/build.c program/fake/main/clean.c program/fake/main/common.c program/fake/main/fake.c program/fake/main/make.c program/fake/main/print/common.c program/fake/main/print/context.c program/fake/main/print/error.c program/fake/main/print/message.c program/fake/main/print/operation.c program/fake/main/print/warning.c program/fake/main/print/verbose.c program/fake/main/skeleton.c
+build_sources_program program/fake/main/build/enumeration.c program/fake/main/build/library.c program/fake/main/build/load.c program/fake/main/build/object.c program/fake/main/build/objects.c program/fake/main/build/print/compile.c program/fake/main/build/print/error.c program/fake/main/build/print/message.c program/fake/main/build/print/verbose.c program/fake/main/build/print/warning.c program/fake/main/build/program.c program/fake/main/build/skeleton.c program/fake/main/build/string.c
 build_sources_program program/fake/main/common/define.c program/fake/main/common/enumeration.c program/fake/main/common/print.c program/fake/main/common/string.c program/fake/main/common/type.c
 build_sources_program program/fake/main/fake/path_generate.c
-build_sources_program program/fake/main/make/load_fakefile.c program/fake/main/make/load_parameters.c program/fake/main/make/operate_block.c program/fake/main/make/operate.c program/fake/main/make/operate_process.c program/fake/main/make/operate_process_type.c program/fake/main/make/operate_validate.c program/fake/main/make/operate_validate_type.c program/fake/main/make/print.c program/fake/main/make/print/error.c program/fake/main/make/print/verbose.c program/fake/main/make/print/warning.c
+build_sources_program program/fake/main/make/load_fakefile.c program/fake/main/make/load_parameters.c program/fake/main/make/operate_block.c program/fake/main/make/operate.c program/fake/main/make/operate_process.c program/fake/main/make/operate_process_type.c program/fake/main/make/operate_validate.c program/fake/main/make/operate_validate_type.c program/fake/main/make/print/error.c program/fake/main/make/print/message.c program/fake/main/make/print/verbose.c program/fake/main/make/print/warning.c
 
 build_sources_program program/fake/main/main.c
 
index b52857f0e223419d179b8a3ca8fbbe5c7043d99c..41ac76d2e2276cec2bc42a2ae6fe855e4a335ca5 100644 (file)
@@ -7,8 +7,8 @@ extern "C" {
 #ifndef _di_fake_build_arguments_standard_add_
   void fake_build_arguments_standard_add(fake_data_t * const data, fake_build_data_t * const data_build, const bool is_shared, const uint8_t type, f_string_dynamics_t *arguments) {
 
-    if (!data || !data->program || !data->setting || !data_build || !arguments) return;
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (!data || !data->main || !data_build || !arguments) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
     {
       f_array_length_t build_libraries_length = fake_build_parameter_library_link_path_s.used + data->path_build_libraries_shared.used;
@@ -42,12 +42,12 @@ extern "C" {
 
         if (!values[i].used) continue;
 
-        data->setting->state.status = fll_execute_arguments_add(values[i], arguments);
-        if (F_status_is_error(data->setting->state.status)) return;
+        data->main->setting.state.status = fll_execute_arguments_add(values[i], arguments);
+        if (F_status_is_error(data->main->setting.state.status)) return;
       } // for
     }
 
-    if (data->setting->work.used) {
+    if (data->main->setting.work.used) {
       f_string_static_t buffer = f_string_static_t_initialize;
 
       {
@@ -60,8 +60,8 @@ extern "C" {
         memcpy(buffer_string, fake_build_parameter_library_include_s.string, sizeof(f_char_t) * fake_build_parameter_library_include_s.used);
         memcpy(buffer_string + fake_build_parameter_library_include_s.used, data->path_work_includes.string, sizeof(f_char_t) * data->path_work_includes.used);
 
-        data->setting->state.status = fll_execute_arguments_add(buffer, arguments);
-        if (F_status_is_error(data->setting->state.status)) return;
+        data->main->setting.state.status = fll_execute_arguments_add(buffer, arguments);
+        if (F_status_is_error(data->main->setting.state.status)) return;
       }
 
       if (data_build->setting.search_shared && (is_shared || !data_build->setting.search_exclusive)) {
@@ -74,8 +74,8 @@ extern "C" {
         memcpy(buffer_string, fake_build_parameter_library_link_path_s.string, sizeof(f_char_t) * fake_build_parameter_library_link_path_s.used);
         memcpy(buffer_string + fake_build_parameter_library_link_path_s.used, data->path_work_libraries_shared.string, sizeof(f_char_t) * data->path_work_libraries_shared.used);
 
-        data->setting->state.status = fll_execute_arguments_add(buffer, arguments);
-        if (F_status_is_error(data->setting->state.status)) return;
+        data->main->setting.state.status = fll_execute_arguments_add(buffer, arguments);
+        if (F_status_is_error(data->main->setting.state.status)) return;
       }
 
       if (data_build->setting.search_static && (!is_shared || !data_build->setting.search_exclusive)) {
@@ -88,8 +88,8 @@ extern "C" {
         memcpy(buffer_string, fake_build_parameter_library_link_path_s.string, sizeof(f_char_t) * fake_build_parameter_library_link_path_s.used);
         memcpy(buffer_string + fake_build_parameter_library_link_path_s.used, data->path_work_libraries_static.string, sizeof(f_char_t) * data->path_work_libraries_static.used);
 
-        data->setting->state.status = fll_execute_arguments_add(buffer, arguments);
-        if (F_status_is_error(data->setting->state.status)) return;
+        data->main->setting.state.status = fll_execute_arguments_add(buffer, arguments);
+        if (F_status_is_error(data->main->setting.state.status)) return;
       }
     }
 
@@ -134,7 +134,7 @@ extern "C" {
             : (is_shared)
               ? &data_build->setting.defines_program_shared
               : &data_build->setting.defines_program_static,
-        &data->setting->defines,
+        &data->main->setting.defines,
       };
 
       f_array_length_t i = 0;
@@ -145,28 +145,28 @@ extern "C" {
 
           if (!strings[s]->array[i].used) continue;
 
-          data->setting->state.status = fll_execute_arguments_add(strings[s]->array[i], arguments);
-          if (F_status_is_error(data->setting->state.status)) return;
+          data->main->setting.state.status = fll_execute_arguments_add(strings[s]->array[i], arguments);
+          if (F_status_is_error(data->main->setting.state.status)) return;
         } // for
       } // for
     }
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
   }
 #endif // _di_fake_build_arguments_standard_add_
 
 #ifndef _di_fake_build_copy_
   void fake_build_copy(fake_data_t * const data, const f_mode_t mode, const f_string_static_t label, const f_string_static_t source, const f_string_static_t destination, const f_string_statics_t files, const f_string_static_t file_stage, const f_array_length_t perserve_offset) {
 
-    if (!data || !data->program || !data->setting) return;
-    if (data->setting->state.status == F_child) return;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return;
+    if (!data || !data->main) return;
+    if (data->main->setting.state.status == F_child) return;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return;
 
-    if (!((++data->program->signal_check) % fake_signal_check_d)) {
-      if (fll_program_standard_signal_received(data->program)) {
-        fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+    if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+      if (fll_program_standard_signal_received(&data->main->program)) {
+        fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-        data->setting->state.status = F_status_set_error(F_interrupt);
+        data->main->setting.state.status = F_status_set_error(F_interrupt);
 
         return;
       }
@@ -178,14 +178,14 @@ extern "C" {
     f_string_dynamic_t destination_directory = f_string_dynamic_t_initialize;
     f_string_static_t buffer = f_string_static_t_initialize;
 
-    if (data->program->message.verbosity != f_console_verbosity_quiet_e && data->program->message.verbosity != f_console_verbosity_error_e) {
-      fll_print_format("%r%[Copying %Q.%]%r", data->program->message.to, f_string_eol_s, data->program->context.set.important, label, data->program->context.set.important, f_string_eol_s);
+    if (data->main->program.message.verbosity != f_console_verbosity_quiet_e && data->main->program.message.verbosity != f_console_verbosity_error_e) {
+      fll_print_format("%r%[Copying %Q.%]%r", data->main->program.message.to, f_string_eol_s, data->main->program.context.set.important, label, data->main->program.context.set.important, f_string_eol_s);
     }
 
-    data->setting->state.status = f_string_dynamic_resize(source.used, &path_source);
+    data->main->setting.state.status = f_string_dynamic_resize(source.used, &path_source);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_resize));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_resize));
 
       f_string_dynamic_resize(0, &path_source);
 
@@ -195,96 +195,96 @@ extern "C" {
     memcpy(path_source.string, source.string, sizeof(f_char_t) * source.used);
 
     f_directory_recurse_t recurse = f_directory_recurse_t_initialize;
-    recurse.verbose = &fake_print_verbose_copy;
+    recurse.verbose = &fake_print_verbose_recursive_copy;
     //recurse.failures = &failures; // @fixme this now needs to be handled by a callback in recurse (recurse.state.handle)., maybe make this a callback on f_directory_recurse_t?
     recurse.mode = mode;
 
     for (f_array_length_t i = 0; i < files.used; ++i) {
 
-      if (!((++data->program->signal_check) % fake_signal_check_short_d)) {
-        if (fll_program_standard_signal_received(data->program)) {
-          fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+      if (!((++data->main->program.signal_check) % fake_signal_check_short_d)) {
+        if (fll_program_standard_signal_received(&data->main->program)) {
+          fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-          data->setting->state.status = F_status_set_error(F_interrupt);
+          data->main->setting.state.status = F_status_set_error(F_interrupt);
 
           break;
         }
 
-        data->program->signal_check = 0;
+        data->main->program.signal_check = 0;
       }
 
       if (!files.array[i].used) continue;
 
       path_source.used = source.used;
 
-      data->setting->state.status = f_string_dynamic_append_nulless(files.array[i], &path_source);
+      data->main->setting.state.status = f_string_dynamic_append_nulless(files.array[i], &path_source);
 
-      if (F_status_is_error(data->setting->state.status)) {
-        fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+      if (F_status_is_error(data->main->setting.state.status)) {
+        fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
         break;
       }
 
-      data->setting->state.status = f_directory_is(path_source);
+      data->main->setting.state.status = f_directory_is(path_source);
 
-      if (data->setting->state.status == F_true) {
+      if (data->main->setting.state.status == F_true) {
         destination_directory.used = 0;
 
-        data->setting->state.status = f_string_dynamic_append_nulless(destination, &destination_directory);
+        data->main->setting.state.status = f_string_dynamic_append_nulless(destination, &destination_directory);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
           break;
         }
 
-        data->setting->state.status = f_file_name_base(path_source, &destination_directory);
+        data->main->setting.state.status = f_file_name_base(path_source, &destination_directory);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(f_file_name_base));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(f_file_name_base));
 
           break;
         }
 
         fl_directory_copy(path_source, destination_directory, &recurse);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          if (data->program->error.verbosity >= f_console_verbosity_verbose_e) {
+        if (F_status_is_error(data->main->setting.state.status)) {
+          if (data->main->program.error.verbosity >= f_console_verbosity_verbose_e) {
             /* // @fixme
             for (f_array_length_t j = 0; j < failures.used; ++j) {
 
-              fake_print_error_build_operation_file(data->setting, data->program->error, macro_fake_f(fl_directory_copy), fake_common_file_directory_copy_s, f_file_operation_to_s, path_source, destination_directory, F_true);
+              fake_print_error_build_operation_file(&data->main->program.error, macro_fake_f(fl_directory_copy), fake_common_file_directory_copy_s, f_file_operation_to_s, path_source, destination_directory, F_true);
             } // for
             */
 
-            if (F_status_set_fine(data->setting->state.status) != F_failure) {
-              fake_print_error(&data->program->error, macro_fake_f(fl_directory_copy));
+            if (F_status_set_fine(data->main->setting.state.status) != F_failure) {
+              fake_print_error(&data->main->program.error, macro_fake_f(fl_directory_copy));
             }
           }
-          else if (data->program->error.verbosity > f_console_verbosity_quiet_e) {
-            fake_print_error_build_operation_file(data->setting, data->program->error, macro_fake_f(fl_directory_copy), fake_common_file_directory_copy_s, f_file_operation_to_s, path_source, destination_directory, F_true);
+          else if (data->main->program.error.verbosity > f_console_verbosity_quiet_e) {
+            fake_print_error_build_operation_file(&data->main->program.error, macro_fake_f(fl_directory_copy), fake_common_file_directory_copy_s, f_file_operation_to_s, path_source, destination_directory, F_true);
           }
 
           break;
         }
       }
-      else if (data->setting->state.status == F_false) {
+      else if (data->main->setting.state.status == F_false) {
         destination_file.used = 0;
         destination_directory.used = 0;
 
-        data->setting->state.status = f_string_dynamic_append_nulless(destination, &destination_file);
+        data->main->setting.state.status = f_string_dynamic_append_nulless(destination, &destination_file);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
           break;
         }
 
         if (perserve_offset && perserve_offset < path_source.used) {
-          data->setting->state.status = f_string_dynamic_append_nulless(destination, &destination_directory);
+          data->main->setting.state.status = f_string_dynamic_append_nulless(destination, &destination_directory);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
             break;
           }
@@ -292,57 +292,57 @@ extern "C" {
           buffer.string = path_source.string + perserve_offset;
           buffer.used = path_source.used - perserve_offset;
 
-          data->setting->state.status = f_file_name_directory(buffer, &destination_directory);
+          data->main->setting.state.status = f_file_name_directory(buffer, &destination_directory);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_file_name_directory));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_file_name_directory));
 
             break;
           }
 
-          data->setting->state.status = fl_directory_create(destination_directory, F_file_mode_all_rwx_d);
+          data->main->setting.state.status = fl_directory_create(destination_directory, F_file_mode_all_rwx_d);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error_file(data->setting, data->program->error, macro_fake_f(fl_directory_create), destination_directory, f_file_operation_create_s, fll_error_file_type_directory_e);
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error_file(&data->main->program.error, macro_fake_f(fl_directory_create), destination_directory, f_file_operation_create_s, fll_error_file_type_directory_e);
 
             break;
           }
 
-          data->setting->state.status = f_string_append(path_source.string + perserve_offset, path_source.used - perserve_offset, &destination_file);
+          data->main->setting.state.status = f_string_append(path_source.string + perserve_offset, path_source.used - perserve_offset, &destination_file);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_string_append));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_string_append));
 
             break;
           }
         }
         else {
-          data->setting->state.status = f_file_name_base(path_source, &destination_file);
+          data->main->setting.state.status = f_file_name_base(path_source, &destination_file);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_file_name_base));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_file_name_base));
 
             break;
           }
         }
 
-        data->setting->state.status = f_file_copy(path_source, destination_file, mode, F_file_default_read_size_d, f_file_stat_flag_reference_e);
+        data->main->setting.state.status = f_file_copy(path_source, destination_file, mode, F_file_default_read_size_d, f_file_stat_flag_reference_e);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error_build_operation_file(data->setting, data->program->error, macro_fake_f(f_file_copy), f_file_operation_copy_s, f_file_operation_to_s, path_source, destination_file, F_true);
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error_build_operation_file(&data->main->program.error, macro_fake_f(f_file_copy), f_file_operation_copy_s, f_file_operation_to_s, path_source, destination_file, F_true);
 
           break;
         }
 
-        fake_build_print_verbose_copied_file(data->setting, data->program->message, path_source, destination_file);
+        fake_build_print_verbose_copied_file(&data->main->program.message, path_source, destination_file);
       }
-      else if (F_status_is_error(data->setting->state.status)) {
-        fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_directory_is), path_source, f_file_operation_create_s, fll_error_file_type_file_e);
+      else if (F_status_is_error(data->main->setting.state.status)) {
+        fake_print_error_file(&data->main->program.error, macro_fake_f(f_directory_is), path_source, f_file_operation_create_s, fll_error_file_type_file_e);
 
         break;
       }
 
-      data->setting->state.status = F_none;
+      data->main->setting.state.status = F_none;
     } // for
 
     f_directory_recurse_delete(&recurse);
@@ -358,17 +358,17 @@ extern "C" {
 #ifndef _di_fake_build_execute_process_script_
   int fake_build_execute_process_script(fake_data_t * const data, fake_build_data_t * const data_build, const f_string_static_t process_script, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting || !data_build) return 0;
-    if (data->setting->state.status == F_child) return data->program->child;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
+    if (!data || !data->main || !data_build) return 0;
+    if (data->main->setting.state.status == F_child) return data->main->program.child;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
     if (!process_script.used) return 0;
 
     f_string_dynamics_t arguments = f_string_dynamics_t_initialize;
 
-    data->setting->state.status = fll_execute_arguments_add(fake_other_operation_build_s, &arguments);
+    data->main->setting.state.status = fll_execute_arguments_add(fake_other_operation_build_s, &arguments);
 
     // Ensure console color mode is passed to the scripts so that they can also react to color mode.
-    if (F_status_is_error_not(data->setting->state.status) && data->program->context.mode != f_color_mode_none_e) {
+    if (F_status_is_error_not(data->main->setting.state.status) && data->main->program.context.mode != f_color_mode_none_e) {
       f_string_static_t argument = f_string_static_t_initialize;
       argument.used = f_console_symbol_short_inverse_s.used + f_console_standard_short_dark_s.used;
 
@@ -378,21 +378,21 @@ extern "C" {
 
       memcpy(argument_string, f_console_symbol_short_inverse_s.string, sizeof(f_char_t) * f_console_symbol_short_inverse_s.used);
 
-      if (data->program->context.mode == f_color_mode_dark_e) {
+      if (data->main->program.context.mode == f_color_mode_dark_e) {
         memcpy(argument_string + f_console_symbol_short_inverse_s.used, f_console_standard_short_dark_s.string, sizeof(f_char_t) * f_console_standard_short_dark_s.used);
       }
-      else if (data->program->context.mode == f_color_mode_light_e) {
+      else if (data->main->program.context.mode == f_color_mode_light_e) {
         memcpy(argument_string + f_console_symbol_short_inverse_s.used, f_console_standard_short_light_s.string, sizeof(f_char_t) * f_console_standard_short_light_s.used);
       }
-      else if (data->program->context.mode == f_color_mode_not_e) {
+      else if (data->main->program.context.mode == f_color_mode_not_e) {
         memcpy(argument_string + f_console_symbol_short_inverse_s.used, f_console_standard_short_no_color_s.string, sizeof(f_char_t) * f_console_standard_short_no_color_s.used);
       }
 
-      data->setting->state.status = fll_execute_arguments_add(argument, &arguments);
+      data->main->setting.state.status = fll_execute_arguments_add(argument, &arguments);
     }
 
     // Ensure verbosity level is passed to the scripts so that they can also react to requested verbosity.
-    if (F_status_is_error_not(data->setting->state.status) && data->program->error.verbosity != f_console_verbosity_normal_e) {
+    if (F_status_is_error_not(data->main->setting.state.status) && data->main->program.error.verbosity != f_console_verbosity_normal_e) {
       f_string_static_t argument = f_string_static_t_initialize;
       argument.used = f_console_symbol_short_inverse_s.used + f_console_standard_short_quiet_s.used;
 
@@ -402,24 +402,24 @@ extern "C" {
 
       memcpy(argument_string, f_console_symbol_short_inverse_s.string, sizeof(f_char_t) * f_console_symbol_short_inverse_s.used);
 
-      if (data->program->context.mode == f_console_verbosity_quiet_e) {
+      if (data->main->program.context.mode == f_console_verbosity_quiet_e) {
         memcpy(argument_string + f_console_symbol_short_inverse_s.used, f_console_standard_short_quiet_s.string, sizeof(f_char_t) * f_console_standard_short_quiet_s.used);
       }
-      else if (data->program->context.mode == f_console_verbosity_error_e) {
+      else if (data->main->program.context.mode == f_console_verbosity_error_e) {
         memcpy(argument_string + f_console_symbol_short_inverse_s.used, f_console_standard_short_error_s.string, sizeof(f_char_t) * f_console_standard_short_error_s.used);
       }
-      else if (data->program->context.mode == f_console_verbosity_verbose_e) {
+      else if (data->main->program.context.mode == f_console_verbosity_verbose_e) {
         memcpy(argument_string + f_console_symbol_short_inverse_s.used, f_console_standard_short_verbose_s.string, sizeof(f_char_t) * f_console_standard_short_verbose_s.used);
       }
-      else if (data->program->context.mode == f_console_verbosity_debug_e) {
+      else if (data->main->program.context.mode == f_console_verbosity_debug_e) {
         memcpy(argument_string + f_console_symbol_short_inverse_s.used, f_console_standard_short_debug_s.string, sizeof(f_char_t) * f_console_standard_short_debug_s.used);
       }
 
-      data->setting->state.status = fll_execute_arguments_add(argument, &arguments);
+      data->main->setting.state.status = fll_execute_arguments_add(argument, &arguments);
     }
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fll_execute_arguments_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fll_execute_arguments_add));
 
       f_string_dynamics_resize(0, &arguments);
 
@@ -429,15 +429,15 @@ extern "C" {
     {
       f_string_dynamic_t defines = f_string_dynamic_t_initialize;
 
-      if (data->setting->defines.used) {
-        for (f_array_length_t i = 0; i < data->setting->defines.used; ++i) {
+      if (data->main->setting.defines.used) {
+        for (f_array_length_t i = 0; i < data->main->setting.defines.used; ++i) {
 
-          data->setting->state.status = f_string_dynamic_mash(f_string_space_s, data->setting->defines.array[i], &defines);
-          if (F_status_is_error(data->setting->state.status)) break;
+          data->main->setting.state.status = f_string_dynamic_mash(f_string_space_s, data->main->setting.defines.array[i], &defines);
+          if (F_status_is_error(data->main->setting.state.status)) break;
         } // for
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_mash));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_mash));
 
           f_string_dynamic_resize(0, &defines);
           f_string_dynamics_resize(0, &arguments);
@@ -471,23 +471,23 @@ extern "C" {
       };
 
       const f_string_static_t values[] = {
-        data->setting->build,
-        data->setting->data,
+        data->main->setting.build,
+        data->main->setting.data,
         defines,
-        data->setting->documents,
-        data->setting->licenses,
-        data->setting->process,
-        data->setting->settings,
+        data->main->setting.documents,
+        data->main->setting.licenses,
+        data->main->setting.process,
+        data->main->setting.settings,
         data_build->setting.path_sources,
-        data->setting->work,
+        data->main->setting.work,
       };
 
-      data->setting->state.status = fll_execute_arguments_add_parameter_set(prefixs, names, values, 9, &arguments);
+      data->main->setting.state.status = fll_execute_arguments_add_parameter_set(prefixs, names, values, 9, &arguments);
 
       f_string_dynamic_resize(0, &defines);
 
-      if (F_status_is_error(data->setting->state.status)) {
-        fake_print_error(&data->program->error, macro_fake_f(fll_execute_arguments_add_parameter_set));
+      if (F_status_is_error(data->main->setting.state.status)) {
+        fake_print_error(&data->main->program.error, macro_fake_f(fll_execute_arguments_add_parameter_set));
 
         f_string_dynamics_resize(0, &arguments);
 
@@ -498,15 +498,15 @@ extern "C" {
     f_string_dynamic_t path = f_string_dynamic_t_initialize;
 
     if (process_script.string[0] != f_path_separator_s.string[0]) {
-      data->setting->state.status = f_string_dynamic_append_nulless(data->path_data_build, &path);
+      data->main->setting.state.status = f_string_dynamic_append_nulless(data->path_data_build, &path);
     }
 
-    if (F_status_is_error_not(data->setting->state.status)) {
-      data->setting->state.status = f_string_dynamic_append_nulless(process_script, &path);
+    if (F_status_is_error_not(data->main->setting.state.status)) {
+      data->main->setting.state.status = f_string_dynamic_append_nulless(process_script, &path);
     }
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
       f_string_dynamic_resize(0, &path);
       f_string_dynamics_resize(0, &arguments);
@@ -523,22 +523,22 @@ extern "C" {
 
     fl_execute_parameter_t parameter = macro_fl_execute_parameter_t_initialize(FL_execute_parameter_option_path_d, 0, &data_build->environment, &signals, 0);
 
-    data->setting->state.status = fll_execute_program(path, arguments, &parameter, 0, (void *) &return_code);
+    data->main->setting.state.status = fll_execute_program(path, arguments, &parameter, 0, (void *) &return_code);
 
     f_string_dynamics_resize(0, &arguments);
 
-    if (!((++data->program->signal_check) % fake_signal_check_d) && fll_program_standard_signal_received(data->program)) {
-      fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+    if (!((++data->main->program.signal_check) % fake_signal_check_d) && fll_program_standard_signal_received(&data->main->program)) {
+      fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-      data->setting->state.status = F_status_set_error(F_interrupt);
+      data->main->setting.state.status = F_status_set_error(F_interrupt);
     }
-    else if (data->setting->state.status != F_child) {
-      if (F_status_is_error(data->setting->state.status)) {
-        if (F_status_set_fine(data->setting->state.status) == F_failure) {
-          fake_print_error_failure_script(data->setting, data->program->error, path);
+    else if (data->main->setting.state.status != F_child) {
+      if (F_status_is_error(data->main->setting.state.status)) {
+        if (F_status_set_fine(data->main->setting.state.status) == F_failure) {
+          fake_print_error_failure_script(&data->main->program.error, path);
         }
         else {
-          fake_print_error(&data->program->error, macro_fake_f(fll_execute_program));
+          fake_print_error(&data->main->program.error, macro_fake_f(fll_execute_program));
         }
       }
       else {
@@ -555,17 +555,17 @@ extern "C" {
 #ifndef _di_fake_build_get_file_name_without_extension_
   void fake_build_get_file_name_without_extension(fake_data_t * const data, const f_string_static_t path, f_string_dynamic_t *name) {
 
-    if (!data || !data->program || !data->setting) return;
+    if (!data || !data->main) return;
 
     name->used = 0;
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
 
     if (!path.used) return;
 
-    data->setting->state.status = f_file_name_base(path, name);
+    data->main->setting.state.status = f_file_name_base(path, name);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(f_file_name_base));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(f_file_name_base));
 
       return;
     }
@@ -579,14 +579,14 @@ extern "C" {
       }
     } // for
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
   }
 #endif // _di_fake_build_get_file_name_without_extension_
 
 #ifndef _di_fake_build_objects_add_
   void fake_build_objects_add(fake_data_t * const data, fake_build_data_t * const data_build, const f_string_static_t *path, const f_string_statics_t *generic, const f_string_statics_t *specific, f_string_dynamics_t *arguments) {
 
-    if (!data || !data->program || !data->setting || !data_build || !path || !generic || !specific || !arguments) return;
+    if (!data || !data->main || !data_build || !path || !generic || !specific || !arguments) return;
 
     f_array_length_t i = 0;
     f_array_length_t j = 0;
@@ -613,43 +613,43 @@ extern "C" {
         memcpy(source_string, path->string, sizeof(f_char_t) * path->used);
         memcpy(source_string + path->used, sources[i]->array[j].string, sizeof(f_char_t) * sources[i]->array[j].used);
 
-        data->setting->state.status = fll_execute_arguments_add(source, arguments);
-        if (F_status_is_error(data->setting->state.status)) return;
+        data->main->setting.state.status = fll_execute_arguments_add(source, arguments);
+        if (F_status_is_error(data->main->setting.state.status)) return;
       } // for
     } // for
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
   }
 #endif // _di_fake_build_objects_add_
 
 #ifndef _di_fake_build_operate_
   void fake_build_operate(fake_data_t * const data, const f_string_statics_t * const build_arguments, const bool process_pipe) {
 
-    if (!data || !data->program || !data->setting) return;
+    if (!data || !data->main) return;
 
-    if (!((++data->program->signal_check) % fake_signal_check_d)) {
-      if (fll_program_standard_signal_received(data->program)) {
-        fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+    if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+      if (fll_program_standard_signal_received(&data->main->program)) {
+        fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-        data->setting->state.status = F_status_set_error(F_interrupt);
+        data->main->setting.state.status = F_status_set_error(F_interrupt);
 
         return;
       }
     }
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
 
     f_mode_t mode = f_mode_t_initialize;
 
     fake_build_data_t data_build = fake_build_data_t_initialize;
     fake_build_stage_t stage = fake_build_stage_t_initialize;
 
-    macro_f_mode_t_set_default_umask(mode, data->program->umask);
+    macro_f_mode_t_set_default_umask(mode, data->main->program.umask);
 
     fake_build_load_setting(data, build_arguments, process_pipe, &data_build.setting);
 
-    if (F_status_is_fine(data->setting->state.status)) {
-      fake_print_building(data->setting, data->program->message, build_arguments, &data_build.setting);
+    if (F_status_is_fine(data->main->setting.state.status)) {
+      fake_print_message_building(&data->main->program.message, build_arguments, &data_build.setting);
     }
 
     fake_build_load_stage(data, build_arguments && build_arguments->array[0].used ? build_arguments->array[0] : f_string_empty_s, &stage);
@@ -658,7 +658,7 @@ extern "C" {
 
     fake_build_skeleton(data, &data_build, mode.directory, stage.file_skeleton);
 
-    data->program->child = fake_build_execute_process_script(data, &data_build, data_build.setting.process_pre, stage.file_process_pre);
+    data->main->program.child = fake_build_execute_process_script(data, &data_build, data_build.setting.process_pre, stage.file_process_pre);
 
     fake_build_copy(data, mode, fake_build_documentation_files_s, data->path_data_documentation, data->path_build_documentation, data_build.setting.build_sources_documentation, stage.file_sources_documentation, 0);
 
@@ -725,21 +725,21 @@ extern "C" {
       }
 
       if (data_build.setting.build_shared) {
-        data->program->child = fake_build_object_shared(data, &data_build, mode, stage.file_object_shared);
+        data->main->program.child = fake_build_object_shared(data, &data_build, mode, stage.file_object_shared);
 
-        data->program->child = fake_build_library_shared(data, &data_build, mode, stage.file_library_shared);
+        data->main->program.child = fake_build_library_shared(data, &data_build, mode, stage.file_library_shared);
 
-        data->program->child = fake_build_program_shared(data, &data_build, mode, stage.file_program_shared);
+        data->main->program.child = fake_build_program_shared(data, &data_build, mode, stage.file_program_shared);
       }
 
       if (data_build.setting.build_static) {
-        data->program->child = fake_build_object_static(data, &data_build, mode, stage.file_object_static);
+        data->main->program.child = fake_build_object_static(data, &data_build, mode, stage.file_object_static);
 
-        data->program->child = fake_build_objects_static(data, &data_build, mode, stage.file_objects_static);
+        data->main->program.child = fake_build_objects_static(data, &data_build, mode, stage.file_objects_static);
 
-        data->program->child = fake_build_library_static(data, &data_build, mode, stage.file_library_static);
+        data->main->program.child = fake_build_library_static(data, &data_build, mode, stage.file_library_static);
 
-        data->program->child = fake_build_program_static(data, &data_build, mode, stage.file_program_static);
+        data->main->program.child = fake_build_program_static(data, &data_build, mode, stage.file_program_static);
       }
 
       if (data_build.setting.build_script) {
@@ -770,7 +770,7 @@ extern "C" {
 #ifndef _di_fake_build_path_source_length_
   void fake_build_path_source_length(fake_data_t * const data, fake_build_data_t * const data_build, f_string_static_t * const setting_path_source, f_string_static_t * const source) {
 
-    if (!data || !data->program || !data->setting || !data_build || !setting_path_source || !source) return;
+    if (!data || !data->main || !data_build || !setting_path_source || !source) return;
 
     source->used = 0;
 
@@ -797,7 +797,7 @@ extern "C" {
 #ifndef _di_fake_build_path_source_string_
   void fake_build_path_source_string(fake_data_t * const data, fake_build_data_t * const data_build, f_string_static_t * const setting_path_source, f_string_static_t * const source) {
 
-    if (!data || !data->program || !data->setting || !data_build || !setting_path_source || !source) return;
+    if (!data || !data->main || !data_build || !setting_path_source || !source) return;
 
     source->used = 0;
 
@@ -829,7 +829,7 @@ extern "C" {
 #ifndef _di_fake_build_sources_add_
   void fake_build_sources_add(fake_data_t * const data, fake_build_data_t * const data_build, const f_string_statics_t *generic, const f_string_statics_t *specific, f_string_dynamics_t *arguments) {
 
-    if (!data || !data->program || !data->setting || !data_build || !generic || !specific || !arguments) return;
+    if (!data || !data->main || !data_build || !generic || !specific || !arguments) return;
 
     f_array_length_t i = 0;
     f_array_length_t j = 0;
@@ -858,22 +858,22 @@ extern "C" {
         source.used += sources[i]->array[j].used;
         source.string[source.used] = 0;
 
-        data->setting->state.status = fll_execute_arguments_add(source, arguments);
-        if (F_status_is_error(data->setting->state.status)) return;
+        data->main->setting.state.status = fll_execute_arguments_add(source, arguments);
+        if (F_status_is_error(data->main->setting.state.status)) return;
       } // for
     } // for
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
   }
 #endif // _di_fake_build_sources_add_
 
 #ifndef _di_fake_build_sources_object_add_
   void fake_build_sources_object_add(fake_data_t * const data, fake_build_data_t * const data_build, const f_string_static_t *generic, const f_string_static_t *specific, f_string_dynamics_t *arguments) {
 
-    if (!data || !data->program || !data->setting || !data_build || !generic || !specific || !arguments) return;
+    if (!data || !data->main || !data_build || !generic || !specific || !arguments) return;
 
     if (!generic->used && !specific->used) {
-      data->setting->state.status = F_none;
+      data->main->setting.state.status = F_none;
 
       return;
     }
@@ -905,24 +905,24 @@ extern "C" {
 
     source_string[source.used] = 0;
 
-    data->setting->state.status = fll_execute_arguments_add(source, arguments);
-    if (F_status_is_error(data->setting->state.status)) return;
+    data->main->setting.state.status = fll_execute_arguments_add(source, arguments);
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
   }
 #endif // _di_fake_build_sources_object_add_
 
 #ifndef _di_fake_build_touch_
   void fake_build_touch(fake_data_t * const data, const f_string_dynamic_t file) {
 
-    if (!data || !data->program || !data->setting) return;
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (!data || !data->main) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
-    if (!((++data->program->signal_check) % fake_signal_check_d)) {
-      if (fll_program_standard_signal_received(data->program)) {
-        fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+    if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+      if (fll_program_standard_signal_received(&data->main->program)) {
+        fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-        data->setting->state.status = F_status_set_error(F_interrupt);
+        data->main->setting.state.status = F_status_set_error(F_interrupt);
 
         return;
       }
@@ -930,15 +930,15 @@ extern "C" {
 
     f_mode_t mode = f_mode_t_initialize;
 
-    macro_f_mode_t_set_default_umask(mode, data->program->umask);
+    macro_f_mode_t_set_default_umask(mode, data->main->program.umask);
 
-    data->setting->state.status = f_file_touch(file, mode.regular, F_false);
+    data->main->setting.state.status = f_file_touch(file, mode.regular, F_false);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_touch), file, f_file_operation_touch_s, fll_error_file_type_file_e);
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_touch), file, f_file_operation_touch_s, fll_error_file_type_file_e);
     }
     else {
-      data->setting->state.status = F_none;
+      data->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_build_touch_
index 54b5f1e840debc49bf4399a70946609650281745..a0e4625cda87ff03d2b885acaf029e41fb4e91be 100644 (file)
@@ -22,7 +22,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: fll_execute_arguments_add()
@@ -48,7 +48,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
@@ -105,7 +105,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_string_dynamic_append_nulless()
@@ -145,7 +145,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_file_name_base()
@@ -166,7 +166,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: fll_execute_arguments_add()
@@ -193,7 +193,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
@@ -260,7 +260,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This does not alter data.setting.state.status.
+ *   This does not alter data.main->setting.state.status.
  * @param data_build
  *   The build data.
  * @param setting_path_source
@@ -281,7 +281,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This does not alter data.setting.state.status.
+ *   This does not alter data.main->setting.state.status.
  * @param data_build
  *   The build data.
  * @param setting_path_source
@@ -302,7 +302,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: fll_execute_arguments_add()
@@ -327,7 +327,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: fll_execute_arguments_add()
@@ -352,7 +352,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
index d938a39f9b357b88e77f1f4e519c2774e2830994..23210f72bb304d79b6db032aa0f5ab6c5e95caae 100644 (file)
@@ -7,9 +7,9 @@ extern "C" {
 #ifndef _di_fake_build_library_script_
   int fake_build_library_script(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting) return 0;
-    if (data->setting->state.status == F_child) return data->program->child;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
+    if (!data || !data->main) return 0;
+    if (data->main->setting.state.status == F_child) return data->main->program.child;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
 
     fake_build_touch(data, file_stage);
 
@@ -20,19 +20,19 @@ extern "C" {
 #ifndef _di_fake_build_library_shared_
   int fake_build_library_shared(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting || !data_build) return 0;
-    if (data->setting->state.status == F_child) return data->program->child;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
+    if (!data || !data->main || !data_build) return 0;
+    if (data->main->setting.state.status == F_child) return data->main->program.child;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
     if (!data_build->setting.build_sources_library.used && !data_build->setting.build_sources_library_shared.used) return 0;
 
-    fake_build_print_compile_library_shared(data->setting, data->program->message);
+    fake_build_print_compile_library_shared(&data->main->program.message);
 
     f_string_dynamics_t arguments = f_string_dynamics_t_initialize;
 
     fake_build_objects_add(data, data_build, &data->path_build_objects_shared, &data_build->setting.build_objects_library, &data_build->setting.build_objects_library_shared, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fake_build_objects_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fake_build_objects_add));
 
       f_string_dynamics_resize(0, &arguments);
 
@@ -41,8 +41,8 @@ extern "C" {
 
     fake_build_sources_add(data, data_build, &data_build->setting.build_sources_library, &data_build->setting.build_sources_library_shared, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fake_build_sources_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fake_build_sources_add));
 
       f_string_dynamics_resize(0, &arguments);
 
@@ -290,14 +290,14 @@ extern "C" {
 
         if (!values[i].used) continue;
 
-        data->setting->state.status = fll_execute_arguments_add(values[i], &arguments);
-        if (F_status_is_error(data->setting->state.status)) break;
+        data->main->setting.state.status = fll_execute_arguments_add(values[i], &arguments);
+        if (F_status_is_error(data->main->setting.state.status)) break;
       } // for
 
       fake_build_arguments_standard_add(data, data_build, F_true, fake_build_type_library_e, &arguments);
 
-      if (F_status_is_error(data->setting->state.status)) {
-        fake_print_error(&data->program->error, macro_fake_f(fll_execute_arguments_add));
+      if (F_status_is_error(data->main->setting.state.status)) {
+        fake_print_error(&data->main->program.error, macro_fake_f(fll_execute_arguments_add));
 
         f_string_dynamics_resize(0, &arguments);
 
@@ -310,8 +310,8 @@ extern "C" {
 
       f_string_dynamics_resize(0, &arguments);
 
-      if (F_status_is_error(data->setting->state.status)) return 0;
-      if (data->setting->state.status == F_child) return result;
+      if (F_status_is_error(data->main->setting.state.status)) return 0;
+      if (data->main->setting.state.status == F_child) return result;
     }
 
     if (parameter_file_name_major.used) {
@@ -325,19 +325,19 @@ extern "C" {
       memcpy(parameter_file_path_string, data->path_build_libraries_shared.string, sizeof(f_char_t) * data->path_build_libraries_shared.used);
       memcpy(parameter_file_path_string + data->path_build_libraries_shared.used, parameter_file_name.string, sizeof(f_char_t) * parameter_file_name.used);
 
-      data->setting->state.status = f_file_link(parameter_file_name_major, parameter_file_path);
+      data->main->setting.state.status = f_file_link(parameter_file_name_major, parameter_file_path);
 
-      if (F_status_is_error_not(data->setting->state.status)) {
-        fake_build_print_linked_file(data->setting, data->program->message, parameter_file_path, parameter_file_name_major);
+      if (F_status_is_error_not(data->main->setting.state.status)) {
+        fake_build_print_verbose_linked_file(&data->main->program.message, parameter_file_path, parameter_file_name_major);
       }
       else {
-        if (F_status_set_fine(data->setting->state.status) == F_file_found) {
-          fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_link), parameter_file_path, f_file_operation_link_s, fll_error_file_type_file_e);
+        if (F_status_set_fine(data->main->setting.state.status) == F_file_found) {
+          fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_link), parameter_file_path, f_file_operation_link_s, fll_error_file_type_file_e);
 
           return 0;
         }
 
-        fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_link), parameter_file_name_major, f_file_operation_link_s, fll_error_file_type_file_e);
+        fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_link), parameter_file_name_major, f_file_operation_link_s, fll_error_file_type_file_e);
 
         return 0;
       }
@@ -356,13 +356,13 @@ extern "C" {
         memcpy(parameter_file_path_string, data->path_build_libraries_shared.string, sizeof(f_char_t) * data->path_build_libraries_shared.used);
         memcpy(parameter_file_path_string + data->path_build_libraries_shared.used, parameter_file_name_major.string, sizeof(f_char_t) * parameter_file_name_major.used);
 
-        data->setting->state.status = f_file_link(parameter_file_name_minor, parameter_file_path);
+        data->main->setting.state.status = f_file_link(parameter_file_name_minor, parameter_file_path);
 
-        if (F_status_is_error_not(data->setting->state.status)) {
-          fake_build_print_linked_file(data->setting, data->program->message, parameter_file_path, parameter_file_name_minor);
+        if (F_status_is_error_not(data->main->setting.state.status)) {
+          fake_build_print_verbose_linked_file(&data->main->program.message, parameter_file_path, parameter_file_name_minor);
         }
         else {
-          fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_link), F_status_set_fine(data->setting->state.status) == F_file_found ? parameter_file_path : parameter_file_name_minor, f_file_operation_link_s, fll_error_file_type_file_e);
+          fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_link), F_status_set_fine(data->main->setting.state.status) == F_file_found ? parameter_file_path : parameter_file_name_minor, f_file_operation_link_s, fll_error_file_type_file_e);
 
           return 0;
         }
@@ -379,19 +379,19 @@ extern "C" {
           memcpy(parameter_file_path_string, data->path_build_libraries_shared.string, sizeof(f_char_t) * data->path_build_libraries_shared.used);
           memcpy(parameter_file_path_string + data->path_build_libraries_shared.used, parameter_file_name_minor.string, sizeof(f_char_t) * parameter_file_name_minor.used);
 
-          data->setting->state.status = f_file_link(parameter_file_name_micro, parameter_file_path);
+          data->main->setting.state.status = f_file_link(parameter_file_name_micro, parameter_file_path);
 
-          if (F_status_is_error_not(data->setting->state.status)) {
-            fake_build_print_linked_file(data->setting, data->program->message, parameter_file_path, parameter_file_name_micro);
+          if (F_status_is_error_not(data->main->setting.state.status)) {
+            fake_build_print_verbose_linked_file(&data->main->program.message, parameter_file_path, parameter_file_name_micro);
           }
           else {
-            if (F_status_set_fine(data->setting->state.status) == F_file_found) {
-              fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_link), parameter_file_path, f_file_operation_link_s, fll_error_file_type_file_e);
+            if (F_status_set_fine(data->main->setting.state.status) == F_file_found) {
+              fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_link), parameter_file_path, f_file_operation_link_s, fll_error_file_type_file_e);
 
               return 0;
             }
 
-            fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_link), parameter_file_name_micro, f_file_operation_link_s, fll_error_file_type_file_e);
+            fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_link), parameter_file_name_micro, f_file_operation_link_s, fll_error_file_type_file_e);
 
             return 0;
           }
@@ -407,19 +407,19 @@ extern "C" {
           memcpy(parameter_file_path_string, data->path_build_libraries_shared.string, sizeof(f_char_t) * data->path_build_libraries_shared.used);
           memcpy(parameter_file_path_string + data->path_build_libraries_shared.used, parameter_file_name_micro.string, sizeof(f_char_t) * parameter_file_name_micro.used);
 
-          data->setting->state.status = f_file_link(parameter_file_name_nano, parameter_file_path);
+          data->main->setting.state.status = f_file_link(parameter_file_name_nano, parameter_file_path);
 
-          if (F_status_is_error_not(data->setting->state.status)) {
-            fake_build_print_linked_file(data->setting, data->program->message, parameter_file_path, parameter_file_name_nano);
+          if (F_status_is_error_not(data->main->setting.state.status)) {
+            fake_build_print_verbose_linked_file(&data->main->program.message, parameter_file_path, parameter_file_name_nano);
           }
           else {
-            if (F_status_set_fine(data->setting->state.status) == F_file_found) {
-              fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_link), parameter_file_path, f_file_operation_link_s, fll_error_file_type_file_e);
+            if (F_status_set_fine(data->main->setting.state.status) == F_file_found) {
+              fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_link), parameter_file_path, f_file_operation_link_s, fll_error_file_type_file_e);
 
               return 0;
             }
 
-            fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_link), parameter_file_name_nano, f_file_operation_link_s, fll_error_file_type_file_e);
+            fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_link), parameter_file_name_nano, f_file_operation_link_s, fll_error_file_type_file_e);
 
             return 0;
           }
@@ -436,12 +436,12 @@ extern "C" {
 #ifndef _di_fake_build_library_static_
   int fake_build_library_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting || !data_build) return 0;
-    if (data->setting->state.status == F_child) return data->program->child;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
+    if (!data || !data->main || !data_build) return 0;
+    if (data->main->setting.state.status == F_child) return data->main->program.child;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
     if (!data_build->setting.build_sources_library.used && !data_build->setting.build_sources_library_static.used) return 0;
 
-    fake_build_print_compile_library_static(data->setting, data->program->message);
+    fake_build_print_compile_library_static(&data->main->program.message);
 
     f_string_dynamic_t file_name = f_string_dynamic_t_initialize;
     f_string_dynamic_t source_path = f_string_dynamic_t_initialize;
@@ -453,11 +453,11 @@ extern "C" {
 
       if (!data_build->setting.build_indexer_arguments.array[i].used) continue;
 
-      data->setting->state.status = fll_execute_arguments_add(data_build->setting.build_indexer_arguments.array[i], &arguments);
-      if (F_status_is_error(data->setting->state.status)) break;
+      data->main->setting.state.status = fll_execute_arguments_add(data_build->setting.build_indexer_arguments.array[i], &arguments);
+      if (F_status_is_error(data->main->setting.state.status)) break;
     } // for
 
-    if (F_status_is_error_not(data->setting->state.status)) {
+    if (F_status_is_error_not(data->main->setting.state.status)) {
       f_string_static_t destination = f_string_static_t_initialize;
       destination.used = data->path_build_libraries_static.used + fake_build_parameter_library_name_prefix_s.used;
       destination.used += data_build->setting.build_name.used + fake_build_parameter_library_name_suffix_static_s.used;
@@ -479,10 +479,10 @@ extern "C" {
       memcpy(destination_string + destination.used, fake_build_parameter_library_name_suffix_static_s.string, sizeof(f_char_t) * fake_build_parameter_library_name_suffix_static_s.used);
       destination.used += fake_build_parameter_library_name_suffix_static_s.used;
 
-      data->setting->state.status = fll_execute_arguments_add(destination, &arguments);
+      data->main->setting.state.status = fll_execute_arguments_add(destination, &arguments);
     }
 
-    if (F_status_is_error_not(data->setting->state.status)) {
+    if (F_status_is_error_not(data->main->setting.state.status)) {
       f_string_static_t source = f_string_static_t_initialize;
       f_array_length_t j = 0;
 
@@ -499,33 +499,33 @@ extern "C" {
 
           fake_build_get_file_name_without_extension(data, sources[i]->array[j], &file_name);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(fake_build_get_file_name_without_extension));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(fake_build_get_file_name_without_extension));
 
             break;
           }
 
-          data->setting->state.status = f_file_name_directory(sources[i]->array[j], &source_path);
+          data->main->setting.state.status = f_file_name_directory(sources[i]->array[j], &source_path);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_file_name_directory));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_file_name_directory));
 
             break;
           }
 
           if (source_path.used) {
-            data->setting->state.status = f_string_dynamic_prepend(data->path_build_objects, &source_path);
+            data->main->setting.state.status = f_string_dynamic_prepend(data->path_build_objects, &source_path);
 
-            if (F_status_is_error(data->setting->state.status)) {
-              fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_prepend));
+            if (F_status_is_error(data->main->setting.state.status)) {
+              fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_prepend));
 
               break;
             }
 
-            data->setting->state.status = f_string_dynamic_append_assure(f_path_separator_s, &source_path);
+            data->main->setting.state.status = f_string_dynamic_append_assure(f_path_separator_s, &source_path);
 
-            if (F_status_is_error(data->setting->state.status)) {
-              fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_assure));
+            if (F_status_is_error(data->main->setting.state.status)) {
+              fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_assure));
 
               break;
             }
@@ -551,10 +551,10 @@ extern "C" {
             memcpy(source_string + data->path_build_objects.used + file_name.used, fake_build_parameter_object_name_suffix_s.string, sizeof(f_char_t) * fake_build_parameter_object_name_suffix_s.used);
           }
 
-          data->setting->state.status = fll_execute_arguments_add(source, &arguments);
+          data->main->setting.state.status = fll_execute_arguments_add(source, &arguments);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(fll_execute_arguments_add));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(fll_execute_arguments_add));
 
             break;
           }
@@ -562,9 +562,9 @@ extern "C" {
       } // for
     }
 
-    int result = data->program->child;
+    int result = data->main->program.child;
 
-    if (F_status_is_error_not(data->setting->state.status)) {
+    if (F_status_is_error_not(data->main->setting.state.status)) {
       result = fake_execute(data, data_build->environment, data_build->setting.build_indexer, arguments);
     }
 
@@ -572,7 +572,7 @@ extern "C" {
     f_string_dynamic_resize(0, &source_path);
     f_string_dynamics_resize(0, &arguments);
 
-    if (F_status_is_error_not(data->setting->state.status) && data->setting->state.status != F_child) {
+    if (F_status_is_error_not(data->main->setting.state.status) && data->main->setting.state.status != F_child) {
       fake_build_touch(data, file_stage);
     }
 
index b8e01d688640eba0fb30d126b444bf0933d52b2d..564f6585fff4d21b0b305eaa604d630c072a3a9e 100644 (file)
@@ -27,7 +27,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_file_link()
@@ -70,7 +70,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_file_link()
@@ -109,7 +109,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_file_name_directory()
index ec55401f754a6d0724b397ef73e13ee0af5bd4d1..809c218c30b716f3c84fc734be2872a0ccb83cb3 100644 (file)
@@ -7,8 +7,8 @@ extern "C" {
 #ifndef _di_fake_build_load_environment_
   void fake_build_load_environment(fake_data_t * const data, fake_build_data_t * const data_build, f_string_maps_t * const environment) {
 
-    if (!data || !data->program || !data->setting || !data_build || !environment) return;
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (!data || !data->main || !data_build || !environment) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
     // Reset the environment.
     for (f_array_length_t i = 0; i < environment->used; ++i) {
@@ -28,10 +28,10 @@ extern "C" {
 
       for (uint8_t i = 0; i < 2; ++i) {
 
-        data->setting->state.status = fl_environment_load_name(variables[i], environment);
+        data->main->setting.state.status = fl_environment_load_name(variables[i], environment);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(fl_environment_load_name));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(fl_environment_load_name));
 
           return;
         }
@@ -40,31 +40,21 @@ extern "C" {
 
     if (environment->used + data_build->setting.environment.used > environment->size) {
       if (environment->used + data_build->setting.environment.used > f_environment_max_length_d) {
-        if (data->program->error.verbosity > f_console_verbosity_quiet_e) {
-          f_file_stream_lock(data->program->error.to);
+        fake_build_print_error_setting_value_too_long(&data->main->program.error, fake_build_setting_name_environment_s, data->file_data_build_settings);
 
-          fl_print_format("%r%[%QThe values for the setting '%]", data->program->error.to, f_string_eol_s, data->program->error.context, data->program->error.prefix, data->program->error.context);
-          fl_print_format("%[%r%]", data->program->error.to, data->program->error.notable, fake_build_setting_name_environment_s, data->program->error.notable);
-          fl_print_format("%[' of setting file '%]", data->program->error.to, data->program->error.context, data->program->error.context);
-          fl_print_format("%[%r%]", data->program->error.to, data->program->error.notable, fake_build_setting_name_environment_s, data->program->error.notable);
-          fl_print_format("%[' is too large.%]%r", data->program->error.to, data->program->error.context, data->program->error.context, f_string_eol_s);
-
-          f_file_stream_unlock(data->program->error.to);
-        }
-
-        data->setting->state.status = F_status_set_error(F_array_too_large);
+        data->main->setting.state.status = F_status_set_error(F_array_too_large);
 
         return;
       }
     }
 
-    data->setting->state.status = fl_environment_load_names(data_build->setting.environment, environment);
+    data->main->setting.state.status = fl_environment_load_names(data_build->setting.environment, environment);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fl_environment_load_names));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fl_environment_load_names));
     }
     else {
-      data->setting->state.status = F_none;
+      data->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_build_load_environment_
@@ -72,14 +62,14 @@ extern "C" {
 #ifndef _di_fake_build_load_setting_
   void fake_build_load_setting(fake_data_t * const data, const f_string_statics_t * const build_arguments, const bool process_pipe, fake_build_setting_t * const setting) {
 
-    if (!data || !data->program || !data->setting || !setting) return;
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (!data || !data->main || !setting) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
-    if (!((++data->program->signal_check) % fake_signal_check_d)) {
-      if (fll_program_standard_signal_received(data->program)) {
-        fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+    if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+      if (fll_program_standard_signal_received(&data->main->program)) {
+        fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-        data->setting->state.status = F_status_set_error(F_interrupt);
+        data->main->setting.state.status = F_status_set_error(F_interrupt);
 
         return;
       }
@@ -102,7 +92,7 @@ extern "C" {
     if (build_arguments && build_arguments->used) {
       path_file.used = data->path_data_build.used + build_arguments->array[0].used;
     }
-    else if (!process_pipe || (data->setting->flag & fake_main_flag_operation_e)) {
+    else if (!process_pipe || (data->main->setting.flag & fake_main_flag_operation_e)) {
       path_file.used = data->file_data_build_settings.used;
     }
     else {
@@ -117,7 +107,7 @@ extern "C" {
       memcpy(path_file_string, data->path_data_build.string, sizeof(f_char_t) * data->path_data_build.used);
       memcpy(path_file_string + data->path_data_build.used, build_arguments->array[0].string, sizeof(f_char_t) * build_arguments->array[0].used);
     }
-    else if (!process_pipe || (data->setting->flag & fake_main_flag_operation_e)) {
+    else if (!process_pipe || (data->main->setting.flag & fake_main_flag_operation_e)) {
       memcpy(path_file_string, data->file_data_build_settings.string, sizeof(f_char_t) * data->file_data_build_settings.used);
     }
     else {
@@ -132,37 +122,37 @@ extern "C" {
       if (process_pipe) {
         fake_pipe_buffer(data, &buffer);
 
-        if (F_status_is_error(data->setting->state.status)) {
+        if (F_status_is_error(data->main->setting.state.status)) {
           buffer.used = 0;
         }
         else {
-          data->setting->state.status = f_string_dynamic_append_assure(f_string_eol_s, &buffer);
+          data->main->setting.state.status = f_string_dynamic_append_assure(f_string_eol_s, &buffer);
         }
       }
 
-      if (F_status_is_error_not(data->setting->state.status)) {
-        if (build_arguments && build_arguments->used || !process_pipe || (data->setting->flag & fake_main_flag_operation_e)) {
+      if (F_status_is_error_not(data->main->setting.state.status)) {
+        if (build_arguments && build_arguments->used || !process_pipe || (data->main->setting.flag & fake_main_flag_operation_e)) {
           fake_file_buffer(data, path_file, process_pipe ? F_false : F_true, &buffer);
         }
       }
 
-      if (F_status_is_error_not(data->setting->state.status)) {
+      if (F_status_is_error_not(data->main->setting.state.status)) {
         f_string_range_t range = macro_f_string_range_t_initialize2(buffer.used);
         f_fss_delimits_t delimits = f_fss_delimits_t_initialize;
 
-        // @todo make sure data->setting->state.custom = (void *) data->program;
-        //f_state_t state = macro_f_state_t_initialize_1(fake_allocation_large_d, fake_allocation_small_d, F_none, 0, 0, &fll_program_standard_signal_handle, 0, (void *) data->program, 0);
+        // @todo make sure data->main->setting.state.custom = (void *) data->main->program;
+        //f_state_t state = macro_f_state_t_initialize_1(fake_allocation_large_d, fake_allocation_small_d, F_none, 0, 0, &fll_program_standard_signal_handle, 0, (void *) data->main->program, 0);
 
-        fll_fss_extended_read(buffer, &range, &objects, &contents, 0, 0, &delimits, 0, &data->setting->state);
+        fll_fss_extended_read(buffer, &range, &objects, &contents, 0, 0, &delimits, 0, &data->main->setting.state);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error_fss(data->setting, data->program->error, macro_fake_f(fll_fss_extended_read), data->file_data_build_settings, range, F_true);
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error_fss(&data->main->program.error, macro_fake_f(fll_fss_extended_read), data->file_data_build_settings, range, F_true);
         }
         else {
-          f_fss_apply_delimit(delimits, &buffer, &data->setting->state);
+          f_fss_apply_delimit(delimits, &buffer, &data->main->setting.state);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_fss_apply_delimit));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_fss_apply_delimit));
           }
           else {
             fake_build_load_setting_process(data, F_true, path_file, modes_custom.used ? &modes_custom : 0, buffer, objects, contents, setting);
@@ -179,7 +169,7 @@ extern "C" {
     }
 
     // Error when required settings are not specified.
-    if (F_status_is_error_not(data->setting->state.status)) {
+    if (F_status_is_error_not(data->main->setting.state.status)) {
       bool failed = F_false;
 
       f_string_static_t * const settings[] = {
@@ -193,19 +183,19 @@ extern "C" {
       for (uint8_t i = 0; i < 1; ++i) {
 
         if (!settings[i]->used) {
-          fake_build_print_error_missing_required_setting(data->setting, data->program->warning, names[i], path_file);
+          fake_build_print_error_missing_required_setting(&data->main->program.warning, names[i], path_file);
 
           failed = F_true;
         }
       } // for
 
       if (failed) {
-        data->setting->state.status = F_status_set_error(F_failure);
+        data->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
-      data->setting->state.status = F_none;
+      data->main->setting.state.status = F_none;
     }
 
     fake_build_load_setting_override(data, setting);
@@ -215,14 +205,14 @@ extern "C" {
 #ifndef _di_fake_build_load_setting_process_
   void fake_build_load_setting_process(fake_data_t * const data, const bool checks, const f_string_static_t path_file, const f_string_statics_t * const modes_custom, const f_string_static_t buffer, const f_fss_objects_t objects, const f_fss_contents_t contents, fake_build_setting_t * const setting) {
 
-    if (!data || !data->program || !data->setting || !setting) return;
-    if (F_status_is_error(data->setting->state.status) && buffer.used) return;
+    if (!data || !data->main || !setting) return;
+    if (F_status_is_error(data->main->setting.state.status) && buffer.used) return;
 
-    if (!((++data->program->signal_check) % fake_signal_check_d)) {
-      if (fll_program_standard_signal_received(data->program)) {
-        fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+    if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+      if (fll_program_standard_signal_received(&data->main->program)) {
+        fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-        data->setting->state.status = F_status_set_error(F_interrupt);
+        data->main->setting.state.status = F_status_set_error(F_interrupt);
 
         return;
       }
@@ -549,16 +539,16 @@ extern "C" {
 
     f_string_t function = macro_fake_f(fll_fss_snatch_apart);
 
-    data->setting->state.status = fll_fss_snatch_apart(buffer, objects, contents, settings_name, fake_build_setting_total_d, settings_value, settings_matches, 0);
+    data->main->setting.state.status = fll_fss_snatch_apart(buffer, objects, contents, settings_name, fake_build_setting_total_d, settings_value, settings_matches, 0);
 
-    if (data->setting->state.status == F_none) {
+    if (data->main->setting.state.status == F_none) {
       const int total_build_libraries = setting->build_libraries.used;
 
       // Custom modes are always used if provided, otherwise if any mode is specified, the entire defaults is replaced.
       const f_string_statics_t * const modes = modes_custom && modes_custom->used
         ? modes_custom
-        : data->setting->modes.used
-          ? &data->setting->modes
+        : data->main->setting.modes.used
+          ? &data->main->setting.modes
           : &setting->modes_default;
 
       f_string_dynamic_t settings_mode_names[fake_build_setting_total_d];
@@ -585,10 +575,10 @@ extern "C" {
         } // for
 
         if (found == F_false) {
-          fake_build_print_error_mode_invalid(data->setting, data->program->warning, modes->array[i], path_file);
+          fake_build_print_error_mode_invalid(&data->main->program.warning, modes->array[i], path_file);
 
           error_printed = F_true;
-          data->setting->state.status = F_status_set_error(F_parameter);
+          data->main->setting.state.status = F_status_set_error(F_parameter);
 
           break;
         }
@@ -597,40 +587,40 @@ extern "C" {
 
           settings_mode_names[j].used = 0;
 
-          data->setting->state.status = f_string_dynamic_increase_by(settings_value[j]->used + f_string_ascii_minus_s.used + modes->array[i].used, &settings_mode_names[j]);
+          data->main->setting.state.status = f_string_dynamic_increase_by(settings_value[j]->used + f_string_ascii_minus_s.used + modes->array[i].used, &settings_mode_names[j]);
 
-          if (F_status_is_error(data->setting->state.status)) {
+          if (F_status_is_error(data->main->setting.state.status)) {
             function = macro_fake_f(f_string_dynamic_increase_by);
 
             break;
           }
 
-          data->setting->state.status = f_string_dynamic_append_nulless(settings_name[j], &settings_mode_names[j]);
+          data->main->setting.state.status = f_string_dynamic_append_nulless(settings_name[j], &settings_mode_names[j]);
 
-          if (F_status_is_error_not(data->setting->state.status)) {
-            data->setting->state.status = f_string_dynamic_append_nulless(f_string_ascii_minus_s, &settings_mode_names[j]);
+          if (F_status_is_error_not(data->main->setting.state.status)) {
+            data->main->setting.state.status = f_string_dynamic_append_nulless(f_string_ascii_minus_s, &settings_mode_names[j]);
           }
 
-          if (F_status_is_error_not(data->setting->state.status)) {
-            data->setting->state.status = f_string_dynamic_append_nulless(modes->array[i], &settings_mode_names[j]);
+          if (F_status_is_error_not(data->main->setting.state.status)) {
+            data->main->setting.state.status = f_string_dynamic_append_nulless(modes->array[i], &settings_mode_names[j]);
           }
 
-          if (F_status_is_error(data->setting->state.status)) {
+          if (F_status_is_error(data->main->setting.state.status)) {
             function = macro_fake_f(f_string_dynamic_append);
 
             break;
           }
         } // for
 
-        if (data->setting->state.status == F_none) {
-          data->setting->state.status = fll_fss_snatch_apart(buffer, objects, contents, settings_mode_names, fake_build_setting_total_d, settings_value, 0, 0);
+        if (data->main->setting.state.status == F_none) {
+          data->main->setting.state.status = fll_fss_snatch_apart(buffer, objects, contents, settings_mode_names, fake_build_setting_total_d, settings_value, 0, 0);
 
-          if (F_status_is_error(data->setting->state.status)) {
+          if (F_status_is_error(data->main->setting.state.status)) {
             function = macro_fake_f(fll_fss_snatch_apart);
           }
         }
 
-        if (F_status_is_error(data->setting->state.status)) break;
+        if (F_status_is_error(data->main->setting.state.status)) break;
       } // for
 
       for (j = 0; j < fake_build_setting_total_d; ++j) {
@@ -667,12 +657,12 @@ extern "C" {
       }
     }
 
-    if (F_status_is_error(data->setting->state.status)) {
-      if (data->setting->state.status == F_status_set_error(F_string_too_large)) {
-        fake_build_print_error_setting_too_long(data->setting, data->program->warning, path_file);
+    if (F_status_is_error(data->main->setting.state.status)) {
+      if (data->main->setting.state.status == F_status_set_error(F_string_too_large)) {
+        fake_build_print_error_setting_too_long(&data->main->program.warning, path_file);
       }
       else if (!error_printed) {
-        fake_print_error(&data->program->error, function);
+        fake_print_error(&data->main->program.error, function);
       }
     }
     else {
@@ -904,7 +894,7 @@ extern "C" {
         fake_path_part_script_s,                     // path_program_script
         fake_path_part_shared_s,                     // path_program_shared
         fake_path_part_static_s,                     // path_program_static
-        data->setting->sources,                      // path_sources
+        data->main->setting.sources,                      // path_sources
         f_string_empty_s,                            // path_sources_object
         f_string_empty_s,                            // preserve_path_headers
         f_string_empty_s,                            // process_post
@@ -1109,10 +1099,10 @@ extern "C" {
         if (!settings_single_matches[i] && settings_single_destination[i]) {
           settings_single_destination[i]->used = 0;
 
-          data->setting->state.status = f_string_dynamic_append(settings_single_string_default[i], settings_single_destination[i]);
+          data->main->setting.state.status = f_string_dynamic_append(settings_single_string_default[i], settings_single_destination[i]);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append));
 
             break;
           }
@@ -1130,7 +1120,7 @@ extern "C" {
           else {
             *settings_single_bool[i] = F_true;
 
-            fake_build_print_warning_setting_boolean_may_only_be(data->setting, data->program->warning, settings_single_name[i], path_file, settings_single_version_default_name[i]);
+            fake_build_print_warning_setting_boolean_may_only_be(&data->main->program.warning, settings_single_name[i], path_file, settings_single_version_default_name[i]);
           }
         }
         else if (settings_single_type[i] == 4) {
@@ -1146,7 +1136,7 @@ extern "C" {
           else {
             *settings_single_language[i] = fake_build_language_c_e;
 
-            fake_build_print_warning_setting_language_may_only_be(data->setting, data->program->warning, settings_single_name[i], path_file, fake_build_language_c_s);
+            fake_build_print_warning_setting_language_may_only_be(&data->main->program.warning, settings_single_name[i], path_file, fake_build_language_c_s);
           }
         }
         else if (settings_single_type[i] == 5) {
@@ -1165,7 +1155,7 @@ extern "C" {
           else {
             *settings_single_version[i] = settings_single_version_default[i];
 
-            fake_build_print_warning_setting_version_may_only_be(data->setting, data->program->warning, settings_single_name[i], path_file, settings_single_version_default_name[i]);
+            fake_build_print_warning_setting_version_may_only_be(&data->main->program.warning, settings_single_name[i], path_file, settings_single_version_default_name[i]);
           }
         }
         else if (settings_single_destination[i]) {
@@ -1174,27 +1164,27 @@ extern "C" {
           settings_single_destination[i]->used = 0;
 
           if (settings_single_type[i] == 2) {
-            data->setting->state.status = f_path_directory_cleanup(settings_single_source[i]->array[settings_single_source[i]->used - 1], settings_single_destination[i]);
+            data->main->setting.state.status = f_path_directory_cleanup(settings_single_source[i]->array[settings_single_source[i]->used - 1], settings_single_destination[i]);
 
-            if (F_status_is_error(data->setting->state.status)) {
-              fake_print_error(&data->program->error, macro_fake_f(f_path_directory_cleanup));
+            if (F_status_is_error(data->main->setting.state.status)) {
+              fake_print_error(&data->main->program.error, macro_fake_f(f_path_directory_cleanup));
 
               break;
             }
           }
           else {
-            data->setting->state.status = f_string_dynamic_increase_by(settings_single_source[i]->array[settings_single_source[i]->used - 1].used + 1, settings_single_destination[i]);
+            data->main->setting.state.status = f_string_dynamic_increase_by(settings_single_source[i]->array[settings_single_source[i]->used - 1].used + 1, settings_single_destination[i]);
 
-            if (F_status_is_error(data->setting->state.status)) {
-              fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_increase_by));
+            if (F_status_is_error(data->main->setting.state.status)) {
+              fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_increase_by));
 
               break;
             }
 
-            data->setting->state.status = f_string_dynamic_append_nulless(settings_single_source[i]->array[settings_single_source[i]->used - 1], settings_single_destination[i]);
+            data->main->setting.state.status = f_string_dynamic_append_nulless(settings_single_source[i]->array[settings_single_source[i]->used - 1], settings_single_destination[i]);
 
-            if (F_status_is_error(data->setting->state.status)) {
-              fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+            if (F_status_is_error(data->main->setting.state.status)) {
+              fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
               break;
             }
@@ -1202,17 +1192,17 @@ extern "C" {
         }
       } // for
 
-      if (F_status_is_error_not(data->setting->state.status)) {
+      if (F_status_is_error_not(data->main->setting.state.status)) {
         if (checks && !setting->version_file) {
           setting->version_file = fake_build_version_micro_e;
 
-          fake_build_print_warning_setting_required_default_to(data->setting, data->program->warning, fake_build_setting_name_version_file_s, path_file, fake_build_version_micro_s);
+          fake_build_print_warning_setting_required_default_to(&data->main->program.warning, fake_build_setting_name_version_file_s, path_file, fake_build_version_micro_s);
         }
 
         if (checks && !setting->version_target) {
           setting->version_target = fake_build_version_major_e;
 
-          fake_build_print_warning_setting_required_default_to(data->setting, data->program->warning, fake_build_setting_name_version_target_s, path_file, fake_build_version_major_s);
+          fake_build_print_warning_setting_required_default_to(&data->main->program.warning, fake_build_setting_name_version_target_s, path_file, fake_build_version_major_s);
         }
       }
     }
@@ -1263,22 +1253,22 @@ extern "C" {
 #ifndef _di_fake_build_load_setting_override_
   void fake_build_load_setting_override(fake_data_t * const data, fake_build_setting_t * const setting) {
 
-    if (!data || !data->program || !data->setting || !setting) return;
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (!data || !data->main || !setting) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
-    if (data->program->parameters.array[fake_parameter_sources_e].result & f_console_result_value_e && setting->path_sources.used) {
-      data->setting->state.status = f_string_dynamic_append_assure(f_path_separator_s, &setting->path_sources);
+    if (data->main->program.parameters.array[fake_parameter_sources_e].result & f_console_result_value_e && setting->path_sources.used) {
+      data->main->setting.state.status = f_string_dynamic_append_assure(f_path_separator_s, &setting->path_sources);
 
-      if (F_status_is_error(data->setting->state.status)) {
-        fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_assure));
+      if (F_status_is_error(data->main->setting.state.status)) {
+        fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_assure));
 
         return;
       }
     }
 
-    if (data->program->parameters.array[fake_parameter_shared_disable_e].result & f_console_result_found_e) {
-      if (data->program->parameters.array[fake_parameter_shared_enable_e].result & f_console_result_found_e) {
-        if (data->program->parameters.array[fake_parameter_shared_enable_e].location > data->program->parameters.array[fake_parameter_shared_disable_e].location) {
+    if (data->main->program.parameters.array[fake_parameter_shared_disable_e].result & f_console_result_found_e) {
+      if (data->main->program.parameters.array[fake_parameter_shared_enable_e].result & f_console_result_found_e) {
+        if (data->main->program.parameters.array[fake_parameter_shared_enable_e].location > data->main->program.parameters.array[fake_parameter_shared_disable_e].location) {
           setting->build_shared = F_true;
           setting->search_shared = F_true;
         }
@@ -1287,21 +1277,21 @@ extern "C" {
           setting->search_shared = F_false;
         }
 
-        fake_build_print_warning_parameters_contradict(data->setting, data->program->warning, f_console_symbol_long_normal_s, fake_long_shared_disabled_s, f_console_symbol_long_normal_s, fake_long_shared_enabled_s, f_console_symbol_long_normal_s, setting->build_shared ? fake_long_shared_enabled_s : fake_long_shared_disabled_s);
+        fake_build_print_warning_parameters_contradict(&data->main->program.warning, f_console_symbol_long_normal_s, fake_long_shared_disabled_s, f_console_symbol_long_normal_s, fake_long_shared_enabled_s, f_console_symbol_long_normal_s, setting->build_shared ? fake_long_shared_enabled_s : fake_long_shared_disabled_s);
       }
       else {
         setting->build_shared = F_false;
         setting->search_shared = F_false;
       }
     }
-    else if (data->program->parameters.array[fake_parameter_shared_enable_e].result & f_console_result_found_e) {
+    else if (data->main->program.parameters.array[fake_parameter_shared_enable_e].result & f_console_result_found_e) {
       setting->build_shared = F_true;
       setting->search_shared = F_true;
     }
 
-    if (data->program->parameters.array[fake_parameter_static_disable_e].result & f_console_result_found_e) {
-      if (data->program->parameters.array[fake_parameter_static_enable_e].result & f_console_result_found_e) {
-        if (data->program->parameters.array[fake_parameter_static_enable_e].location > data->program->parameters.array[fake_parameter_static_disable_e].location) {
+    if (data->main->program.parameters.array[fake_parameter_static_disable_e].result & f_console_result_found_e) {
+      if (data->main->program.parameters.array[fake_parameter_static_enable_e].result & f_console_result_found_e) {
+        if (data->main->program.parameters.array[fake_parameter_static_enable_e].location > data->main->program.parameters.array[fake_parameter_static_disable_e].location) {
           setting->build_static = F_true;
           setting->search_static = F_true;
         }
@@ -1310,23 +1300,23 @@ extern "C" {
           setting->search_static = F_false;
         }
 
-        fake_build_print_warning_parameters_contradict(data->setting, data->program->warning, f_console_symbol_long_normal_s, fake_long_static_disabled_s, f_console_symbol_long_normal_s, fake_long_static_enabled_s, f_console_symbol_long_normal_s, setting->build_static ? fake_long_static_enabled_s : fake_long_static_disabled_s);
+        fake_build_print_warning_parameters_contradict(&data->main->program.warning, f_console_symbol_long_normal_s, fake_long_static_disabled_s, f_console_symbol_long_normal_s, fake_long_static_enabled_s, f_console_symbol_long_normal_s, setting->build_static ? fake_long_static_enabled_s : fake_long_static_disabled_s);
       }
       else {
         setting->build_static = F_false;
         setting->search_static = F_false;
       }
     }
-    else if (data->program->parameters.array[fake_parameter_static_enable_e].result & f_console_result_found_e) {
+    else if (data->main->program.parameters.array[fake_parameter_static_enable_e].result & f_console_result_found_e) {
       setting->build_static = F_true;
       setting->search_static = F_true;
     }
 
     if (setting->build_language == fake_build_language_c_e || setting->build_language == fake_build_language_cpp_e) {
       if (setting->build_shared == F_false && setting->build_static == F_false) {
-        fake_build_print_warning_setting_both_cannot_when_language(data->setting, data->program->warning, fake_build_setting_name_build_shared_s, fake_build_setting_name_build_static_s, setting->build_language == fake_build_language_c_e ? fake_build_language_c_s : fake_build_language_cpp_s);
+        fake_build_print_warning_setting_both_cannot_when_language(&data->main->program.warning, fake_build_setting_name_build_shared_s, fake_build_setting_name_build_static_s, setting->build_language == fake_build_language_c_e ? fake_build_language_c_s : fake_build_language_cpp_s);
 
-        data->setting->state.status = F_status_set_error(F_failure);
+        data->main->setting.state.status = F_status_set_error(F_failure);
       }
     }
   }
@@ -1335,14 +1325,14 @@ extern "C" {
 #ifndef _di_fake_build_load_stage_
   void fake_build_load_stage(fake_data_t * const data, const f_string_static_t settings_file, fake_build_stage_t * const stage) {
 
-    if (!data || !data->program || !data->setting || !stage) return;
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (!data || !data->main || !stage) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
-    if (!((++data->program->signal_check) % fake_signal_check_d)) {
-      if (fll_program_standard_signal_received(data->program)) {
-        fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+    if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+      if (fll_program_standard_signal_received(&data->main->program)) {
+        fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-        data->setting->state.status = F_status_set_error(F_interrupt);
+        data->main->setting.state.status = F_status_set_error(F_interrupt);
 
         return;
       }
@@ -1388,53 +1378,53 @@ extern "C" {
       &stage->file_sources_settings,
     };
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
 
     f_string_dynamic_t settings_file_base = f_string_dynamic_t_initialize;
 
     if (settings_file.used) {
-      data->setting->state.status = f_file_name_base(settings_file, &settings_file_base);
+      data->main->setting.state.status = f_file_name_base(settings_file, &settings_file_base);
     }
     else {
-      data->setting->state.status = f_file_name_base(data->file_data_build_settings, &settings_file_base);
+      data->main->setting.state.status = f_file_name_base(data->file_data_build_settings, &settings_file_base);
     }
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(f_file_name_base));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(f_file_name_base));
 
       return;
     }
 
     for (uint8_t i = 0; i < fake_build_stage_total_d; ++i) {
 
-      data->setting->state.status = f_string_dynamic_append_nulless(data->path_build_stage, values[i]);
+      data->main->setting.state.status = f_string_dynamic_append_nulless(data->path_build_stage, values[i]);
 
-      if (F_status_is_error_not(data->setting->state.status) && data->setting->process.used) {
-        data->setting->state.status = f_string_dynamic_append_nulless(data->setting->process, values[i]);
+      if (F_status_is_error_not(data->main->setting.state.status) && data->main->setting.process.used) {
+        data->main->setting.state.status = f_string_dynamic_append_nulless(data->main->setting.process, values[i]);
       }
 
-      if (F_status_is_error_not(data->setting->state.status)) {
-        data->setting->state.status = f_string_dynamic_append_nulless(fake_build_stage_separate_s, values[i]);
+      if (F_status_is_error_not(data->main->setting.state.status)) {
+        data->main->setting.state.status = f_string_dynamic_append_nulless(fake_build_stage_separate_s, values[i]);
       }
 
-      if (F_status_is_error_not(data->setting->state.status)) {
-        data->setting->state.status = f_string_dynamic_append_nulless(names[i], values[i]);
+      if (F_status_is_error_not(data->main->setting.state.status)) {
+        data->main->setting.state.status = f_string_dynamic_append_nulless(names[i], values[i]);
       }
 
-      if (F_status_is_error_not(data->setting->state.status)) {
-        data->setting->state.status = f_string_dynamic_append_nulless(fake_build_stage_separate_s, values[i]);
+      if (F_status_is_error_not(data->main->setting.state.status)) {
+        data->main->setting.state.status = f_string_dynamic_append_nulless(fake_build_stage_separate_s, values[i]);
       }
 
-      if (F_status_is_error_not(data->setting->state.status)) {
-        data->setting->state.status = f_string_dynamic_append_nulless(settings_file_base, values[i]);
+      if (F_status_is_error_not(data->main->setting.state.status)) {
+        data->main->setting.state.status = f_string_dynamic_append_nulless(settings_file_base, values[i]);
       }
 
-      if (F_status_is_error_not(data->setting->state.status)) {
-        data->setting->state.status = f_string_dynamic_append_nulless(fake_build_stage_built_s, values[i]);
+      if (F_status_is_error_not(data->main->setting.state.status)) {
+        data->main->setting.state.status = f_string_dynamic_append_nulless(fake_build_stage_built_s, values[i]);
       }
 
-      if (F_status_is_error(data->setting->state.status)) {
-        fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+      if (F_status_is_error(data->main->setting.state.status)) {
+        fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
         break;
       }
index d08bf1abcaad3e60f4f0d1b74ffb3166d5b826d8..a8a6488b1f8ecebc3eab0813df898163ab5fdc86 100644 (file)
@@ -22,7 +22,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_array_too_large (with error bit) if the environment variable values are too large.
@@ -47,7 +47,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
@@ -97,7 +97,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on error.
@@ -119,7 +119,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
@@ -165,7 +165,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
index 80293fd3b1dbb2f343f24c3031bf8b39c5e56f1e..fa033104689b4e4c5f350e16078236c7f4ef31b9 100644 (file)
@@ -7,9 +7,9 @@ extern "C" {
 #ifndef _di_fake_build_object_script_
   int fake_build_object_script(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting || !data_build) return 0;
-    if (data->setting->state.status == F_child) return data->program->child;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
+    if (!data || !data->main || !data_build) return 0;
+    if (data->main->setting.state.status == F_child) return data->main->program.child;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
 
     fake_build_touch(data, file_stage);
 
@@ -20,19 +20,19 @@ extern "C" {
 #ifndef _di_fake_build_object_shared_
   int fake_build_object_shared(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting || !data_build) return 0;
-    if (data->setting->state.status == F_child) return data->program->child;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
+    if (!data || !data->main || !data_build) return 0;
+    if (data->main->setting.state.status == F_child) return data->main->program.child;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
     if (!data_build->setting.build_sources_object.used && !data_build->setting.build_sources_object_shared.used) return 0;
 
-    fake_build_print_compile_object_shared(data->setting, data->program->message);
+    fake_build_print_compile_object_shared(&data->main->program.message);
 
     f_string_dynamics_t arguments = f_string_dynamics_t_initialize;
 
     fake_build_sources_object_add(data, data_build, &data_build->setting.build_sources_object, &data_build->setting.build_sources_object_shared, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fake_build_sources_object_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fake_build_sources_object_add));
 
       f_string_dynamics_resize(0, &arguments);
 
@@ -61,15 +61,15 @@ extern "C" {
 
         if (!values[i].used) continue;
 
-        data->setting->state.status = fll_execute_arguments_add(values[i], &arguments);
-        if (F_status_is_error(data->setting->state.status)) break;
+        data->main->setting.state.status = fll_execute_arguments_add(values[i], &arguments);
+        if (F_status_is_error(data->main->setting.state.status)) break;
       } // for
     }
 
     fake_build_arguments_standard_add(data, data_build, F_true, fake_build_type_object_e, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fake_build_arguments_standard_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fake_build_arguments_standard_add));
 
       macro_f_string_dynamics_t_delete_simple(arguments);
 
@@ -80,7 +80,7 @@ extern "C" {
 
     macro_f_string_dynamics_t_delete_simple(arguments);
 
-    if (F_status_is_error_not(data->setting->state.status) && data->setting->state.status != F_child) {
+    if (F_status_is_error_not(data->main->setting.state.status) && data->main->setting.state.status != F_child) {
       fake_build_touch(data, file_stage);
     }
 
@@ -91,19 +91,19 @@ extern "C" {
 #ifndef _di_fake_build_object_static_
   int fake_build_object_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting || !data_build) return 0;
-    if (data->setting->state.status == F_child) return data->program->child;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
+    if (!data || !data->main || !data_build) return 0;
+    if (data->main->setting.state.status == F_child) return data->main->program.child;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
     if (!data_build->setting.build_sources_object.used && !data_build->setting.build_sources_object_static.used) return 0;
 
-    fake_build_print_compile_object_static(data->setting, data->program->message);
+    fake_build_print_compile_object_static(&data->main->program.message);
 
     f_string_dynamics_t arguments = f_string_dynamics_t_initialize;
 
     fake_build_sources_object_add(data, data_build, &data_build->setting.build_sources_object, &data_build->setting.build_sources_object_static, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fake_build_sources_object_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fake_build_sources_object_add));
 
       f_string_dynamics_resize(0, &arguments);
 
@@ -132,15 +132,15 @@ extern "C" {
 
         if (!values[i].used) continue;
 
-        data->setting->state.status = fll_execute_arguments_add(values[i], &arguments);
-        if (F_status_is_error(data->setting->state.status)) break;
+        data->main->setting.state.status = fll_execute_arguments_add(values[i], &arguments);
+        if (F_status_is_error(data->main->setting.state.status)) break;
       } // for
     }
 
     fake_build_arguments_standard_add(data, data_build, F_false, fake_build_type_object_e, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fake_build_arguments_standard_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fake_build_arguments_standard_add));
 
       macro_f_string_dynamics_t_delete_simple(arguments);
 
@@ -151,7 +151,7 @@ extern "C" {
 
     macro_f_string_dynamics_t_delete_simple(arguments);
 
-    if (F_status_is_error_not(data->setting->state.status) && data->setting->state.status != F_child) {
+    if (F_status_is_error_not(data->main->setting.state.status) && data->main->setting.state.status != F_child) {
       fake_build_touch(data, file_stage);
     }
 
index f292f141927d69cc258c3a5a641dce784cf6e0f6..bef1f589a37f921fcc3d55b006ad937a5ef57084 100644 (file)
@@ -27,7 +27,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: fake_build_touch().
@@ -57,7 +57,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: fll_execute_arguments_add().
@@ -93,7 +93,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: fll_execute_arguments_add().
index c748fb068d2a8041239ef0dbd368669162f81d1c..d10f2c6a0c7338be1de40077c078bc074244b3b1 100644 (file)
@@ -7,19 +7,19 @@ extern "C" {
 #ifndef _di_fake_build_objects_static_
   int fake_build_objects_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting) return 0;
-    if (data->setting->state.status == F_child) return data->program->child;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
+    if (!data || !data->main) return 0;
+    if (data->main->setting.state.status == F_child) return data->main->program.child;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
     if (!data_build->setting.build_sources_library.used) return 0;
 
-    fake_build_print_compile_object_static_library(data->setting, data->program->message);
+    fake_build_print_compile_object_static_library(&data->main->program.message);
 
     f_string_dynamics_t arguments = f_string_dynamics_t_initialize;
 
     fake_build_objects_add(data, data_build, &data->path_build_objects_static, &data_build->setting.build_objects_library, &data_build->setting.build_objects_library_static, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fake_build_objects_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fake_build_objects_add));
 
       f_string_dynamics_resize(0, &arguments);
 
@@ -31,7 +31,7 @@ extern "C" {
     f_string_static_t destination = f_string_static_t_initialize;
     f_string_static_t source = f_string_static_t_initialize;
 
-    int result = data->program->child;
+    int result = data->main->program.child;
 
     const f_string_dynamics_t *sources[2] = {
       &data_build->setting.build_sources_library,
@@ -63,66 +63,66 @@ extern "C" {
 
         fake_build_get_file_name_without_extension(data, sources[i]->array[j], &file_name);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(fake_build_get_file_name_without_extension));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(fake_build_get_file_name_without_extension));
 
           break;
         }
 
-        data->setting->state.status = f_file_name_directory(sources[i]->array[j], &destination_path);
+        data->main->setting.state.status = f_file_name_directory(sources[i]->array[j], &destination_path);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(f_file_name_directory));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(f_file_name_directory));
 
           break;
         }
 
         if (destination_path.used) {
-          data->setting->state.status = f_string_dynamic_prepend(data->path_build_objects, &destination_path);
+          data->main->setting.state.status = f_string_dynamic_prepend(data->path_build_objects, &destination_path);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_prepend));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_prepend));
 
             break;
           }
 
-          data->setting->state.status = f_string_dynamic_append_assure(f_path_separator_s, &destination_path);
+          data->main->setting.state.status = f_string_dynamic_append_assure(f_path_separator_s, &destination_path);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_assure));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_assure));
 
             break;
           }
 
-          data->setting->state.status = f_directory_exists(destination_path);
+          data->main->setting.state.status = f_directory_exists(destination_path);
 
-          if (data->setting->state.status == F_false) {
-            fake_build_print_error_exist_not_directory(data->setting, data->program->message, destination_path);
+          if (data->main->setting.state.status == F_false) {
+            fake_build_print_error_exist_not_directory(&data->main->program.message, destination_path);
 
-            data->setting->state.status = F_status_set_error(F_failure);
+            data->main->setting.state.status = F_status_set_error(F_failure);
 
             break;
           }
 
-          if (data->setting->state.status == F_file_found_not) {
-            data->setting->state.status = f_directory_create(destination_path, mode.directory);
+          if (data->main->setting.state.status == F_file_found_not) {
+            data->main->setting.state.status = f_directory_create(destination_path, mode.directory);
 
-            if (F_status_is_error(data->setting->state.status)) {
-              if (F_status_set_fine(data->setting->state.status) == F_file_found_not) {
-                fake_build_print_error_cannot_create_due_to_parent(data->setting, data->program->message, destination_path);
+            if (F_status_is_error(data->main->setting.state.status)) {
+              if (F_status_set_fine(data->main->setting.state.status) == F_file_found_not) {
+                fake_build_print_error_cannot_create_due_to_parent(&data->main->program.message, destination_path);
               }
               else {
-                fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_directory_create), destination_path, f_file_operation_create_s, fll_error_file_type_directory_e);
+                fake_print_error_file(&data->main->program.error, macro_fake_f(f_directory_create), destination_path, f_file_operation_create_s, fll_error_file_type_directory_e);
               }
 
               break;
             }
 
-            fake_build_print_verbose_create_directory(data->setting, data->program->message, destination_path);
+            fake_build_print_verbose_create_directory(&data->main->program.message, destination_path);
           }
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_directory_exists), destination_path, f_file_operation_create_s, fll_error_file_type_directory_e);
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error_file(&data->main->program.error, macro_fake_f(f_directory_exists), destination_path, f_file_operation_create_s, fll_error_file_type_directory_e);
 
             break;
           }
@@ -160,14 +160,14 @@ extern "C" {
 
           if (!values[k].used) continue;
 
-          data->setting->state.status = fll_execute_arguments_add(values[k], &arguments);
-          if (F_status_is_error(data->setting->state.status)) break;
+          data->main->setting.state.status = fll_execute_arguments_add(values[k], &arguments);
+          if (F_status_is_error(data->main->setting.state.status)) break;
         } // for
 
         fake_build_arguments_standard_add(data, data_build, F_false, fake_build_type_library_e, &arguments);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(fll_execute_arguments_add));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(fll_execute_arguments_add));
 
           break;
         }
@@ -176,17 +176,17 @@ extern "C" {
 
         macro_f_string_dynamics_t_delete_simple(arguments);
 
-        if (F_status_is_error(data->setting->state.status) || data->setting->state.status == F_child) break;
+        if (F_status_is_error(data->main->setting.state.status) || data->main->setting.state.status == F_child) break;
       } // for
 
-      if (F_status_is_error(data->setting->state.status) || data->setting->state.status == F_child) break;
+      if (F_status_is_error(data->main->setting.state.status) || data->main->setting.state.status == F_child) break;
     } // for
 
     f_string_dynamic_resize(0, &file_name);
     f_string_dynamic_resize(0, &destination_path);
     f_string_dynamics_resize(0, &arguments);
 
-    if (F_status_is_error_not(data->setting->state.status) && data->setting->state.status != F_child) {
+    if (F_status_is_error_not(data->main->setting.state.status) && data->main->setting.state.status != F_child) {
       fake_build_touch(data, file_stage);
     }
 
index ad93f3b086f8c0d174fdf34c59f45ba246ce9bdc..de065638a65fd27adab551a0ab9c734caa87f606 100644 (file)
@@ -25,7 +25,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.settings.state.status:
+ *   This alters data.main->settings.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_directory_create().
diff --git a/level_3/fake/c/main/build/print.c b/level_3/fake/c/main/build/print.c
deleted file mode 100644 (file)
index 75d3c93..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#include "../fake.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fake_build_print_linked_file_
-  f_status_t fake_build_print_linked_file(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t from, const f_string_static_t to) {
-
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not; // @fixme this function needs to be a "verbose" function rather than a "normal" print function.
-
-    fake_print_wrapped_variables(setting, print, "Linked file ", from, " to ", to, 0);
-
-    return F_none;
-  }
-#endif // _di_fake_build_print_linked_file_
-
-#ifndef _di_fake_build_print_skeleton_build_base_
-  f_status_t fake_build_print_skeleton_build_base(fake_setting_t * const setting, const fl_print_t print) {
-
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
-
-    fll_print_dynamic_raw(f_string_eol_s, print.to);
-    fake_print_context_important_simple(setting, print, "Creating base build directories");
-
-    return F_none;
-  }
-#endif // _di_fake_build_print_skeleton_build_base_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
diff --git a/level_3/fake/c/main/build/print.h b/level_3/fake/c/main/build/print.h
deleted file mode 100644 (file)
index fc79de6..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * FLL - Level 3
- *
- * Project: Featureless Make
- * API Version: 0.7
- * Licenses: lgpl-2.1-or-later
- *
- * Provides build print functionality.
- *
- * This is auto-included and should not need to be explicitly included.
- */
-#ifndef _fake_build_print_h
-#define _fake_build_print_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Print message when compiling a shared library.
- *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
- * @param print
- *   Designates the how and where to print.
- * @param from
- *   The link source.
- * @param to
- *   The link destination.
- *
- * @return
- *   F_none on success.
- *   F_output_not on success, but no printing is performed.
- *
- *   F_output_not (with error bit) if setting is NULL.
- *
- * @see fake_print_wrapped_variables()
- */
-#ifndef _di_fake_build_print_linked_file_
-  extern f_status_t fake_build_print_linked_file(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t from, const f_string_static_t to);
-#endif // _di_fake_build_print_linked_file_
-
-/**
- * Print message when building base skeleton directories.
- *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
- * @param print
- *   Designates the how and where to print.
- *
- * @return
- *   F_none on success.
- *   F_output_not on success, but no printing is performed.
- *
- *   F_output_not (with error bit) if setting is NULL.
- *
- * @see fake_print_context_important_simple()
- */
-#ifndef _di_fake_build_print_skeleton_build_base_
-  extern f_status_t fake_build_print_skeleton_build_base(fake_setting_t * const setting, const fl_print_t print);
-#endif // _di_fake_build_print_skeleton_build_base_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // _fake_build_print_h
index 6bc9cdf6adce3b42855d750d9e5a2534e841dbe5..3004a3120ff7b3f6ffdd224caad4ca4155248ecb 100644 (file)
@@ -5,91 +5,91 @@ extern "C" {
 #endif
 
 #ifndef _di_fake_build_print_compile_library_shared_
-  f_status_t fake_build_print_compile_library_shared(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_build_print_compile_library_shared(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
 
-    fll_print_dynamic_raw(f_string_eol_s, print.to);
-    fake_print_context_important_simple(setting, print, "Compiling shared library");
+    fll_print_dynamic_raw(f_string_eol_s, print->to);
+    fake_print_context_important_simple(print, "Compiling shared library");
 
     return F_none;
   }
 #endif // _di_fake_build_print_compile_library_shared_
 
 #ifndef _di_fake_build_print_compile_library_static_
-  f_status_t fake_build_print_compile_library_static(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_build_print_compile_library_static(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
 
-    fll_print_dynamic_raw(f_string_eol_s, print.to);
-    fake_print_context_important_simple(setting, print, "Compiling static library");
+    fll_print_dynamic_raw(f_string_eol_s, print->to);
+    fake_print_context_important_simple(print, "Compiling static library");
 
     return F_none;
   }
 #endif // _di_fake_build_print_compile_library_static_
 
 #ifndef _di_fake_build_print_compile_object_shared_
-  f_status_t fake_build_print_compile_object_shared(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_build_print_compile_object_shared(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
 
-    fll_print_dynamic_raw(f_string_eol_s, print.to);
-    fake_print_context_important_simple(setting, print, "Compiling shared object");
+    fll_print_dynamic_raw(f_string_eol_s, print->to);
+    fake_print_context_important_simple(print, "Compiling shared object");
 
     return F_none;
   }
 #endif // _di_fake_build_print_compile_object_shared_
 
 #ifndef _di_fake_build_print_compile_object_static_
-  f_status_t fake_build_print_compile_object_static(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_build_print_compile_object_static(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
 
-    fll_print_dynamic_raw(f_string_eol_s, print.to);
-    fake_print_context_important_simple(setting, print, "Compiling static object");
+    fll_print_dynamic_raw(f_string_eol_s, print->to);
+    fake_print_context_important_simple(print, "Compiling static object");
 
     return F_none;
   }
 #endif // _di_fake_build_print_compile_object_static_
 
 #ifndef _di_fake_build_print_compile_object_static_library_
-  f_status_t fake_build_print_compile_object_static_library(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_build_print_compile_object_static_library(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
 
-    fll_print_dynamic_raw(f_string_eol_s, print.to);
-    fake_print_context_important_simple(setting, print, "Compiling objects for static library");
+    fll_print_dynamic_raw(f_string_eol_s, print->to);
+    fake_print_context_important_simple(print, "Compiling objects for static library");
 
     return F_none;
   }
 #endif // _di_fake_build_print_compile_object_static_library_
 
 #ifndef _di_fake_build_print_compile_program_shared_
-  f_status_t fake_build_print_compile_program_shared(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_build_print_compile_program_shared(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
 
-    fll_print_dynamic_raw(f_string_eol_s, print.to);
-    fake_print_context_important_simple(setting, print, "Compiling shared program");
+    fll_print_dynamic_raw(f_string_eol_s, print->to);
+    fake_print_context_important_simple(print, "Compiling shared program");
 
     return F_none;
   }
 #endif // _di_fake_build_print_compile_program_shared_
 
 #ifndef _di_fake_build_print_compile_program_static_
-  f_status_t fake_build_print_compile_program_static(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_build_print_compile_program_static(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
 
-    fll_print_dynamic_raw(f_string_eol_s, print.to);
-    fake_print_context_important_simple(setting, print, "Compiling static program");
+    fll_print_dynamic_raw(f_string_eol_s, print->to);
+    fake_print_context_important_simple(print, "Compiling static program");
 
     return F_none;
   }
index af4663d4e926be72333aa4e1738c52c634e9b382..49266a712a1e855f96e957a6cb1875e65330d263 100644 (file)
@@ -19,12 +19,12 @@ extern "C" {
 /**
  * Print message when compiling a shared library.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  *
  * @return
  *   F_none on success.
@@ -35,18 +35,18 @@ extern "C" {
  * @see fake_print_context_important_simple()
  */
 #ifndef _di_fake_build_print_compile_library_shared_
-  extern f_status_t fake_build_print_compile_library_shared(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_build_print_compile_library_shared(fl_print_t * const print);
 #endif // _di_fake_build_print_compile_library_shared_
 
 /**
  * Print message when compiling a static library.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  *
  * @return
  *   F_none on success.
@@ -57,18 +57,18 @@ extern "C" {
  * @see fake_print_context_important_simple()
  */
 #ifndef _di_fake_build_print_compile_library_static_
-  extern f_status_t fake_build_print_compile_library_static(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_build_print_compile_library_static(fl_print_t * const print);
 #endif // _di_fake_build_print_compile_library_static_
 
 /**
  * Print message when compiling a shared object.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  *
  * @return
  *   F_none on success.
@@ -79,18 +79,18 @@ extern "C" {
  * @see fake_print_context_important_simple()
  */
 #ifndef _di_fake_build_print_compile_object_shared_
-  extern f_status_t fake_build_print_compile_object_shared(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_build_print_compile_object_shared(fl_print_t * const print);
 #endif // _di_fake_build_print_compile_object_shared_
 
 /**
  * Print message when compiling a static object.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  *
  * @return
  *   F_none on success.
@@ -101,18 +101,18 @@ extern "C" {
  * @see fake_print_context_important_simple()
  */
 #ifndef _di_fake_build_print_compile_object_static_
-  extern f_status_t fake_build_print_compile_object_static(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_build_print_compile_object_static(fl_print_t * const print);
 #endif // _di_fake_build_print_compile_object_static_
 
 /**
  * Print message when compiling a static object for a library.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  *
  * @return
  *   F_none on success.
@@ -123,18 +123,18 @@ extern "C" {
  * @see fake_print_context_important_simple()
  */
 #ifndef _di_fake_build_print_compile_object_static_library_
-  extern f_status_t fake_build_print_compile_object_static_library(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_build_print_compile_object_static_library(fl_print_t * const print);
 #endif // _di_fake_build_print_compile_object_static_library_
 
 /**
  * Print message when compiling a shared program.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  *
  * @return
  *   F_none on success.
@@ -145,18 +145,18 @@ extern "C" {
  * @see fake_print_context_important_simple()
  */
 #ifndef _di_fake_build_print_compile_program_shared_
-  extern f_status_t fake_build_print_compile_program_shared(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_build_print_compile_program_shared(fl_print_t * const print);
 #endif // _di_fake_build_print_compile_program_shared_
 
 /**
  * Print message when compiling a static program.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  *
  * @return
  *   F_none on success.
@@ -167,7 +167,7 @@ extern "C" {
  * @see fake_print_context_important_simple()
  */
 #ifndef _di_fake_build_print_compile_program_static_
-  extern f_status_t fake_build_print_compile_program_static(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_build_print_compile_program_static(fl_print_t * const print);
 #endif // _di_fake_build_print_compile_program_static_
 
 #ifdef __cplusplus
index 05c35a0b2c5334b967d5f30d95a406ec262c90a5..03dc97b557b0c8a1a40f49fada631a68e4af2d9c 100644 (file)
@@ -5,65 +5,77 @@ extern "C" {
 #endif
 
 #ifndef _di_fake_build_print_error_cannot_create_due_to_parent_
-  f_status_t fake_build_print_error_cannot_create_due_to_parent(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_build_print_error_cannot_create_due_to_parent(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The path ", path, " could not be created, a parent directory is invalid or does not exist");
+    fake_print_context_wrapped_variable(print, "The path ", path, " could not be created, a parent directory is invalid or does not exist");
 
     return F_none;
   }
 #endif // _di_fake_build_print_error_cannot_create_due_to_parent_
 
 #ifndef _di_fake_build_print_error_exist_not_directory_
-  f_status_t fake_build_print_error_exist_not_directory(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_build_print_error_exist_not_directory(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The path ", path, " exists but is not a directory");
+    fake_print_context_wrapped_variable(print, "The path ", path, " exists but is not a directory");
 
     return F_none;
   }
 #endif // _di_fake_build_print_error_exist_not_directory_
 
 #ifndef _di_fake_build_print_error_missing_required_setting_
-  f_status_t fake_build_print_error_missing_required_setting(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name, const f_string_static_t path) {
+  f_status_t fake_build_print_error_missing_required_setting(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variables(setting, print, "The setting ", name, " is required but is not specified in the settings file ", path, 0);
+    fake_print_context_wrapped_variables(print, "The setting ", name, " is required but is not specified in the settings file ", path, 0);
 
     return F_none;
   }
 #endif // _di_fake_build_print_error_missing_required_setting_
 
 #ifndef _di_fake_build_print_error_mode_invalid_
-  f_status_t fake_build_print_error_mode_invalid(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t mode, const f_string_static_t path) {
+  f_status_t fake_build_print_error_mode_invalid(fl_print_t * const print, const f_string_static_t mode, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variables(setting, print, "The specified mode ", mode, " in the settings file ", path, " is not a valid mode");
+    fake_print_context_wrapped_variables(print, "The specified mode ", mode, " in the settings file ", path, " is not a valid mode");
 
     return F_none;
   }
 #endif // _di_fake_build_print_error_mode_invalid_
 
 #ifndef _di_fake_build_print_error_setting_too_long_
-  f_status_t fake_build_print_error_setting_too_long(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_build_print_error_setting_too_long(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "A setting in the settings file ", path, " is too long");
+    fake_print_context_wrapped_variable(print, "A setting in the settings file ", path, " is too long");
 
     return F_none;
   }
 #endif // _di_fake_build_print_error_setting_too_long_
 
+#ifndef _di_fake_build_print_error_setting_value_too_long_
+  f_status_t fake_build_print_error_setting_value_too_long(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path) {
+
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
+
+    fake_print_context_wrapped_variables(print, "The values for the setting ", name, " of the setting file ", path, " is too long");
+
+    return F_none;
+  }
+#endif // _di_fake_build_print_error_setting_value_too_long_
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
index 12344b07e2233011e694495280aecc21be32a411..1734522ed6fd472ce8d1003c6eed5df5be1a4474 100644 (file)
@@ -19,12 +19,12 @@ extern "C" {
 /**
  * Print error message about not creating path due to a parent directory not existing or is otherwise invalid.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The path that cannot be created.
  *
@@ -37,18 +37,18 @@ extern "C" {
  * @see fake_print_context_wrapped_variable()
  */
 #ifndef _di_fake_build_print_error_cannot_create_due_to_parent_
-  extern f_status_t fake_build_print_error_cannot_create_due_to_parent(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_build_print_error_cannot_create_due_to_parent(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_build_print_error_cannot_create_due_to_parent_
 
 /**
  * Print error message about not creating path due to a parent directory not existing or is otherwise invalid.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The path that cannot be created.
  *
@@ -61,18 +61,18 @@ extern "C" {
  * @see fake_print_context_wrapped_variable()
  */
 #ifndef _di_fake_build_print_error_exist_not_directory_
-  extern f_status_t fake_build_print_error_exist_not_directory(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_build_print_error_exist_not_directory(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_build_print_error_exist_not_directory_
 
 /**
  * Print error message about a required setting missing.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name
  *   The name of the missing setting.
  * @param path
@@ -87,19 +87,19 @@ extern "C" {
  * @see fake_print_context_wrapped_variables()
  */
 #ifndef _di_fake_build_print_error_missing_required_setting_
-  extern f_status_t fake_build_print_error_missing_required_setting(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name, const f_string_static_t path);
+  extern f_status_t fake_build_print_error_missing_required_setting(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path);
 #endif // _di_fake_build_print_error_missing_required_setting_
 
 
 /**
  * Print error message about a mode being invalid.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param mode
  *   The invalid mode.
  * @param path
@@ -114,18 +114,18 @@ extern "C" {
  * @see fake_print_context_wrapped_variables()
  */
 #ifndef _di_fake_build_print_error_mode_invalid_
-  extern f_status_t fake_build_print_error_mode_invalid(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t mode, const f_string_static_t path);
+  extern f_status_t fake_build_print_error_mode_invalid(fl_print_t * const print, const f_string_static_t mode, const f_string_static_t path);
 #endif // _di_fake_build_print_error_mode_invalid_
 
 /**
- * Print error message about not creating path due to a parent directory not existing or is otherwise invalid.
+ * Print error message about an unnamed setting being too long.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The path that cannot be created.
  *
@@ -138,9 +138,35 @@ extern "C" {
  * @see fake_print_context_wrapped_variables()
  */
 #ifndef _di_fake_build_print_error_setting_too_long_
-  extern f_status_t fake_build_print_error_setting_too_long(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_build_print_error_setting_too_long(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_build_print_error_setting_too_long_
 
+/**
+ * Print error message about the given setting for the given file being too long.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ * @param name
+ *   The name of the setting.
+ * @param path
+ *   The path that cannot be created.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ *
+ *   F_output_not (with error bit) if setting is NULL.
+ *
+ * @see fake_print_context_wrapped_variables()
+ */
+#ifndef _di_fake_build_print_error_setting_value_too_long_
+  extern f_status_t fake_build_print_error_setting_value_too_long(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path);
+#endif // _di_fake_build_print_error_setting_value_too_long_
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
diff --git a/level_3/fake/c/main/build/print/message.c b/level_3/fake/c/main/build/print/message.c
new file mode 100644 (file)
index 0000000..b18885f
--- /dev/null
@@ -0,0 +1,22 @@
+#include "../../fake.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fake_build_print_message_skeleton_build_base_
+  f_status_t fake_build_print_message_skeleton_build_base(fl_print_t * const print) {
+
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
+
+    fll_print_dynamic_raw(f_string_eol_s, print->to);
+    fake_print_context_important_simple(print, "Creating base build directories");
+
+    return F_none;
+  }
+#endif // _di_fake_build_print_message_skeleton_build_base_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_3/fake/c/main/build/print/message.h b/level_3/fake/c/main/build/print/message.h
new file mode 100644 (file)
index 0000000..63f0ffd
--- /dev/null
@@ -0,0 +1,45 @@
+/**
+ * FLL - Level 3
+ *
+ * Project: Featureless Make
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Provides build print message functionality.
+ *
+ * This is auto-included and should not need to be explicitly included.
+ */
+#ifndef _fake_build_print_message_h
+#define _fake_build_print_message_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Print message when building base skeleton directories.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ *
+ *   F_output_not (with error bit) if setting is NULL.
+ *
+ * @see fake_print_context_important_simple()
+ */
+#ifndef _di_fake_build_print_message_skeleton_build_base_
+  extern f_status_t fake_build_print_message_skeleton_build_base(fl_print_t * const print);
+#endif // _di_fake_build_print_message_skeleton_build_base_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _fake_build_print_message_h
index 8fa480bffbee3cd1647770fb218607b98fc8781f..9a846133a03c41df0b215274ec941812983bb024 100644 (file)
@@ -5,29 +5,41 @@ extern "C" {
 #endif
 
 #ifndef _di_fake_build_print_verbose_copied_file_
-  f_status_t fake_build_print_verbose_copied_file(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t source, const f_string_static_t destination) {
+  f_status_t fake_build_print_verbose_copied_file(fl_print_t * const print, const f_string_static_t source, const f_string_static_t destination) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_wrapped_variables(setting, print, "Copied file ", source, " to ", destination, f_string_empty_s.string);
+    fake_print_common_wrapped_variables(print, "Copied file ", source, " to ", destination, f_string_empty_s.string);
 
     return F_none;
   }
 #endif // _di_fake_build_print_verbose_copied_file_
 
 #ifndef _di_fake_build_print_verbose_create_directory_
-  f_status_t fake_build_print_verbose_create_directory(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t directory) {
+  f_status_t fake_build_print_verbose_create_directory(fl_print_t * const print, const f_string_static_t directory) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_simple_variable(setting, print, "Created directory ", directory);
+    fake_print_common_simple_variable(print, "Created directory ", directory);
 
     return F_none;
   }
 #endif // _di_fake_build_print_verbose_create_directory_
 
+#ifndef _di_fake_build_print_verbose_linked_file_
+  f_status_t fake_build_print_verbose_linked_file(fl_print_t * const print, const f_string_static_t from, const f_string_static_t to) {
+
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
+
+    fake_print_common_wrapped_variables(print, "Linked file ", from, " to ", to, 0);
+
+    return F_none;
+  }
+#endif // _di_fake_build_print_verbose_linked_file_
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
index 4b1480a952fbf8d061dfa4a246146cbed683120f..87cf9e28d9761a5c6a5cfc3696c8a271e92721ad 100644 (file)
@@ -19,12 +19,12 @@ extern "C" {
 /**
  * Print verbose message about copying a file.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param source
  *   The source file path.
  * @param destination
@@ -36,21 +36,21 @@ extern "C" {
  *
  *   F_output_not (with error bit) if setting is NULL.
  *
- * @see fake_print_wrapped_variables()
+ * @see fake_print_common_wrapped_variables()
  */
 #ifndef _di_fake_build_print_verbose_copied_file_
-  extern f_status_t fake_build_print_verbose_copied_file(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t source, const f_string_static_t destination);
+  extern f_status_t fake_build_print_verbose_copied_file(fl_print_t * const print, const f_string_static_t source, const f_string_static_t destination);
 #endif // _di_fake_build_print_verbose_create_directory_
 
 /**
  * Print verbose message about _di_fake_build_print_verbose_copied_file_ a directory.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param directory
  *   The directory created.
  *
@@ -60,12 +60,38 @@ extern "C" {
  *
  *   F_output_not (with error bit) if setting is NULL.
  *
- * @see fake_print_simple_variable()
+ * @see fake_print_common_simple_variable()
  */
 #ifndef _di_fake_build_print_verbose_create_directory_
-  extern f_status_t fake_build_print_verbose_create_directory(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t directory);
+  extern f_status_t fake_build_print_verbose_create_directory(fl_print_t * const print, const f_string_static_t directory);
 #endif // _di_fake_build_print_verbose_create_directory_
 
+/**
+ * Print message about linking a file.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ * @param from
+ *   The link source.
+ * @param to
+ *   The link destination.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ *
+ *   F_output_not (with error bit) if setting is NULL.
+ *
+ * @see fake_print_common_wrapped_variables()
+ */
+#ifndef _di_fake_build_print_verbose_linked_file_
+  extern f_status_t fake_build_print_verbose_linked_file(fl_print_t * const print, const f_string_static_t from, const f_string_static_t to);
+#endif // _di_fake_build_print_verbose_linked_file_
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
index d3d089d5a7c2744b984681db08c35658e79095ee..23e4160c5ab274df0b31c40ebfc3fc479efc64f8 100644 (file)
@@ -5,125 +5,125 @@ extern "C" {
 #endif
 
 #ifndef _di_fake_build_print_warning_parameters_contradict_
-  f_status_t fake_build_print_warning_parameters_contradict(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t symbol_1, const f_string_static_t name_1, const f_string_static_t symbol_2, const f_string_static_t name_2, const f_string_static_t symbol_3, const f_string_static_t name_3) {
+  f_status_t fake_build_print_warning_parameters_contradict(fl_print_t * const print, const f_string_static_t symbol_1, const f_string_static_t name_1, const f_string_static_t symbol_2, const f_string_static_t name_2, const f_string_static_t symbol_3, const f_string_static_t name_3) {
 
-    if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_wrapped_parameters(setting, print, "The parameters ", symbol_1, name_1, " and ", symbol_2, name_2, " contradict, defaulting to ", symbol_3, name_3, 0);
+    fake_print_context_wrapped_parameters(print, "The parameters ", symbol_1, name_1, " and ", symbol_2, name_2, " contradict, defaulting to ", symbol_3, name_3, 0);
 
     return F_none;
   }
 #endif // _di_fake_build_print_warning_parameters_contradict_
 
 #ifndef _di_fake_build_print_warning_setting_boolean_may_only_be_
-  f_status_t fake_build_print_warning_setting_boolean_may_only_be(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to) {
+  f_status_t fake_build_print_warning_setting_boolean_may_only_be(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to) {
 
-    if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%r%[%QThe setting '%]", print.to, f_string_eol_s, print.context, print.prefix, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, name, print.notable);
-    fl_print_format("%[' in the file '%]", print.to, print.context, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, path, print.notable);
-    fl_print_format("%[' may be either '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_common_setting_bool_yes_s, print.notable);
-    fl_print_format("%[' or '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_common_setting_bool_no_s, print.notable);
-    fl_print_format("%[', defaulting to '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, default_to, print.notable);
-    fl_print_format("%['.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%r%[%QThe setting '%]", print->to, f_string_eol_s, print->context, print->prefix, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, name, print->notable);
+    fl_print_format("%[' in the file '%]", print->to, print->context, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, path, print->notable);
+    fl_print_format("%[' may be either '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_common_setting_bool_yes_s, print->notable);
+    fl_print_format("%[' or '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_common_setting_bool_no_s, print->notable);
+    fl_print_format("%[', defaulting to '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, default_to, print->notable);
+    fl_print_format("%['.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_build_print_warning_setting_boolean_may_only_be_
 
 #ifndef _di_fake_build_print_warning_setting_both_cannot_using_language_
-  f_status_t fake_build_print_warning_setting_both_cannot_when_language(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name_1, const f_string_static_t name_2, const f_string_static_t language) {
+  f_status_t fake_build_print_warning_setting_both_cannot_when_language(fl_print_t * const print, const f_string_static_t name_1, const f_string_static_t name_2, const f_string_static_t language) {
 
-    if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_wrapped_parameters(setting, print, "The build settings ", f_string_empty_s, name_1, " and ", f_string_empty_s, name_2, " cannot both be false when using the language ", f_string_empty_s, language, 0);
+    fake_print_context_wrapped_parameters(print, "The build settings ", f_string_empty_s, name_1, " and ", f_string_empty_s, name_2, " cannot both be false when using the language ", f_string_empty_s, language, 0);
 
     return F_none;
   }
 #endif // _di_fake_build_print_warning_setting_both_cannot_using_language_
 
 #ifndef _di_fake_build_print_warning_setting_language_may_only_be_
-  f_status_t fake_build_print_warning_setting_language_may_only_be(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to) {
+  f_status_t fake_build_print_warning_setting_language_may_only_be(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to) {
 
-    if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe setting '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, name, print.notable);
-    fl_print_format("%[' in the file '%]", print.to, print.context, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, path, print.notable);
-    fl_print_format("%[' may only be one of '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_build_language_bash_s, print.notable);
-    fl_print_format("%[', '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_build_language_c_s, print.notable);
-    fl_print_format("%[', or '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_build_language_cpp_s, print.notable);
-    fl_print_format("%[', defaulting to '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, default_to, print.notable);
-    fl_print_format("%['.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe setting '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, name, print->notable);
+    fl_print_format("%[' in the file '%]", print->to, print->context, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, path, print->notable);
+    fl_print_format("%[' may only be one of '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_build_language_bash_s, print->notable);
+    fl_print_format("%[', '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_build_language_c_s, print->notable);
+    fl_print_format("%[', or '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_build_language_cpp_s, print->notable);
+    fl_print_format("%[', defaulting to '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, default_to, print->notable);
+    fl_print_format("%['.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_build_print_warning_setting_language_may_only_be_
 
 #ifndef _di_fake_build_print_warning_setting_required_default_to_
-  f_status_t fake_build_print_warning_setting_required_default_to(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to) {
+  f_status_t fake_build_print_warning_setting_required_default_to(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to) {
 
-    if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe setting '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, name, print.notable);
-    fl_print_format("%[' in the file '%]", print.to, print.context, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, path, print.notable);
-    fl_print_format("%[' is required, defaulting to '%]", print.to, print.context, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, default_to, print.notable);
-    fl_print_format("%['.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe setting '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, name, print->notable);
+    fl_print_format("%[' in the file '%]", print->to, print->context, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, path, print->notable);
+    fl_print_format("%[' is required, defaulting to '%]", print->to, print->context, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, default_to, print->notable);
+    fl_print_format("%['.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_build_print_warning_setting_required_default_to_
 
 #ifndef _di_fake_build_print_warning_setting_version_may_only_be_
-  f_status_t fake_build_print_warning_setting_version_may_only_be(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to) {
-
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
-
-    f_file_stream_lock(print.to);
-
-    fl_print_format("%[%QThe setting '%]", print.to, f_string_eol_s, print.context, print.prefix, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, name, print.notable);
-    fl_print_format("%[' in the file '%]", print.to, print.context, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, path, print.notable);
-    fl_print_format("%[' may only be one of '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_build_version_major_s, print.notable);
-    fl_print_format("%[', '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_build_version_minor_s, print.notable);
-    fl_print_format("%[', '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_build_version_micro_s, print.notable);
-    fl_print_format("%[', or '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_build_version_nano_s, print.notable);
-    fl_print_format("%[', defaulting to '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, default_to, print.notable);
-    fl_print_format("%['.%]%r", print.to, print.context, print.context, f_string_eol_s);
-
-    f_file_stream_unlock(print.to);
+  f_status_t fake_build_print_warning_setting_version_may_only_be(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to) {
+
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
+
+    f_file_stream_lock(print->to);
+
+    fl_print_format("%[%QThe setting '%]", print->to, f_string_eol_s, print->context, print->prefix, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, name, print->notable);
+    fl_print_format("%[' in the file '%]", print->to, print->context, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, path, print->notable);
+    fl_print_format("%[' may only be one of '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_build_version_major_s, print->notable);
+    fl_print_format("%[', '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_build_version_minor_s, print->notable);
+    fl_print_format("%[', '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_build_version_micro_s, print->notable);
+    fl_print_format("%[', or '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_build_version_nano_s, print->notable);
+    fl_print_format("%[', defaulting to '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, default_to, print->notable);
+    fl_print_format("%['.%]%r", print->to, print->context, print->context, f_string_eol_s);
+
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
index 97e02039fcff6946192892047f986d0b44860232..c386e7f636306bdffc645d89f8e52c69c03760ac 100644 (file)
@@ -19,12 +19,12 @@ extern "C" {
 /**
  * Print error message regarding two parameters contradicting and designating a default fallback parameter.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param symbol_1
  *   The symbol for the first parameter.
  * @param name_1
@@ -47,18 +47,18 @@ extern "C" {
  * @see fake_print_context_wrapped_parameters()
  */
 #ifndef _di_fake_build_print_warning_parameters_contradict_
-  extern f_status_t fake_build_print_warning_parameters_contradict(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t symbol_1, const f_string_static_t name_1, const f_string_static_t symbol_2, const f_string_static_t name_2, const f_string_static_t symbol_3, const f_string_static_t name_3);
+  extern f_status_t fake_build_print_warning_parameters_contradict(fl_print_t * const print, const f_string_static_t symbol_1, const f_string_static_t name_1, const f_string_static_t symbol_2, const f_string_static_t name_2, const f_string_static_t symbol_3, const f_string_static_t name_3);
 #endif // _di_fake_build_print_warning_parameters_contradict_
 
 /**
  * Print warning message that the setting may only be from a specific set of allowed boolean values.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name
  *   The name for the setting.
  * @param path
@@ -77,18 +77,18 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_build_print_warning_setting_boolean_may_only_be_
-  extern f_status_t fake_build_print_warning_setting_boolean_may_only_be(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to);
+  extern f_status_t fake_build_print_warning_setting_boolean_may_only_be(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to);
 #endif // _di_fake_build_print_warning_setting_boolean_may_only_be_
 
 /**
  * Print warning message regarding two parameters being both false when using a given language.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name_1
  *   The name for the first setting.
  * @param name_2
@@ -105,18 +105,18 @@ extern "C" {
  * @see fake_print_context_wrapped_parameters()
  */
 #ifndef _di_fake_build_print_error_settings_both_cannot_using_language_
-  extern f_status_t fake_build_print_warning_setting_both_cannot_when_language(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name_1, const f_string_static_t name_2, const f_string_static_t name_3);
+  extern f_status_t fake_build_print_warning_setting_both_cannot_when_language(fl_print_t * const print, const f_string_static_t name_1, const f_string_static_t name_2, const f_string_static_t name_3);
 #endif // _di_fake_build_print_error_settings_both_cannot_using_language_
 
 /**
  * Print warning message that the setting may only be from a specific set of allowed language values.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name
  *   The name for the setting.
  * @param path
@@ -133,18 +133,18 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_build_print_warning_setting_language_may_only_be_
-  extern f_status_t fake_build_print_warning_setting_language_may_only_be(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to);
+  extern f_status_t fake_build_print_warning_setting_language_may_only_be(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to);
 #endif // _di_fake_build_print_warning_setting_language_may_only_be_
 
 /**
  * Print warning message regarding two parameters being both false when using a given language.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name_1
  *   The name for the first setting.
  * @param name_2
@@ -159,18 +159,18 @@ extern "C" {
  * @see fake_print_context_wrapped_parameters()
  */
 #ifndef _di_fake_build_print_warning_setting_required_default_to_
-  f_status_t fake_build_print_warning_setting_required_default_to(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to);
+  f_status_t fake_build_print_warning_setting_required_default_to(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to);
 #endif // _di_fake_build_print_warning_setting_required_default_to_
 
 /**
  * Print warning message that the setting may only be from a specific set of allowed version values.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name
  *   The name for the setting.
  * @param path
@@ -187,7 +187,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_build_print_warning_setting_version_may_only_be_
-  extern f_status_t fake_build_print_warning_setting_version_may_only_be(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to);
+  extern f_status_t fake_build_print_warning_setting_version_may_only_be(fl_print_t * const print, const f_string_static_t name, const f_string_static_t path, const f_string_static_t default_to);
 #endif // _di_fake_build_print_warning_setting_version_may_only_be_
 
 #ifdef __cplusplus
index f96782a9e528ac7995fa1d4af14c4fe2e5565f54..a28c618223fb43e0a22f1be5723bc9f0b7168c78 100644 (file)
@@ -7,9 +7,9 @@ extern "C" {
 #ifndef _di_fake_build_program_script_
   int fake_build_program_script(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting || !data_build) return 0;
-    if (data->setting->state.status == F_child) return data->program->child;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
+    if (!data || !data->main || !data_build) return 0;
+    if (data->main->setting.state.status == F_child) return data->main->program.child;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
 
     fake_build_touch(data, file_stage);
 
@@ -20,19 +20,19 @@ extern "C" {
 #ifndef _di_fake_build_program_shared_
   int fake_build_program_shared(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting || !data_build) return 0;
-    if (data->setting->state.status == F_child) return data->program->child;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
+    if (!data || !data->main || !data_build) return 0;
+    if (data->main->setting.state.status == F_child) return data->main->program.child;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
     if (!data_build->setting.build_sources_program.used && !data_build->setting.build_sources_program_shared.used) return 0;
 
-    fake_build_print_compile_program_shared(data->setting, data->program->message);
+    fake_build_print_compile_program_shared(&data->main->program.message);
 
     f_string_dynamics_t arguments = f_string_dynamics_t_initialize;
 
     fake_build_objects_add(data, data_build, &data->path_build_objects_shared, &data_build->setting.build_objects_program, &data_build->setting.build_objects_program_shared, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fake_build_objects_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fake_build_objects_add));
 
       f_string_dynamics_resize(0, &arguments);
 
@@ -41,15 +41,15 @@ extern "C" {
 
     fake_build_sources_add(data, data_build, &data_build->setting.build_sources_program, &data_build->setting.build_sources_program_shared, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fake_build_sources_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fake_build_sources_add));
 
       f_string_dynamics_resize(0, &arguments);
 
       return 0;
     }
 
-    if (F_status_is_error_not(data->setting->state.status)) {
+    if (F_status_is_error_not(data->main->setting.state.status)) {
       f_string_static_t parameter_file_name_path = f_string_static_t_initialize;
       parameter_file_name_path.used = data->path_build_programs_shared.used + data_build->setting.build_name.used;
 
@@ -69,13 +69,13 @@ extern "C" {
 
         if (!values[i].used) continue;
 
-        data->setting->state.status = fll_execute_arguments_add(values[i], &arguments);
-        if (F_status_is_error(data->setting->state.status)) break;
+        data->main->setting.state.status = fll_execute_arguments_add(values[i], &arguments);
+        if (F_status_is_error(data->main->setting.state.status)) break;
       } // for
     }
 
     // If project-specific library sources exist, then the -lbuild_name needs to be added to the arguments.
-    if (F_status_is_error_not(data->setting->state.status) && data_build->setting.build_sources_library.used) {
+    if (F_status_is_error_not(data->main->setting.state.status) && data_build->setting.build_sources_library.used) {
       f_string_static_t link_project_library = f_string_static_t_initialize;
       link_project_library.used = fake_build_parameter_library_link_file_s.used + data_build->setting.build_name.used;
 
@@ -86,13 +86,13 @@ extern "C" {
       memcpy(link_project_library_string, fake_build_parameter_library_link_file_s.string, sizeof(f_char_t) * fake_build_parameter_library_link_file_s.used);
       memcpy(link_project_library_string + fake_build_parameter_library_link_file_s.used, data_build->setting.build_name.string, sizeof(f_char_t) * data_build->setting.build_name.used);
 
-      data->setting->state.status = fll_execute_arguments_add(link_project_library, &arguments);
+      data->main->setting.state.status = fll_execute_arguments_add(link_project_library, &arguments);
     }
 
     fake_build_arguments_standard_add(data, data_build, F_true, fake_build_type_program_e, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fll_execute_arguments_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fll_execute_arguments_add));
 
       macro_f_string_dynamics_t_delete_simple(arguments);
 
@@ -103,7 +103,7 @@ extern "C" {
 
     macro_f_string_dynamics_t_delete_simple(arguments);
 
-    if (F_status_is_error_not(data->setting->state.status) && data->setting->state.status != F_child) {
+    if (F_status_is_error_not(data->main->setting.state.status) && data->main->setting.state.status != F_child) {
       fake_build_touch(data, file_stage);
     }
 
@@ -114,19 +114,19 @@ extern "C" {
 #ifndef _di_fake_build_program_static_
   int fake_build_program_static(fake_data_t * const data, fake_build_data_t * const data_build, const f_mode_t mode, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting || !data_build) return 0;
-    if (data->setting->state.status == F_child) return data->program->child;
-    if (F_status_is_error(data->setting->state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
+    if (!data || !data->main || !data_build) return 0;
+    if (data->main->setting.state.status == F_child) return data->main->program.child;
+    if (F_status_is_error(data->main->setting.state.status) || f_file_exists(file_stage, F_true) == F_true) return 0;
     if (!data_build->setting.build_sources_program.used && !data_build->setting.build_sources_program_static.used) return 0;
 
-    fake_build_print_compile_program_static(data->setting, data->program->message);
+    fake_build_print_compile_program_static(&data->main->program.message);
 
     f_string_dynamics_t arguments = f_string_dynamics_t_initialize;
 
     fake_build_objects_add(data, data_build, &data->path_build_objects_static, &data_build->setting.build_objects_program, &data_build->setting.build_objects_program_static, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fake_build_objects_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fake_build_objects_add));
 
       f_string_dynamics_resize(0, &arguments);
 
@@ -135,15 +135,15 @@ extern "C" {
 
     fake_build_sources_add(data, data_build, &data_build->setting.build_sources_program, &data_build->setting.build_sources_program_static, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fake_build_sources_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fake_build_sources_add));
 
       f_string_dynamics_resize(0, &arguments);
 
       return 0;
     }
 
-    if (F_status_is_error_not(data->setting->state.status)) {
+    if (F_status_is_error_not(data->main->setting.state.status)) {
       f_string_static_t source_library = f_string_static_t_initialize;
       source_library.used = data->path_build_libraries_static.used + fake_build_parameter_library_name_prefix_s.used + data_build->setting.build_name.used + fake_build_parameter_library_name_suffix_static_s.used;
 
@@ -188,15 +188,15 @@ extern "C" {
 
         if (!values[i].used) continue;
 
-        data->setting->state.status = fll_execute_arguments_add(values[i], &arguments);
-        if (F_status_is_error(data->setting->state.status)) break;
+        data->main->setting.state.status = fll_execute_arguments_add(values[i], &arguments);
+        if (F_status_is_error(data->main->setting.state.status)) break;
       } // for
     }
 
     fake_build_arguments_standard_add(data, data_build, F_false, fake_build_type_program_e, &arguments);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data->program->error, macro_fake_f(fll_execute_arguments_add));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data->main->program.error, macro_fake_f(fll_execute_arguments_add));
 
       macro_f_string_dynamics_t_delete_simple(arguments);
 
@@ -207,7 +207,7 @@ extern "C" {
 
     macro_f_string_dynamics_t_delete_simple(arguments);
 
-    if (F_status_is_error_not(data->setting->state.status) && data->setting->state.status != F_child) {
+    if (F_status_is_error_not(data->main->setting.state.status) && data->main->setting.state.status != F_child) {
       fake_build_touch(data, file_stage);
     }
 
index d36ad0b8cfe5e2eec92c29bffe444eefac912584..0fa8fa25d148929b10839da09060e6202874895a 100644 (file)
@@ -28,7 +28,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: fake_build_touch().
@@ -55,7 +55,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: fll_execute_arguments_add().
@@ -92,7 +92,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: fll_execute_arguments_add().
index fbf8a6526b3719b22c72dd3ad5362b1f150da57b..2cf47c5252692ef6c649817863f7bcee58e7b85d 100644 (file)
@@ -7,8 +7,8 @@ extern "C" {
 #ifndef _di_fake_build_skeleton_
   void fake_build_skeleton(fake_data_t * const data, fake_build_data_t * const data_build, const mode_t mode, const f_string_static_t file_stage) {
 
-    if (!data || !data->program || !data->setting || !data_build) return;
-    if (F_status_is_error(data->setting->state.status) || data->setting->state.status == F_child) return;
+    if (!data || !data->main || !data_build) return;
+    if (F_status_is_error(data->main->setting.state.status) || data->main->setting.state.status == F_child) return;
     if (f_file_exists(file_stage, F_true) == F_true) return;
 
     f_string_static_t path_headers = f_string_static_t_initialize;
@@ -49,7 +49,7 @@ extern "C" {
       path_headers,
     };
 
-    fake_build_print_skeleton_build_base(data->setting, data->program->message);
+    fake_build_print_message_skeleton_build_base(&data->main->program.message);
 
     bool created = F_false;
     f_array_length_t j = 0;
@@ -64,11 +64,11 @@ extern "C" {
 
         if (f_path_separator_s.used && directorys[i].string[j] != f_path_separator_s.string[0]) continue;
 
-        if (!((++data->program->signal_check) % fake_signal_check_d)) {
-          if (fll_program_standard_signal_received(data->program)) {
-            fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+        if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+          if (fll_program_standard_signal_received(&data->main->program)) {
+            fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-            data->setting->state.status = F_status_set_error(F_interrupt);
+            data->main->setting.state.status = F_status_set_error(F_interrupt);
 
             return;
           }
@@ -76,58 +76,58 @@ extern "C" {
 
         directorys[i].string[j] = 0; // @fixme this is an error because static strings might be in use.
 
-        data->setting->state.status = f_directory_exists(directorys[i]);
+        data->main->setting.state.status = f_directory_exists(directorys[i]);
 
-        if (F_status_is_error(data->setting->state.status) || data->setting->state.status == F_false) {
+        if (F_status_is_error(data->main->setting.state.status) || data->main->setting.state.status == F_false) {
           directorys[i].string[j] = f_path_separator_s.string[0];
 
           break;
         }
 
-        if (data->setting->state.status == F_file_found_not) {
-          data->setting->state.status = f_directory_create(directorys[i], mode);
+        if (data->main->setting.state.status == F_file_found_not) {
+          data->main->setting.state.status = f_directory_create(directorys[i], mode);
 
           created = F_true;
         }
 
         directorys[i].string[j] = f_path_separator_s.string[0];
 
-        if (F_status_is_error(data->setting->state.status)) break;
+        if (F_status_is_error(data->main->setting.state.status)) break;
       } // for
 
-      if (F_status_is_fine(data->setting->state.status) && directorys[i].used && f_path_separator_s.used && directorys[i].string[directorys[i].used - 1] != f_path_separator_s.string[0]) {
-        data->setting->state.status = f_directory_exists(directorys[i]);
+      if (F_status_is_fine(data->main->setting.state.status) && directorys[i].used && f_path_separator_s.used && directorys[i].string[directorys[i].used - 1] != f_path_separator_s.string[0]) {
+        data->main->setting.state.status = f_directory_exists(directorys[i]);
 
-        if (F_status_is_error_not(data->setting->state.status)) {
-          if (data->setting->state.status == F_false) {
-            data->setting->state.status = f_directory_create(directorys[i], mode);
+        if (F_status_is_error_not(data->main->setting.state.status)) {
+          if (data->main->setting.state.status == F_false) {
+            data->main->setting.state.status = f_directory_create(directorys[i], mode);
 
             created = F_true;
           }
         }
       }
 
-      if (F_status_is_error(data->setting->state.status)) {
-        if (F_status_set_fine(data->setting->state.status) == F_file_found) {
-          data->setting->state.status = F_none;
+      if (F_status_is_error(data->main->setting.state.status)) {
+        if (F_status_set_fine(data->main->setting.state.status) == F_file_found) {
+          data->main->setting.state.status = F_none;
 
           continue;
         }
 
-        fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_directory_create), directorys[i], f_file_operation_create_s, fll_error_file_type_directory_e);
+        fake_print_error_file(&data->main->program.error, macro_fake_f(f_directory_create), directorys[i], f_file_operation_create_s, fll_error_file_type_directory_e);
 
         return;
       }
 
       if (created) {
-        fake_build_print_verbose_create_directory(data->setting, data->program->message, directorys[i]);
+        fake_build_print_verbose_create_directory(&data->main->program.message, directorys[i]);
       }
     } // for
 
     fake_build_touch(data, file_stage);
 
-    if (F_status_is_error_not(data->setting->state.status)) {
-      data->setting->state.status = F_none;
+    if (F_status_is_error_not(data->main->setting.state.status)) {
+      data->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_build_skeleton_
index 8816ce18ddddb062624b5808461365430b066c0d..8cf47b174b449a14e78b1ca4a843aa048bce6267 100644 (file)
@@ -22,7 +22,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
index 22c66f54a0ddb9a43a56f335b1ac244accf4015c..815b97cfd73c7bc2fe3b4319b153da5f5895145b 100644 (file)
@@ -7,40 +7,30 @@ extern "C" {
 #ifndef _di_fake_clean_operate_
   void fake_clean_operate(fake_data_t * const data) {
 
-    if (!data || !data->program || !data->setting) return;
+    if (!data || !data->main) return;
 
-    if (data->program->message.verbosity != f_console_verbosity_quiet_e && data->program->message.verbosity != f_console_verbosity_error_e) {
-      f_file_stream_lock(data->program->message.to);
+    fake_print_message_delete_all_files(&data->main->program.message);
 
-      fl_print_format("%[Deleting all files within build directory '%]", data->program->message.to, data->program->context.set.important, data->program->context.set.important);
-      fl_print_format("%[%Q%]", data->program->message.to, data->program->context.set.notable, data->setting->build, data->program->context.set.notable);
-      fl_print_format("%['.%]%r", data->program->message.to, data->program->context.set.important, data->program->context.set.important, f_string_eol_s);
+    data->main->setting.state.status = F_none;
 
-      f_file_stream_unlock(data->program->message.to);
-    }
-
-    data->setting->state.status = F_none;
-
-    if (data->program->error.verbosity >= f_console_verbosity_verbose_e) {
-      data->setting->state.status = f_directory_remove_custom(data->setting->build, F_directory_max_descriptors_d, F_true, fake_clean_remove_recursively_verbosely);
+    if (data->main->program.error.verbosity >= f_console_verbosity_verbose_e) {
+      data->main->setting.state.status = f_directory_remove_custom(data->main->setting.build, F_directory_max_descriptors_d, F_true, fake_clean_remove_recursively_verbosely);
     }
     else {
-      data->setting->state.status = f_directory_remove(data->setting->build, F_directory_max_descriptors_d, F_true);
+      data->main->setting.state.status = f_directory_remove(data->main->setting.build, F_directory_max_descriptors_d, F_true);
     }
 
-    if (F_status_set_fine(data->setting->state.status) == F_file_found_not || F_status_set_fine(data->setting->state.status) == F_directory) {
-      if (data->program->error.verbosity >= f_console_verbosity_verbose_e) {
-        fll_print_format("The build directory '%[%Q%]' does not exist.%r", data->program->warning.to, data->program->context.set.notable, data->setting->build, data->program->context.set.notable, f_string_eol_s);
-      }
+    if (F_status_set_fine(data->main->setting.state.status) == F_file_found_not || F_status_set_fine(data->main->setting.state.status) == F_directory) {
+      fake_print_warning_build_directory_not_directory(&data->main->program.warning, data->main->setting.build);
 
-      data->setting->state.status = F_none;
+      data->main->setting.state.status = F_none;
     }
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_directory_remove), data->setting->build, f_file_operation_delete_s, fll_error_file_type_directory_e);
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error_file(&data->main->program.error, macro_fake_f(f_directory_remove), data->main->setting.build, f_file_operation_delete_s, fll_error_file_type_directory_e);
     }
     else {
-      data->setting->state.status = F_none;
+      data->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_clean_operate_
index 29fbb77c1c028d6784930b886465027ac365dcb1..ee3a16eded257d78dab1510ce5bd5950ac6a2255 100644 (file)
@@ -22,7 +22,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
index 18935981c6ae37ed22da4ce36c6a4582598cdbef..a2bdff11109d4bd73554c0dab3b033794328240d 100644 (file)
@@ -16,8 +16,7 @@ extern "C" {
     {
       const uint16_t step_original = main->setting.state.step_small;
       fake_data_t data = fake_data_t_initialize;
-      data.program = &main->program;
-      data.setting = &main->setting;
+      data.main = main;
 
       main->setting.state.step_small = 4;
 
@@ -265,7 +264,7 @@ extern "C" {
                       fll_print_dynamic_raw(f_string_eol_s, main->program.message.to);
                     }
 
-                    if (fake_print_error_fallback(&main->setting, main->program.error, macro_fake_f(f_utf_is_word_dash_plus)) == F_false) {
+                    if (fake_print_error_fallback(&main->program.error, macro_fake_f(f_utf_is_word_dash_plus)) == F_false) {
                       fll_program_print_error_parameter_process(main->program.error, f_console_symbol_long_normal_s, names[i]);
                     }
 
@@ -279,7 +278,7 @@ extern "C" {
                       fll_print_dynamic_raw(f_string_eol_s, main->program.message.to);
                     }
 
-                    fake_print_error_parameter_not_word(&main->setting, main->program.error, f_console_symbol_long_normal_s, names[i], main->program.parameters.arguments.array[index]);
+                    fake_print_error_parameter_not_word(&main->program.error, f_console_symbol_long_normal_s, names[i], main->program.parameters.arguments.array[index]);
 
                     return;
                   }
@@ -295,7 +294,7 @@ extern "C" {
                   }
 
                   if (main->program.error.verbosity > f_console_verbosity_quiet_e) {
-                    if (fake_print_error_fallback(&main->setting, main->program.error, macro_fake_f(f_path_directory_cleanup)) == F_false) {
+                    if (fake_print_error_fallback(&main->program.error, macro_fake_f(f_path_directory_cleanup)) == F_false) {
                       fll_program_print_error_parameter_process(main->program.error, f_console_symbol_long_normal_s, names[i]);
                     }
                   }
@@ -332,7 +331,7 @@ extern "C" {
                   fll_print_dynamic_raw(f_string_eol_s, main->program.message.to);
                 }
 
-                fake_print_error_parameter_not_empty(&main->setting, main->program.error, f_console_symbol_long_normal_s, names[i], main->program.parameters.arguments.array[index]);
+                fake_print_error_parameter_not_empty(&main->program.error, f_console_symbol_long_normal_s, names[i], main->program.parameters.arguments.array[index]);
 
                 return;
               }
@@ -407,7 +406,7 @@ extern "C" {
               }
 
               if (main->program.error.verbosity > f_console_verbosity_quiet_e) {
-                if (fake_print_error_fallback(&main->setting, main->program.error, macro_fake_f(fll_program_parameter_additional_rip)) == F_false) {
+                if (fake_print_error_fallback(&main->program.error, macro_fake_f(fll_program_parameter_additional_rip)) == F_false) {
                   fll_program_print_error_parameter_process(main->program.error, f_console_symbol_long_normal_s, names[i]);
                 }
               }
@@ -428,7 +427,7 @@ extern "C" {
                   }
 
                   // @todo fix this to print an error about the actual invalid character so that it can be investigated.
-                  if (fake_print_error_fallback(&main->setting, main->program.error, macro_fake_f(f_utf_is_word_dash_plus)) == F_false) {
+                  if (fake_print_error_fallback(&main->program.error, macro_fake_f(f_utf_is_word_dash_plus)) == F_false) {
                     fll_program_print_error_parameter_process(main->program.error, f_console_symbol_long_normal_s, names[i]);
                   }
 
@@ -442,7 +441,7 @@ extern "C" {
                     fll_print_dynamic_raw(f_string_eol_s, main->program.message.to);
                   }
 
-                  fake_print_error_parameter_not_word(&main->setting, main->program.error, f_console_symbol_long_normal_s, names[i], main->program.parameters.arguments.array[i]);
+                  fake_print_error_parameter_not_word(&main->program.error, f_console_symbol_long_normal_s, names[i], main->program.parameters.arguments.array[i]);
 
                   return;
                 }
@@ -491,38 +490,38 @@ extern "C" {
     f_console_parameters_t * const parameters = (f_console_parameters_t * const) void_parameters;
     fake_data_t * const data = (fake_data_t * const) void_data;
 
-    if (!data->setting) return;
+    if (!data->main) return;
 
-    parameter_state->state->status = f_uint8s_increase(parameter_state->state->step_small, &data->setting->operations);
+    parameter_state->state->status = f_uint8s_increase(parameter_state->state->step_small, &data->main->setting.operations);
 
     if (F_status_is_error(parameter_state->state->status)) {
-      fake_print_error(&data->program->error, macro_fake_f(f_uint8s_increase));
+      fake_print_error(&data->main->program.error, macro_fake_f(f_uint8s_increase));
 
       return;
     }
 
     switch (parameter_state->at) {
       case fake_parameter_operation_build_e:
-        data->setting->operations.array[data->setting->operations.used++] = fake_operation_build_e;
-        data->setting->flag |= fake_main_flag_operation_build_e;
+        data->main->setting.operations.array[data->main->setting.operations.used++] = fake_operation_build_e;
+        data->main->setting.flag |= fake_main_flag_operation_build_e;
 
         break;
 
       case fake_parameter_operation_clean_e:
-        data->setting->operations.array[data->setting->operations.used++] = fake_operation_clean_e;
-        data->setting->flag |= fake_main_flag_operation_clean_e;
+        data->main->setting.operations.array[data->main->setting.operations.used++] = fake_operation_clean_e;
+        data->main->setting.flag |= fake_main_flag_operation_clean_e;
 
         break;
 
       case fake_parameter_operation_make_e:
-        data->setting->operations.array[data->setting->operations.used++] = fake_operation_make_e;
-        data->setting->flag |= fake_main_flag_operation_make_e;
+        data->main->setting.operations.array[data->main->setting.operations.used++] = fake_operation_make_e;
+        data->main->setting.flag |= fake_main_flag_operation_make_e;
 
         break;
 
       case fake_parameter_operation_skeleton_e:
-        data->setting->operations.array[data->setting->operations.used++] = fake_operation_skeleton_e;
-        data->setting->flag |= fake_main_flag_operation_skeleton_e;
+        data->main->setting.operations.array[data->main->setting.operations.used++] = fake_operation_skeleton_e;
+        data->main->setting.flag |= fake_main_flag_operation_skeleton_e;
 
         break;
 
index 91027a72327075db63bead162e38ae688adc9408..b2a503ed41e75451adb375c82c3a32caa396be72 100644 (file)
@@ -140,9 +140,6 @@ extern "C" {
  *
  * operation: A code representing the currrent operation.
  *
- * program: The main program data.
- * setting: The settings data.
- *
  * path_build:                  The build path.
  * path_build_documentation:    The build documentation path.
  * path_build_documents:        The build documents path.
@@ -188,14 +185,13 @@ extern "C" {
  * file_data_build_settings:     The settings build file data.
  *
  * file_documents_readme: The documents readme file data.
+ *
+ * main: The main program and settings data.
  */
 #ifndef _di_fake_data_t_
   typedef struct {
     uint8_t operation;
 
-    fll_program_data_t *program;
-    fake_setting_t *setting;
-
     f_string_dynamic_t path_build;
     f_string_dynamic_t path_build_documentation;
     f_string_dynamic_t path_build_documents;
@@ -241,13 +237,13 @@ extern "C" {
     f_string_dynamic_t file_data_build_settings;
 
     f_string_dynamic_t file_documents_readme;
+
+    fake_main_t *main;
   } fake_data_t;
 
   #define fake_data_t_initialize \
     { \
       0, \
-      0, \
-      0, \
       f_string_dynamic_t_initialize, \
       f_string_dynamic_t_initialize, \
       f_string_dynamic_t_initialize, \
@@ -287,6 +283,7 @@ extern "C" {
       f_string_dynamic_t_initialize, \
       f_string_dynamic_t_initialize, \
       f_string_dynamic_t_initialize, \
+      0, \
     }
 #endif // _di_fake_main_t_
 
@@ -723,7 +720,6 @@ extern "C" {
  * parameter_option: A set of parameters available for IKI option substitution.
  * parameter_value:  A set of parameters available for IKI value substitution.
  * path:             The path to the Fakefile.
- * error:            The error output print structure.
  * fakefile:         The loaded Fakefile.
  * buffer:           A buffer used during processing.
  * cache_1:          An additional buffer for caching purposes.
@@ -732,9 +728,8 @@ extern "C" {
  * cache_arguments:  A cache for expanded arguments.
  * cache_iki:        A cache for IKI data.
  * id_main:          Index of the "main" Section.
- * main:             The main program data.
+ * main:             The program and settings data.
  * data:             The Fake make program data.
- * setting:          The settings data.
  */
 #ifndef _di_fake_make_data_t_
   typedef struct {
@@ -761,9 +756,8 @@ extern "C" {
 
     f_array_length_t id_main;
 
-    fll_program_data_t *program;
+    fake_main_t *main;
     fake_data_t *data;
-    fake_setting_t *setting;
   } fake_make_data_t;
 
   #define fake_make_data_t_initialize { \
@@ -785,7 +779,6 @@ extern "C" {
     0, \
     0, \
     0, \
-    0, \
   }
 #endif // _di_fake_make_data_t_
 
@@ -831,7 +824,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This does not alter data.settings.state.status.
+ *   This does not alter data.main.settings.state.status.
  */
 #ifndef _di_fake_data_delete_
   extern void fake_data_delete(fake_data_t * const data);
@@ -843,7 +836,7 @@ extern "C" {
  * @param data_make
  *   The make data.
  *
- *   This does not alter data_make.setting.state.status.
+ *   This does not alter data_make.main.setting.state.status.
  */
 #ifndef _di_fake_make_data_delete_
   extern void fake_make_data_delete(fake_make_data_t * const data_make);
@@ -855,7 +848,7 @@ extern "C" {
  * @param setting_make
  *   The make setting data.
  *
- *   This does not alter data_make.setting.state.status.
+ *   This does not alter data_make.main.setting.state.status.
  */
 #ifndef _di_fake_make_setting_delete_
   extern void fake_make_setting_delete(fake_make_setting_t * const setting_make);
index 0716d4cb6f7a71a63b98dedb82242ccff0ef3a85..c0503d3133ee56b817b76b06efcfa8187731ec8a 100644 (file)
@@ -24,7 +24,7 @@ extern "C" {
     main->setting.state.status = F_none;
 
     if (main->setting.flag & fake_main_flag_help_e) {
-      fake_print_help(&main->setting, main->program.message);
+      fake_print_message_help(&main->program.message);
 
       if ((main->setting.flag & fake_main_flag_print_last_e) && main->program.message.verbosity > f_console_verbosity_error_e) {
         fll_print_dynamic_raw(f_string_eol_s, main->program.message.to);
@@ -56,7 +56,7 @@ extern "C" {
     if ((main->setting.flag & fake_main_flag_operation_build_e) && (main->setting.flag & fake_main_flag_operation_make_e)) {
       main->setting.state.status = F_status_set_error(F_parameter);
 
-      fake_print_error_parameter_operation_not_with(&main->setting, main->program.error, fake_other_operation_build_s, fake_other_operation_make_s);
+      fake_print_error_parameter_operation_not_with(&main->program.error, fake_other_operation_build_s, fake_other_operation_make_s);
 
       if ((main->setting.flag & fake_main_flag_print_last_e) && main->program.message.verbosity > f_console_verbosity_error_e) {
         fll_print_dynamic_raw(f_string_eol_s, main->program.message.to);
@@ -66,8 +66,7 @@ extern "C" {
     }
 
     fake_data_t data = fake_data_t_initialize;
-    data.program = &main->program;
-    data.setting = &main->setting;
+    data.main = main;
 
     fake_path_generate(&data);
 
@@ -131,8 +130,7 @@ extern "C" {
 
                 if (F_status_is_error(main->setting.state.status)) {
                   fake_print_error_file(
-                    &main->setting,
-                    main->program.error,
+                    &main->program.error,
                     macro_fake_f(f_file_is),
                     (main->setting.operations.array[i] == fake_operation_build_e)
                       ? data.file_data_build_settings
@@ -239,17 +237,17 @@ extern "C" {
 
     if (F_status_is_error(main->setting.state.status)) {
       if (F_status_set_fine(main->setting.state.status) == F_interrupt) {
-        fake_print_operation_cancelled(&main->setting, main->program.message, data.operation);
+        fake_print_operation_cancelled(&main->program.message, data.operation);
       }
       else {
-        fake_print_error_failure_operation(&main->setting, main->program.error, data.operation);
+        fake_print_error_failure_operation(&main->program.error, data.operation);
       }
     }
     else if (main->setting.state.status != F_child) {
       if (F_status_is_error_not(main->setting.state.status)) {
         main->setting.state.status = F_none;
 
-        fake_print_operation_all_complete(&main->setting, main->program.message);
+        fake_print_operation_all_complete(&main->program.message);
       }
     }
 
@@ -264,25 +262,25 @@ extern "C" {
 #ifndef _di_fake_execute_
   int fake_execute(fake_data_t * const data, const f_string_maps_t environment, const f_string_static_t program, const f_string_statics_t arguments) {
 
-    if (!data || !data->program || !data->setting) return 1;
-    if (F_status_is_error(data->setting->state.status)) return 1;
+    if (!data || !data->main) return 1;
+    if (F_status_is_error(data->main->setting.state.status)) return 1;
 
-    if (data->program->error.verbosity >= f_console_verbosity_verbose_e) {
-      f_file_stream_lock(data->program->message.to);
+    if (data->main->program.error.verbosity >= f_console_verbosity_verbose_e) {
+      f_file_stream_lock(data->main->program.message.to);
 
-      f_print_dynamic(program, data->program->message.to);
+      f_print_dynamic(program, data->main->program.message.to);
 
       for (f_array_length_t i = 0; i < arguments.used; ++i) {
 
         if (!arguments.array[i].used) continue;
 
-        fl_print_format(" %Q", data->program->message.to, arguments.array[i]);
+        fl_print_format(" %Q", data->main->program.message.to, arguments.array[i]);
       } // for
 
-      f_print_dynamic_raw(f_string_eol_s, data->program->message.to);
+      f_print_dynamic_raw(f_string_eol_s, data->main->program.message.to);
 
-      f_file_stream_flush(data->program->message.to);
-      f_file_stream_unlock(data->program->message.to);
+      f_file_stream_flush(data->main->program.message.to);
+      f_file_stream_unlock(data->main->program.message.to);
     }
 
     int return_code = 0;
@@ -296,35 +294,35 @@ extern "C" {
 
       fl_execute_parameter_t parameter = macro_fl_execute_parameter_t_initialize(0, 0, &environment, &signals, 0);
 
-      data->setting->state.status = fll_execute_program(program, arguments, &parameter, 0, (void *) &return_code);
+      data->main->setting.state.status = fll_execute_program(program, arguments, &parameter, 0, (void *) &return_code);
 
-      if (!((++data->program->signal_check) % fake_signal_check_d)) {
-        if (fll_program_standard_signal_received(data->program)) {
-          fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+      if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+        if (fll_program_standard_signal_received(&data->main->program)) {
+          fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-          data->setting->state.status = F_status_set_error(F_interrupt);
+          data->main->setting.state.status = F_status_set_error(F_interrupt);
 
           return 0;
         }
       }
 
-      if (data->setting->state.status == F_child) return return_code;
+      if (data->main->setting.state.status == F_child) return return_code;
     }
     else {
-      data->setting->state.status = F_status_set_error(F_file_found_not);
+      data->main->setting.state.status = F_status_set_error(F_file_found_not);
     }
 
     if (return_code != 0) {
-      data->setting->state.status = F_status_set_error(F_failure);
+      data->main->setting.state.status = F_status_set_error(F_failure);
     }
-    else if (F_status_is_error(data->setting->state.status)) {
+    else if (F_status_is_error(data->main->setting.state.status)) {
       return_code = 1;
 
-      if (F_status_set_fine(data->setting->state.status) == F_file_found_not) {
-        fake_print_error_execute_program_not_found(data->setting, data->program->error, program);
+      if (F_status_set_fine(data->main->setting.state.status) == F_file_found_not) {
+        fake_print_error_execute_program_not_found(&data->main->program.error, program);
       }
       else {
-        fake_print_error(&data->program->error, macro_fake_f(fll_execute_program));
+        fake_print_error(&data->main->program.error, macro_fake_f(fll_execute_program));
       }
     }
 
@@ -335,32 +333,32 @@ extern "C" {
 #ifndef _di_fake_file_buffer_
   void fake_file_buffer(fake_data_t * const data, const f_string_static_t path_file, const bool required, f_string_dynamic_t * const buffer) {
 
-    if (!((++data->program->signal_check) % fake_signal_check_d)) {
-      if (fll_program_standard_signal_received(data->program)) {
-        fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+    if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+      if (fll_program_standard_signal_received(&data->main->program)) {
+        fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-        data->setting->state.status = F_status_set_error(F_interrupt);
+        data->main->setting.state.status = F_status_set_error(F_interrupt);
 
         return;
       }
     }
 
-    data->setting->state.status = f_file_exists(path_file, F_true);
+    data->main->setting.state.status = f_file_exists(path_file, F_true);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_exists), path_file, f_file_operation_find_s, fll_error_file_type_file_e);
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_exists), path_file, f_file_operation_find_s, fll_error_file_type_file_e);
 
       return;
     }
 
-    if (data->setting->state.status == F_true) {
+    if (data->main->setting.state.status == F_true) {
       {
         off_t size_file = 0;
 
-        data->setting->state.status = f_file_size(path_file, F_true, &size_file);
+        data->main->setting.state.status = f_file_size(path_file, F_true, &size_file);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_size), path_file, f_file_operation_read_s, fll_error_file_type_file_e);
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_size), path_file, f_file_operation_read_s, fll_error_file_type_file_e);
 
           return;
         }
@@ -369,46 +367,46 @@ extern "C" {
           size_file = fake_max_initial_buffer_d;
         }
 
-        data->setting->state.status = f_string_dynamic_increase_by(size_file, buffer);
+        data->main->setting.state.status = f_string_dynamic_increase_by(size_file, buffer);
 
-        if (F_status_is_error(data->setting->state.status)) {
+        if (F_status_is_error(data->main->setting.state.status)) {
           const f_string_static_t message = macro_f_string_static_t_initialize("allocate buffer size for", 0, 24);
 
-          fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_string_dynamic_increase_by), path_file, message, fll_error_file_type_file_e);
+          fake_print_error_file(&data->main->program.error, macro_fake_f(f_string_dynamic_increase_by), path_file, message, fll_error_file_type_file_e);
 
           return;
         }
 
-        data->setting->state.status = F_true;
+        data->main->setting.state.status = F_true;
       }
 
       f_file_t file = f_file_t_initialize;
 
-      data->setting->state.status = f_file_stream_open(path_file, f_string_empty_s, &file);
+      data->main->setting.state.status = f_file_stream_open(path_file, f_string_empty_s, &file);
 
-      if (F_status_is_error(data->setting->state.status)) {
-        fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_stream_open), path_file, f_file_operation_open_s, fll_error_file_type_file_e);
+      if (F_status_is_error(data->main->setting.state.status)) {
+        fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_stream_open), path_file, f_file_operation_open_s, fll_error_file_type_file_e);
 
         return;
       }
 
-      data->setting->state.status = f_file_stream_read(file, buffer);
+      data->main->setting.state.status = f_file_stream_read(file, buffer);
 
       f_file_stream_flush(file);
       f_file_stream_close(&file);
 
-      if (F_status_is_error(data->setting->state.status)) {
-        fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_read), path_file, f_file_operation_read_s, fll_error_file_type_file_e);
+      if (F_status_is_error(data->main->setting.state.status)) {
+        fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_read), path_file, f_file_operation_read_s, fll_error_file_type_file_e);
       }
       else {
-        data->setting->state.status = F_none;
+        data->main->setting.state.status = F_none;
       }
     }
     else {
       if (required) {
-        data->setting->state.status = F_status_set_error(F_file_found_not);
+        data->main->setting.state.status = F_status_set_error(F_file_found_not);
 
-        fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_exists), path_file, f_file_operation_find_s, fll_error_file_type_file_e);
+        fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_exists), path_file, f_file_operation_find_s, fll_error_file_type_file_e);
       }
     }
   }
@@ -417,7 +415,7 @@ extern "C" {
 #ifndef _di_fake_pipe_buffer_
   void fake_pipe_buffer(fake_data_t * const data, f_string_dynamic_t * const buffer) {
 
-    if (!data || !data->program || !data->setting || !buffer) return;
+    if (!data || !data->main || !buffer) return;
 
     f_file_t file = f_file_t_initialize;
 
@@ -425,11 +423,11 @@ extern "C" {
     file.stream = F_type_input_d;
     file.size_read = fake_allocation_pipe_d;
 
-    data->setting->state.status = f_string_dynamic_increase_by(fake_max_initial_buffer_d, buffer);
+    data->main->setting.state.status = f_string_dynamic_increase_by(fake_max_initial_buffer_d, buffer);
 
-    if (F_status_is_error(data->setting->state.status)) {
+    if (F_status_is_error(data->main->setting.state.status)) {
       const f_string_static_t message = macro_f_string_static_t_initialize("allocate buffer size for", 0, 24);
-      fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_string_dynamic_increase_by), f_string_ascii_minus_s, message, fll_error_file_type_file_e);
+      fake_print_error_file(&data->main->program.error, macro_fake_f(f_string_dynamic_increase_by), f_string_ascii_minus_s, message, fll_error_file_type_file_e);
 
       return;
     }
@@ -438,25 +436,25 @@ extern "C" {
     clearerr(F_type_input_d);
 
     do {
-      if (!((++data->program->signal_check) % fake_signal_check_d)) {
-        if (fll_program_standard_signal_received(data->program)) {
-          fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+      if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+        if (fll_program_standard_signal_received(&data->main->program)) {
+          fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-          data->setting->state.status = F_status_set_error(F_interrupt);
+          data->main->setting.state.status = F_status_set_error(F_interrupt);
 
           return;
         }
       }
 
-      data->setting->state.status = f_file_stream_read_block(file, buffer);
+      data->main->setting.state.status = f_file_stream_read_block(file, buffer);
 
-    } while (F_status_is_fine(data->setting->state.status) && data->setting->state.status != F_interrupt && data->setting->state.status != F_none_eof);
+    } while (F_status_is_fine(data->main->setting.state.status) && data->main->setting.state.status != F_interrupt && data->main->setting.state.status != F_none_eof);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_stream_read_block), f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_file_e);
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_stream_read_block), f_string_ascii_minus_s, f_file_operation_read_s, fll_error_file_type_file_e);
     }
     else {
-      data->setting->state.status = F_none;
+      data->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_pipe_buffer_
@@ -464,13 +462,13 @@ extern "C" {
 #ifndef _di_fake_validate_parameter_paths_
   void fake_validate_parameter_paths(fake_data_t * const data) {
 
-    if (!data || !data->program || !data->setting) return;
+    if (!data || !data->main) return;
 
-    if (!((++data->program->signal_check) % fake_signal_check_d)) {
-      if (fll_program_standard_signal_received(data->program)) {
-        fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+    if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+      if (fll_program_standard_signal_received(&data->main->program)) {
+        fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-        data->setting->state.status = F_status_set_error(F_interrupt);
+        data->main->setting.state.status = F_status_set_error(F_interrupt);
 
         return;
       }
@@ -486,17 +484,17 @@ extern "C" {
     };
 
     const f_string_dynamic_t values[] = {
-      data->setting->build,
-      data->setting->data,
-      data->setting->documents,
-      data->setting->licenses,
-      data->setting->sources,
-      data->setting->work,
+      data->main->setting.build,
+      data->main->setting.data,
+      data->main->setting.documents,
+      data->main->setting.licenses,
+      data->main->setting.sources,
+      data->main->setting.work,
     };
 
     uint8_t requireds[] = {
       F_false, // fake_long_build_s
-      (data->program->pipe & fll_program_data_pipe_input_e) ? F_false : F_true, // fake_long_data_s
+      (data->main->program.pipe & fll_program_data_pipe_input_e) ? F_false : F_true, // fake_long_data_s
       F_false, // fake_long_documents_s
       F_false, // fake_long_licenses_s
       F_false, // fake_long_sources_s
@@ -505,12 +503,12 @@ extern "C" {
 
     struct stat directory_stat;
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
 
     // Check only expected operations (fake_operation_clean_e and fake_operation_skeleton_e should not call this function).
     if (data->operation == fake_operation_make_e) {
-      if (data->program->parameters.array[fake_parameter_fakefile_e].result == f_console_result_none_e) {
-        if (data->setting->build.used && f_file_exists(data->setting->build, F_false) != F_true) {
+      if (data->main->program.parameters.array[fake_parameter_fakefile_e].result == f_console_result_none_e) {
+        if (data->main->setting.build.used && f_file_exists(data->main->setting.build, F_false) != F_true) {
           if (f_file_exists(fake_default_fakefile_s, F_false) == F_true) {
             requireds[1] = F_false; // fake_long_data_s
           }
@@ -520,7 +518,7 @@ extern "C" {
 
     // If a custom --data or a custom --fakefile parameter is passed and uses an absolute or relative to current path, then do not check.
     if (data->operation == fake_operation_make_e || data->operation == fake_operation_build_e) {
-      f_console_parameter_t * const parameter = &data->program->parameters.array[
+      f_console_parameter_t * const parameter = &data->main->program.parameters.array[
         data->operation == fake_operation_make_e
           ? fake_parameter_fakefile_e
           : fake_parameter_settings_e
@@ -529,13 +527,13 @@ extern "C" {
       if (parameter->result & f_console_result_value_e) {
         const f_array_length_t index = parameter->values.array[parameter->values.used - 1];
 
-        if (f_path_is_absolute(data->program->parameters.arguments.array[index]) == F_true || f_path_is_relative_current(data->program->parameters.arguments.array[index]) == F_true) {
+        if (f_path_is_absolute(data->main->program.parameters.arguments.array[index]) == F_true || f_path_is_relative_current(data->main->program.parameters.arguments.array[index]) == F_true) {
           requireds[1] = F_none; // fake_long_data_s
         }
         else {
-          data->setting->state.status = f_file_exists(data->program->parameters.arguments.array[index], F_true);
+          data->main->setting.state.status = f_file_exists(data->main->program.parameters.arguments.array[index], F_true);
 
-          if (F_status_is_error_not(data->setting->state.status) && data->setting->state.status == F_true) {
+          if (F_status_is_error_not(data->main->setting.state.status) && data->main->setting.state.status == F_true) {
             requireds[1] = F_none; // fake_long_data_s
           }
         }
@@ -547,30 +545,30 @@ extern "C" {
       if (requireds[i] != F_none && values[i].used) {
         memset(&directory_stat, 0, sizeof(struct stat));
 
-        data->setting->state.status = f_file_stat(values[i], F_true, &directory_stat);
+        data->main->setting.state.status = f_file_stat(values[i], F_true, &directory_stat);
 
-        if (data->setting->state.status == F_status_set_error(F_file_found_not)) {
-          data->setting->state.status = F_status_set_error(F_directory_found_not);
+        if (data->main->setting.state.status == F_status_set_error(F_file_found_not)) {
+          data->main->setting.state.status = F_status_set_error(F_directory_found_not);
         }
 
-        if (F_status_is_error(data->setting->state.status)) {
-          if (F_status_set_fine(data->setting->state.status) != F_directory_found_not || requireds[i]) {
-            fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_stat), values[i], f_file_operation_access_s, fll_error_file_type_directory_e);
+        if (F_status_is_error(data->main->setting.state.status)) {
+          if (F_status_set_fine(data->main->setting.state.status) != F_directory_found_not || requireds[i]) {
+            fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_stat), values[i], f_file_operation_access_s, fll_error_file_type_directory_e);
 
             return;
           }
         }
       }
       else if (requireds[i] == F_true) {
-        fake_print_error_parameter_directory_not_found_path(data->setting, data->program->error, f_console_symbol_long_normal_s, names[i], values[i]);
+        fake_print_error_parameter_directory_not_found_path(&data->main->program.error, f_console_symbol_long_normal_s, names[i], values[i]);
 
-        data->setting->state.status = F_status_set_error(F_directory_found_not);
+        data->main->setting.state.status = F_status_set_error(F_directory_found_not);
 
         return;
       }
     } // for
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
   }
 #endif // _di_fake_validate_parameter_paths_
 
index b30e2f757c3d12fbf2caf6cb625427c480f74e22..a157756c57503e78e666cdcceaca5788e0a4f846 100644 (file)
 #include <program/fake/main/build/load.h>
 #include <program/fake/main/build/object.h>
 #include <program/fake/main/build/objects.h>
-#include <program/fake/main/build/print.h>
 #include <program/fake/main/build/print/compile.h>
 #include <program/fake/main/build/print/error.h>
+#include <program/fake/main/build/print/message.h>
 #include <program/fake/main/build/print/verbose.h>
 #include <program/fake/main/build/print/warning.h>
 #include <program/fake/main/build/program.h>
 #include <program/fake/main/make/operate_process_type.h>
 #include <program/fake/main/make/operate_validate.h>
 #include <program/fake/main/make/operate_validate_type.h>
-#include <program/fake/main/make/print.h>
 #include <program/fake/main/make/print/error.h>
+#include <program/fake/main/make/print/message.h>
 #include <program/fake/main/make/print/verbose.h>
 #include <program/fake/main/make/print/warning.h>
-#include <program/fake/main/print.h>
+#include <program/fake/main/print/common.h>
 #include <program/fake/main/print/context.h>
 #include <program/fake/main/print/error.h>
+#include <program/fake/main/print/message.h>
 #include <program/fake/main/print/operation.h>
 #include <program/fake/main/print/verbose.h>
 #include <program/fake/main/print/warning.h>
@@ -219,7 +220,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *     F_false on file not found and file is not required.
  *
@@ -256,7 +257,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
@@ -282,7 +283,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
index 4bf51da27de7bee3c4dec940ab239f022873758b..a378752561b1a29b9034acff09fc9bca5191a3cd 100644 (file)
@@ -7,17 +7,17 @@ extern "C" {
 #ifndef _di_fake_path_generate_
   void fake_path_generate(fake_data_t * const data) {
 
-    if (!data || !data->program || !data->setting) return;
+    if (!data || !data->main) return;
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
     uint8_t i = 0;
 
     {
       uint8_t j = 0;
 
       const f_string_dynamic_t sources[] = {
-        data->setting->build,
-        data->setting->data,
+        data->main->setting.build,
+        data->main->setting.data,
       };
 
       const uint8_t parameters_size[] = {
@@ -57,8 +57,8 @@ extern "C" {
 
         fake_path_generate_string_dynamic(data, sources[i], values[i], parameters_size[i]);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(fake_path_generate_string_dynamic));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(fake_path_generate_string_dynamic));
 
           return;
         }
@@ -100,10 +100,10 @@ extern "C" {
 
       for (i = 0; i < 13; ++i) {
 
-        data->setting->state.status = f_string_dynamic_append_nulless(sources[i], values[i]);
+        data->main->setting.state.status = f_string_dynamic_append_nulless(sources[i], values[i]);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
           return;
         }
@@ -170,8 +170,8 @@ extern "C" {
 
         fake_path_generate_string_dynamic(data, sources[i], values[i], parameters_size[i]);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(fake_path_generate_string_dynamic));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(fake_path_generate_string_dynamic));
 
           return;
         }
@@ -179,11 +179,11 @@ extern "C" {
     }
 
     // When custom fakefile or settings are used and they are paths to a file, remove the default path.
-    if (f_path_is(data->setting->fakefile) == F_true || f_file_exists(data->setting->fakefile, F_true) == F_true) {
+    if (f_path_is(data->main->setting.fakefile) == F_true || f_file_exists(data->main->setting.fakefile, F_true) == F_true) {
       data->file_data_build_fakefile.used = 0;
     }
 
-    if (f_path_is(data->setting->settings) == F_true || f_file_exists(data->setting->settings, F_true) == F_true) {
+    if (f_path_is(data->main->setting.settings) == F_true || f_file_exists(data->main->setting.settings, F_true) == F_true) {
       data->file_data_build_settings.used = 0;
     }
 
@@ -202,8 +202,8 @@ extern "C" {
         fake_file_dependencies_s,
         fake_file_process_post_s,
         fake_file_process_pre_s,
-        data->setting->fakefile,
-        data->setting->settings,
+        data->main->setting.fakefile,
+        data->main->setting.settings,
         fake_file_readme_s,
       };
 
@@ -228,17 +228,17 @@ extern "C" {
 
       for (i = 0; i < 16; ++i) {
 
-        data->setting->state.status = f_string_dynamic_append_nulless(sources[i], values[i]);
+        data->main->setting.state.status = f_string_dynamic_append_nulless(sources[i], values[i]);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
           return;
         }
       } // for
     }
 
-    if (data->setting->work.used) {
+    if (data->main->setting.work.used) {
       {
         f_string_dynamic_t * const values[] = {
           &data->path_work_includes,
@@ -250,10 +250,10 @@ extern "C" {
 
           values[i]->used = 0;
 
-          data->setting->state.status = f_string_dynamic_append_nulless(data->setting->work, values[i]);
+          data->main->setting.state.status = f_string_dynamic_append_nulless(data->main->setting.work, values[i]);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
             return;
           }
@@ -275,10 +275,10 @@ extern "C" {
 
         for (i = 0; i < 3; ++i) {
 
-          data->setting->state.status = f_string_dynamic_append_nulless(sources[i], values[i]);
+          data->main->setting.state.status = f_string_dynamic_append_nulless(sources[i], values[i]);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
             return;
           }
@@ -317,8 +317,8 @@ extern "C" {
 
           fake_path_generate_string_dynamic(data, sources[i], values[i], parameters_size[i]);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(fake_path_generate_string_dynamic));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(fake_path_generate_string_dynamic));
 
             return;
           }
@@ -346,10 +346,10 @@ extern "C" {
 
         for (i = 0; i < 6; ++i) {
 
-          data->setting->state.status = f_string_dynamic_append_nulless(sources[i], values[i]);
+          data->main->setting.state.status = f_string_dynamic_append_nulless(sources[i], values[i]);
 
-          if (F_status_is_error(data->setting->state.status)) {
-            fake_print_error(&data->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+          if (F_status_is_error(data->main->setting.state.status)) {
+            fake_print_error(&data->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
             return;
           }
@@ -357,21 +357,21 @@ extern "C" {
       }
     }
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
   }
 #endif // _di_fake_path_generate_
 
 #ifndef _di_fake_path_generate_string_dynamic_
   void fake_path_generate_string_dynamic(fake_data_t * const data, const f_string_dynamic_t source, f_string_dynamic_t *destination[], const uint8_t length) {
 
-    if (!data || !data->program || !data->setting || !destination) return;
+    if (!data || !data->main || !destination) return;
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
 
     for (uint8_t i = 0; i < length; ++i) {
 
-      data->setting->state.status = f_string_dynamic_append_nulless(source, destination[i]);
-      if (F_status_is_error(data->setting->state.status)) break;
+      data->main->setting.state.status = f_string_dynamic_append_nulless(source, destination[i]);
+      if (F_status_is_error(data->main->setting.state.status)) break;
     } // for
   }
 #endif // _di_fake_path_generate_string_dynamic_
index cbba01e4db31f7a7c2bdcaab9fc4a0d3c4915a25..cda38ac38fb8914387c4cf79a2d7cc470313ffe9 100644 (file)
@@ -22,7 +22,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_string_dynamic_append_nulless().
@@ -44,7 +44,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_string_dynamic_append_nulless().
index a9d98018ac33087f06b5f7642ec537461834712a..b1a916b4561174c5426b6d0219a1ba9da07f58fc 100644 (file)
@@ -7,15 +7,15 @@ extern "C" {
 #ifndef _di_fake_make_assure_inside_project_
   void fake_make_assure_inside_project(fake_make_data_t * const data_make, const f_string_static_t path) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     data_make->cache_path.used = 0;
 
-    data_make->setting->state.status = fl_path_canonical(path, &data_make->cache_path);
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    data_make->main->setting.state.status = fl_path_canonical(path, &data_make->cache_path);
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
     if (data_make->cache_path.used < data_make->path.stack.array[0].used) {
-      data_make->setting->state.status = F_status_set_error(F_false);
+      data_make->main->setting.state.status = F_status_set_error(F_false);
 
       return;
     }
@@ -23,79 +23,79 @@ extern "C" {
     const f_string_range_t range = macro_f_string_range_t_initialize2(data_make->path.stack.array[0].used);
 
     if (range.start <= range.stop) {
-      data_make->setting->state.status = fl_string_dynamic_partial_compare(data_make->path.stack.array[0], data_make->cache_path, range, range);
-      if (F_status_is_error(data_make->setting->state.status)) return;
+      data_make->main->setting.state.status = fl_string_dynamic_partial_compare(data_make->path.stack.array[0], data_make->cache_path, range, range);
+      if (F_status_is_error(data_make->main->setting.state.status)) return;
 
-      if (data_make->setting->state.status) {
+      if (data_make->main->setting.state.status) {
         if (data_make->cache_path.used == data_make->path.stack.array[0].used || data_make->cache_path.string[data_make->path.stack.array[0].used] == f_path_separator_s.string[0]) {
-          data_make->setting->state.status = F_true;
+          data_make->main->setting.state.status = F_true;
 
           return;
         }
       }
     }
 
-    data_make->setting->state.status = F_status_set_error(F_false);
+    data_make->main->setting.state.status = F_status_set_error(F_false);
   }
 #endif // _di_fake_make_assure_inside_project_
 
 #ifndef _di_fake_make_get_id_
   f_number_unsigned_t fake_make_get_id(fake_make_data_t * const data_make, const bool is_owner, const f_string_static_t buffer) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return 0;
+    if (!data_make || !data_make->main) return 0;
 
     if (!buffer.used) {
-      fake_print_error(&data_make->program->error, macro_fake_f(fake_make_get_id));
+      fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_get_id));
 
-      data_make->setting->state.status = F_status_set_error(F_parameter);
+      data_make->main->setting.state.status = F_status_set_error(F_parameter);
 
       return 0;
     }
 
     f_number_unsigned_t number = 0;
 
-    data_make->setting->state.status = fl_conversion_dynamic_to_unsigned_detect(fl_conversion_data_base_10_c, buffer, &number);
+    data_make->main->setting.state.status = fl_conversion_dynamic_to_unsigned_detect(fl_conversion_data_base_10_c, buffer, &number);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
+    if (F_status_is_error(data_make->main->setting.state.status)) {
 
       // When the buffer is not a number, then check to see if this is a group or owner name.
-      if (F_status_set_fine(data_make->setting->state.status) == F_number) {
+      if (F_status_set_fine(data_make->main->setting.state.status) == F_number) {
         if (is_owner) {
           uid_t uid = 0;
 
-          data_make->setting->state.status = f_account_id_by_name(buffer, &uid);
+          data_make->main->setting.state.status = f_account_id_by_name(buffer, &uid);
         }
         else {
           gid_t gid = 0;
 
-          data_make->setting->state.status = f_account_group_id_by_name(buffer, &gid);
+          data_make->main->setting.state.status = f_account_group_id_by_name(buffer, &gid);
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, is_owner ? macro_fake_f(f_account_id_by_name) : macro_fake_f(f_account_group_id_by_name));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, is_owner ? macro_fake_f(f_account_id_by_name) : macro_fake_f(f_account_group_id_by_name));
         }
         else {
-          if (data_make->setting->state.status == F_exist_not) {
-            fake_print_error_group_not_found(data_make->setting, data_make->program->error, buffer);
+          if (data_make->main->setting.state.status == F_exist_not) {
+            fake_print_error_group_not_found(&data_make->main->program.error, buffer);
 
-            data_make->setting->state.status = F_status_set_error(F_exist_not);
+            data_make->main->setting.state.status = F_status_set_error(F_exist_not);
           }
           else {
-            data_make->setting->state.status = F_none;
+            data_make->main->setting.state.status = F_none;
           }
         }
       }
       else {
-        fake_print_error(&data_make->program->error, macro_fake_f(fl_conversion_dynamic_to_unsigned_detect));
+        fake_print_error(&data_make->main->program.error, macro_fake_f(fl_conversion_dynamic_to_unsigned_detect));
       }
 
       return 0;
     }
 
     if (number > F_type_size_32_unsigned_d) {
-      fake_print_error_number_too_large(data_make->setting, data_make->program->error, buffer);
+      fake_print_error_number_too_large(&data_make->main->program.error, buffer);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return 0;
     }
@@ -107,28 +107,28 @@ extern "C" {
 #ifndef _di_fake_make_get_id_mode_
   void fake_make_get_id_mode(fake_make_data_t * const data_make, const f_string_static_t buffer, f_file_mode_t *mode, uint8_t *replace) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !mode || !replace) return;
+    if (!data_make || !data_make->main || !mode || !replace) return;
 
     if (!buffer.used) {
-      fake_print_error(&data_make->program->error, macro_fake_f(fake_make_get_id_mode));
+      fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_get_id_mode));
 
-      data_make->setting->state.status = F_status_set_error(F_parameter);
+      data_make->main->setting.state.status = F_status_set_error(F_parameter);
 
       return;
     }
 
-    data_make->setting->state.status = f_file_mode_from_string(buffer, data_make->program->umask, mode, replace);
+    data_make->main->setting.state.status = f_file_mode_from_string(buffer, data_make->main->program.umask, mode, replace);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      if (F_status_set_fine(data_make->setting->state.status) == F_syntax) {
-        fake_print_error_mode_invalid(data_make->setting, data_make->program->error, buffer);
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      if (F_status_set_fine(data_make->main->setting.state.status) == F_syntax) {
+        fake_print_error_mode_invalid(&data_make->main->program.error, buffer);
       }
       else {
-        fake_print_error(&data_make->program->error, macro_fake_f(fake_make_get_id_mode));
+        fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_get_id_mode));
       }
     }
     else {
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_make_get_id_mode_
@@ -136,18 +136,18 @@ extern "C" {
 #ifndef _di_fake_make_path_relative_
   void fake_make_path_relative(fake_make_data_t * const data_make, const f_string_static_t path) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     data_make->cache_path.used = 0;
 
     if (!path.used || path.used == data_make->path.stack.array[0].used) {
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
 
       return;
     }
 
     if (path.used < data_make->path.stack.array[0].used) {
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
@@ -157,13 +157,13 @@ extern "C" {
     range.start = data_make->path.stack.array[0].used + 1;
     range.stop = range.start + (path.used - range.start) - 1;
 
-    data_make->setting->state.status = f_string_dynamic_partial_append(path, range, &data_make->cache_path);
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    data_make->main->setting.state.status = f_string_dynamic_partial_append(path, range, &data_make->cache_path);
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
-    data_make->setting->state.status = f_string_dynamic_terminate(&data_make->cache_path);
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    data_make->main->setting.state.status = f_string_dynamic_terminate(&data_make->cache_path);
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_path_relative_
 
index 4bcd559d0f820fd4f788ed07ae28315065078ce2..03e414020a10531f3e918b13063f392de04c66ef 100644 (file)
@@ -23,7 +23,7 @@ extern "C" {
  *   All make related setting data, including data from the fakefile and the build settings file.
  *   The data_make.cache_path will be updated to reflect the full path to this file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_true if inside the project.
  *     F_false (with error bit) if path exists outside of the root project path.
  *
@@ -46,7 +46,7 @@ extern "C" {
  *   All make related setting data, including data from the fakefile and the build settings file.
  *   The data_make.cache_path will be updated to reflect the full path to this file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -66,7 +66,7 @@ extern "C" {
  *   The detected owner id or group id.
  *   When is_owner is TRUE, then this should be cast to type (uid_t *).
  *   When is_owner is TRUE, then this should be cast to type (gid_t *).
- *   This is set to 0 on any error, check data_make.setting.state.status for error.
+ *   This is set to 0 on any error, check data_make.main->setting.state.status for error.
  *
  * @see f_account_group_id_by_name()
  * @see f_account_id_by_name()
@@ -83,7 +83,7 @@ extern "C" {
  *   All make related setting data, including data from the fakefile and the build settings file.
  *   The data_make.cache_path will be updated to reflect the full path to this file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -112,7 +112,7 @@ extern "C" {
  *   All make related setting data, including data from the fakefile and the build settings file.
  *   The relative path is stored in data_make.cache_path.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
index e7f6a7851c6aa85400639016179022efe12bc95b..1f0f1bd6b5aa65f2cb04a0dd503c9a9ba0304210 100644 (file)
@@ -7,13 +7,13 @@ extern "C" {
 #ifndef _di_fake_make_load_fakefile_
   void fake_make_load_fakefile(fake_make_data_t * const data_make, const bool process_pipe) {
 
-    if (!data_make || !data_make->data || !data_make->program || !data_make->setting) return;
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (!data_make || !data_make->data || !data_make->main) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
-    if (fll_program_standard_signal_received(data_make->program)) {
-      fll_program_print_signal_received(data_make->program->warning, data_make->program->signal_received);
+    if (fll_program_standard_signal_received(&data_make->main->program)) {
+      fll_program_print_signal_received(data_make->main->program.warning, data_make->main->program.signal_received);
 
-      data_make->setting->state.status = F_status_set_error(F_interrupt);
+      data_make->main->setting.state.status = F_status_set_error(F_interrupt);
 
       return;
     }
@@ -23,22 +23,22 @@ extern "C" {
     if (process_pipe) {
       fake_pipe_buffer(data_make->data, &data_make->buffer);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         data_make->buffer.used = 0;
       }
       else {
-        data_make->setting->state.status = f_string_dynamic_append_assure(f_string_eol_s, &data_make->buffer);
+        data_make->main->setting.state.status = f_string_dynamic_append_assure(f_string_eol_s, &data_make->buffer);
       }
     }
 
-    if (F_status_is_error_not(data_make->setting->state.status)) {
+    if (F_status_is_error_not(data_make->main->setting.state.status)) {
       fake_file_buffer(data_make->data, data_make->data->file_data_build_fakefile, process_pipe ? F_false : F_true, &data_make->buffer);
     }
 
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
     if (!data_make->buffer.used) {
-      fake_make_print_warning_fakefile_empty(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile);
+      fake_make_print_warning_fakefile_empty(&data_make->main->program.warning, data_make->data->file_data_build_fakefile);
 
       return;
     }
@@ -51,16 +51,16 @@ extern "C" {
       f_string_range_t range = macro_f_string_range_t_initialize2(data_make->buffer.used);
       f_fss_comments_t comments = f_fss_comments_t_initialize;
 
-      fll_fss_basic_list_read(data_make->buffer, &range, &list_objects, &list_contents, &delimits, 0, &comments, &data_make->setting->state);
+      fll_fss_basic_list_read(data_make->buffer, &range, &list_objects, &list_contents, &delimits, 0, &comments, &data_make->main->setting.state);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_fss(data_make->setting, data_make->program->error, macro_fake_f(fll_fss_basic_list_read), data_make->data->file_data_build_fakefile, range, F_true);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_fss(&data_make->main->program.error, macro_fake_f(fll_fss_basic_list_read), data_make->data->file_data_build_fakefile, range, F_true);
       }
       else {
-        f_fss_apply_delimit(delimits, &data_make->buffer, &data_make->setting->state);
+        f_fss_apply_delimit(delimits, &data_make->buffer, &data_make->main->setting.state);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_fss_apply_delimit));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_fss_apply_delimit));
         }
 
         delimits.used = 0;
@@ -68,7 +68,7 @@ extern "C" {
 
       f_string_ranges_resize(0, &comments);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         f_string_ranges_resize(0, &list_objects);
         f_string_rangess_resize(0, &list_contents);
         f_array_lengths_resize(0, &delimits);
@@ -84,11 +84,11 @@ extern "C" {
       f_fss_set_t settings = f_fss_set_t_initialize;
 
       if (list_objects.used > data_make->fakefile.size) {
-        data_make->setting->state.status = f_fss_nameds_resize(list_objects.used, &data_make->fakefile);
+        data_make->main->setting.state.status = f_fss_nameds_resize(list_objects.used, &data_make->fakefile);
       }
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_fss_nameds_resize));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_fss_nameds_resize));
 
         f_fss_set_resize(0, &settings);
         f_string_ranges_resize(0, &list_objects);
@@ -104,20 +104,20 @@ extern "C" {
         for (f_array_length_t i = 0; i < list_objects.used; ++i) {
 
           if (!(i % fake_signal_check_short_d)) {
-            if (fll_program_standard_signal_received(data_make->program)) {
-              fll_program_print_signal_received(data_make->program->warning, data_make->program->signal_received);
+            if (fll_program_standard_signal_received(&data_make->main->program)) {
+              fll_program_print_signal_received(data_make->main->program.warning, data_make->main->program.signal_received);
 
-              data_make->setting->state.status = F_status_set_error(F_interrupt);
+              data_make->main->setting.state.status = F_status_set_error(F_interrupt);
 
               break;
             }
 
-            data_make->program->signal_check = 0;
+            data_make->main->program.signal_check = 0;
           }
 
           if (fl_string_dynamic_partial_compare_string(fake_make_item_settings_s.string, data_make->buffer, fake_make_item_settings_s.used, list_objects.array[i]) == F_equal_to) {
             if (!missing_settings) {
-              fake_make_print_warning_setting_object_multiple(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, fake_make_item_settings_s);
+              fake_make_print_warning_setting_object_multiple(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, fake_make_item_settings_s);
 
               continue;
             }
@@ -125,18 +125,18 @@ extern "C" {
             delimits.used = 0;
             content_range = list_contents.array[i].array[0];
 
-            fll_fss_extended_read(data_make->buffer, &content_range, &settings.objects, &settings.contents, 0, 0, &delimits, 0, &data_make->setting->state);
+            fll_fss_extended_read(data_make->buffer, &content_range, &settings.objects, &settings.contents, 0, 0, &delimits, 0, &data_make->main->setting.state);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error_fss(data_make->setting, data_make->program->error, macro_fake_f(fll_fss_extended_read), data_make->data->file_data_build_fakefile, content_range, F_true);
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error_fss(&data_make->main->program.error, macro_fake_f(fll_fss_extended_read), data_make->data->file_data_build_fakefile, content_range, F_true);
 
               break;
             }
 
-            f_fss_apply_delimit(delimits, &data_make->buffer, &data_make->setting->state);
+            f_fss_apply_delimit(delimits, &data_make->buffer, &data_make->main->setting.state);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error(&data_make->program->error, macro_fake_f(f_fss_apply_delimit));
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error(&data_make->main->program.error, macro_fake_f(f_fss_apply_delimit));
 
               break;
             }
@@ -148,7 +148,7 @@ extern "C" {
 
           if (fl_string_dynamic_partial_compare_string(fake_make_item_main_s.string, data_make->buffer, fake_make_item_main_s.used, list_objects.array[i]) == F_equal_to) {
             if (!missing_main) {
-              fake_make_print_warning_setting_object_multiple(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, fake_make_item_main_s);
+              fake_make_print_warning_setting_object_multiple(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, fake_make_item_main_s);
 
               continue;
             }
@@ -166,18 +166,18 @@ extern "C" {
           if (list_contents.array[i].used) {
             content_range = list_contents.array[i].array[0];
 
-            fll_fss_extended_read(data_make->buffer, &content_range, &data_make->fakefile.array[data_make->fakefile.used].objects, &data_make->fakefile.array[data_make->fakefile.used].contents, 0, &data_make->fakefile.array[data_make->fakefile.used].quotess, &delimits, 0, &data_make->setting->state);
+            fll_fss_extended_read(data_make->buffer, &content_range, &data_make->fakefile.array[data_make->fakefile.used].objects, &data_make->fakefile.array[data_make->fakefile.used].contents, 0, &data_make->fakefile.array[data_make->fakefile.used].quotess, &delimits, 0, &data_make->main->setting.state);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error_fss(data_make->setting, data_make->program->error, macro_fake_f(fll_fss_extended_read), data_make->data->file_data_build_fakefile, content_range, F_true);
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error_fss(&data_make->main->program.error, macro_fake_f(fll_fss_extended_read), data_make->data->file_data_build_fakefile, content_range, F_true);
 
               break;
             }
 
-            f_fss_apply_delimit(delimits, &data_make->buffer, &data_make->setting->state);
+            f_fss_apply_delimit(delimits, &data_make->buffer, &data_make->main->setting.state);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error(&data_make->program->error, macro_fake_f(f_fss_apply_delimit));
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error(&data_make->main->program.error, macro_fake_f(f_fss_apply_delimit));
 
               break;
             }
@@ -191,16 +191,16 @@ extern "C" {
       f_string_rangess_resize(0, &list_contents);
       f_array_lengths_resize(0, &delimits);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         f_fss_set_resize(0, &settings);
 
         return;
       }
 
       if (missing_main) {
-        fake_make_print_error_fakefile_section_missing(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, fake_make_item_main_s);
+        fake_make_print_error_fakefile_section_missing(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, fake_make_item_main_s);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         f_fss_set_resize(0, &settings);
 
@@ -211,22 +211,22 @@ extern "C" {
       {
         f_string_t function_name = macro_fake_f(macro_f_string_map_multis_t_resize);
 
-        data_make->setting->state.status = f_string_map_multis_resize(data_make->setting->state.step_small, &data_make->setting_make.parameter);
+        data_make->main->setting.state.status = f_string_map_multis_resize(data_make->main->setting.state.step_small, &data_make->setting_make.parameter);
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
           data_make->setting_make.parameter.used = 1;
 
           function_name = macro_fake_f(f_string_dynamic_append);
-          data_make->setting->state.status = f_string_dynamic_append(fake_make_setting_return_s, &data_make->setting_make.parameter.array[0].name);
+          data_make->main->setting.state.status = f_string_dynamic_append(fake_make_setting_return_s, &data_make->setting_make.parameter.array[0].name);
         }
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
           function_name = macro_fake_f(f_string_dynamics_resize);
-          data_make->setting->state.status = f_string_dynamics_resize(1, &data_make->setting_make.parameter.array[0].value);
+          data_make->main->setting.state.status = f_string_dynamics_resize(1, &data_make->setting_make.parameter.array[0].value);
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, function_name);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, function_name);
 
           f_fss_set_resize(0, &settings);
 
@@ -252,7 +252,7 @@ extern "C" {
           }
           else if (fl_string_dynamic_partial_compare_string(fake_make_setting_environment_s.string, data_make->buffer, fake_make_setting_environment_s.used, settings.objects.array[i]) == F_equal_to) {
             fake_make_load_fakefile_setting_environment(data_make, &settings.contents.array[i]);
-            if (F_status_is_error(data_make->setting->state.status)) break;
+            if (F_status_is_error(data_make->main->setting.state.status)) break;
           }
           else if (fl_string_dynamic_partial_compare_string(fake_make_setting_fail_s.string, data_make->buffer, fake_make_setting_fail_s.used, settings.objects.array[i]) == F_equal_to) {
             fake_make_load_fakefile_setting_fail(data_make, &settings.objects.array[i], &settings.contents.array[i]);
@@ -262,26 +262,26 @@ extern "C" {
           }
           else if (fl_string_dynamic_partial_compare_string(fake_make_setting_parameter_s.string, data_make->buffer, fake_make_setting_parameter_s.used, settings.objects.array[i]) == F_equal_to) {
             fake_make_load_fakefile_setting_parameter(data_make, &settings.objects.array[i], &settings.contents.array[i]);
-            if (F_status_is_error(data_make->setting->state.status)) break;
+            if (F_status_is_error(data_make->main->setting.state.status)) break;
           }
         } // for
 
-        if (F_status_is_error(data_make->setting->state.status)) {
+        if (F_status_is_error(data_make->main->setting.state.status)) {
           f_fss_set_resize(0, &settings);
 
           return;
         }
       }
 
-      if (F_status_is_error_not(data_make->setting->state.status) && data_make->setting_make.load_build) {
+      if (F_status_is_error_not(data_make->main->setting.state.status) && data_make->setting_make.load_build) {
         fake_build_load_setting(data_make->data, 0, F_false, &data_make->setting_build);
 
-        if (F_status_is_error(data_make->setting->state.status) && data_make->setting->state.status != F_status_set_error(F_interrupt)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(fake_build_load_setting));
+        if (F_status_is_error(data_make->main->setting.state.status) && data_make->main->setting.state.status != F_status_set_error(F_interrupt)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(fake_build_load_setting));
         }
       }
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         f_fss_set_resize(0, &settings);
 
         return;
@@ -291,18 +291,18 @@ extern "C" {
       if (range_compiler) {
         data_make->setting_build.build_compiler.used = 0;
 
-        data_make->setting->state.status = f_string_dynamic_partial_append(data_make->buffer, *range_compiler, &data_make->setting_build.build_compiler);
+        data_make->main->setting.state.status = f_string_dynamic_partial_append(data_make->buffer, *range_compiler, &data_make->setting_build.build_compiler);
       }
 
-      if (F_status_is_error_not(data_make->setting->state.status) && range_indexer) {
+      if (F_status_is_error_not(data_make->main->setting.state.status) && range_indexer) {
         data_make->setting_build.build_indexer.used = 0;
 
-        data_make->setting->state.status = f_string_dynamic_partial_append(data_make->buffer, *range_indexer, &data_make->setting_build.build_indexer);
+        data_make->main->setting.state.status = f_string_dynamic_partial_append(data_make->buffer, *range_indexer, &data_make->setting_build.build_indexer);
       }
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        if (F_status_set_fine(data_make->setting->state.status) != F_interrupt) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_partial_append));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        if (F_status_set_fine(data_make->main->setting.state.status) != F_interrupt) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_partial_append));
         }
 
         f_fss_set_resize(0, &settings);
@@ -315,14 +315,14 @@ extern "C" {
       f_fss_set_resize(0, &settings);
     }
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_load_fakefile_
 
 #ifndef _di_fake_make_load_fakefile_setting_build_
   void fake_make_load_fakefile_setting_build(fake_make_data_t * const data_make, f_fss_object_t * const object, f_fss_content_t * const content) {
 
-    if (!data_make || !data_make->data || !data_make->program || !data_make->setting || !object || !content) return;
+    if (!data_make || !data_make->data || !data_make->main || !object || !content) return;
 
     if (content->used) {
       if (fl_string_dynamic_partial_compare_string(fake_common_setting_bool_yes_s.string, data_make->buffer, fake_common_setting_bool_yes_s.used, content->array[0]) == F_equal_to) {
@@ -332,15 +332,15 @@ extern "C" {
         data_make->setting_make.load_build = F_false;
       }
       else {
-        fake_make_print_warning_setting_content_invalid(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, content->array[0], fake_make_item_settings_s);
+        fake_make_print_warning_setting_content_invalid(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, content->array[0], fake_make_item_settings_s);
       }
 
       if (content->used > 1) {
-        fake_make_print_warning_setting_content_multiple(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, fake_make_setting_load_build_s);
+        fake_make_print_warning_setting_content_multiple(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, fake_make_setting_load_build_s);
       }
     }
     else {
-      fake_make_print_warning_setting_content_empty(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, fake_make_setting_load_build_s);
+      fake_make_print_warning_setting_content_empty(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, fake_make_setting_load_build_s);
     }
   }
 #endif // _di_fake_make_load_fakefile_setting_build_
@@ -348,17 +348,17 @@ extern "C" {
 #ifndef _di_fake_make_load_fakefile_setting_compiler_
   void fake_make_load_fakefile_setting_compiler(fake_make_data_t * const data_make, f_fss_object_t * const object, f_fss_content_t * const content, f_string_range_t **range_compiler) {
 
-    if (!data_make || !data_make->data || !data_make->program || !data_make->setting || !object || !content || !range_compiler) return;
+    if (!data_make || !data_make->data || !data_make->main || !object || !content || !range_compiler) return;
 
     if (content->used) {
       *range_compiler = &content->array[content->used - 1];
 
       if (content->used > 1) {
-        fake_make_print_warning_setting_content_multiple(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, fake_make_setting_compiler_s);
+        fake_make_print_warning_setting_content_multiple(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, fake_make_setting_compiler_s);
       }
     }
     else {
-      fake_make_print_warning_setting_content_empty(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, fake_make_setting_compiler_s);
+      fake_make_print_warning_setting_content_empty(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, fake_make_setting_compiler_s);
     }
   }
 #endif // _di_fake_make_load_fakefile_setting_compiler_
@@ -366,14 +366,14 @@ extern "C" {
 #ifndef _di_fake_make_load_fakefile_setting_define_and_parameter_
   void fake_make_load_fakefile_setting_define_and_parameter(fake_make_data_t * const data_make, f_fss_set_t * const settings) {
 
-    if (!data_make || !data_make->data || !data_make->data || !data_make->program || !data_make->setting || !settings) return;
+    if (!data_make || !data_make->data || !data_make->data || !data_make->main || !settings) return;
 ;
     f_string_map_multis_t define = f_string_map_multis_t_initialize;
 
     // Load the fakefile "settings" as if they are build "settings".
     fake_build_load_setting_process(data_make->data, F_false, data_make->data->file_data_build_fakefile, 0, data_make->buffer, settings->objects, settings->contents, &data_make->setting_build);
 
-    if (F_status_is_error_not(data_make->setting->state.status) && settings->objects.used) {
+    if (F_status_is_error_not(data_make->main->setting.state.status) && settings->objects.used) {
       const f_string_static_t settings_name[] = {
         fake_make_setting_define_s,
         fake_make_setting_parameter_s,
@@ -384,10 +384,10 @@ extern "C" {
         &data_make->setting_make.parameter,
       };
 
-      data_make->setting->state.status = fll_fss_snatch_map_apart(data_make->buffer, settings->objects, settings->contents, settings_name, 2, settings_value, 0, 0);
+      data_make->main->setting.state.status = fll_fss_snatch_map_apart(data_make->buffer, settings->objects, settings->contents, settings_name, 2, settings_value, 0, 0);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(fll_fss_snatch_map_apart));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(fll_fss_snatch_map_apart));
 
         f_string_map_multis_resize(0, &define);
 
@@ -405,34 +405,34 @@ extern "C" {
 
         fake_make_operate_validate_define_name(define.array[i].name);
 
-        if (data_make->setting->state.status) {
+        if (data_make->main->setting.state.status) {
           combined.used = 0;
 
           for (j = 0; j < define.array[i].value.used; ++j) {
 
-            data_make->setting->state.status = f_string_dynamic_mash(f_string_space_s, define.array[i].value.array[j], &combined);
+            data_make->main->setting.state.status = f_string_dynamic_mash(f_string_space_s, define.array[i].value.array[j], &combined);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_mash));
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_mash));
 
               break;
             }
           } // for
 
-          if (F_status_is_error(data_make->setting->state.status)) break;
+          if (F_status_is_error(data_make->main->setting.state.status)) break;
 
-          data_make->setting->state.status = f_environment_set(define.array[i].name, combined, F_true);
+          data_make->main->setting.state.status = f_environment_set(define.array[i].name, combined, F_true);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_environment_set));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_environment_set));
 
             break;
           }
         }
         else {
-          fake_make_print_error_define_invalid_character(data_make->setting, data_make->program->error, define.array[i].name);
+          fake_make_print_error_define_invalid_character(&data_make->main->program.error, define.array[i].name);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           break;
         }
@@ -443,16 +443,16 @@ extern "C" {
 
     f_string_map_multis_resize(0, &define);
 
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_load_fakefile_setting_define_and_parameter_
 
 #ifndef _di_fake_make_load_fakefile_setting_environment_
   void fake_make_load_fakefile_setting_environment(fake_make_data_t * const data_make, f_fss_content_t * const content) {
 
-    if (!data_make || !data_make->data || !data_make->data || !data_make->program || !data_make->setting || !content) return;
+    if (!data_make || !data_make->data || !data_make->data || !data_make->main || !content) return;
 
     f_string_dynamic_t name_define = f_string_dynamic_t_initialize;
 
@@ -463,10 +463,10 @@ extern "C" {
 
     for (; i < content->used; ++i) {
 
-      data_make->setting->state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, content->array[i], &name_define);
+      data_make->main->setting.state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, content->array[i], &name_define);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_partial_append_nulless));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_partial_append_nulless));
 
         break;
       }
@@ -478,28 +478,28 @@ extern "C" {
         } // for
 
         if (j == data_make->setting_build.environment.used) {
-          data_make->setting->state.status = f_string_dynamics_increase(fake_allocation_small_d, &data_make->setting_build.environment);
+          data_make->main->setting.state.status = f_string_dynamics_increase(fake_allocation_small_d, &data_make->setting_build.environment);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase));
 
             break;
           }
 
           data_make->setting_build.environment.array[j].used = 0;
 
-          data_make->setting->state.status = f_string_dynamic_increase_by(name_define.used + 1, &data_make->setting_build.environment.array[j]);
+          data_make->main->setting.state.status = f_string_dynamic_increase_by(name_define.used + 1, &data_make->setting_build.environment.array[j]);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_increase_by));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_increase_by));
 
             break;
           }
 
-          data_make->setting->state.status = f_string_dynamic_append_nulless(name_define, &data_make->setting_build.environment.array[j]);
+          data_make->main->setting.state.status = f_string_dynamic_append_nulless(name_define, &data_make->setting_build.environment.array[j]);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
             break;
           }
@@ -507,21 +507,21 @@ extern "C" {
           ++data_make->setting_build.environment.used;
         }
         else if (j < data_make->setting_build.environment.used) {
-          fake_make_print_warning_environment_name_already_added(data_make->setting, data_make->program->warning, name_define);
+          fake_make_print_warning_environment_name_already_added(&data_make->main->program.warning, name_define);
 
           data_make->setting_build.environment.array[j].used = 0;
 
-          data_make->setting->state.status = f_string_dynamic_append_nulless(name_define, &data_make->setting_build.environment.array[j]);
+          data_make->main->setting.state.status = f_string_dynamic_append_nulless(name_define, &data_make->setting_build.environment.array[j]);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
             break;
           }
         }
       }
-      else if (data_make->program->warning.verbosity >= f_console_verbosity_verbose_e) {
-        fake_make_print_warning_environment_name_invalid(data_make->setting, data_make->program->warning, name_define);
+      else if (data_make->main->program.warning.verbosity >= f_console_verbosity_verbose_e) {
+        fake_make_print_warning_environment_name_invalid(&data_make->main->program.warning, name_define);
       }
 
       name_define.used = 0;
@@ -529,16 +529,16 @@ extern "C" {
 
     f_string_dynamic_resize(0, &name_define);
 
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_load_fakefile_setting_environment_
 
 #ifndef _di_fake_make_load_fakefile_setting_fail_
   void fake_make_load_fakefile_setting_fail(fake_make_data_t * const data_make, f_fss_object_t * const object, f_fss_content_t * const content) {
 
-    if (!data_make || !data_make->data || !data_make->data || !data_make->program || !data_make->setting || !object || !content) return;
+    if (!data_make || !data_make->data || !data_make->data || !data_make->main || !object || !content) return;
 
     if (content->used) {
       if (fl_string_dynamic_partial_compare_string(fake_make_operation_argument_exit_s.string, data_make->buffer, fake_make_operation_argument_exit_s.used, content->array[content->used - 1]) == F_equal_to) {
@@ -551,15 +551,15 @@ extern "C" {
         data_make->setting_make.fail = fake_make_operation_fail_ignore_e;
       }
       else {
-        fake_make_print_warning_setting_content_invalid(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, content->array[content->used - 1], fake_make_item_settings_s);
+        fake_make_print_warning_setting_content_invalid(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, content->array[content->used - 1], fake_make_item_settings_s);
       }
 
       if (content->used > 1) {
-        fake_make_print_warning_setting_content_multiple(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, fake_make_setting_fail_s);
+        fake_make_print_warning_setting_content_multiple(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, fake_make_setting_fail_s);
       }
     }
     else {
-      fake_make_print_warning_setting_content_empty(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, fake_make_setting_fail_s);
+      fake_make_print_warning_setting_content_empty(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, fake_make_setting_fail_s);
     }
   }
 #endif // _di_fake_make_load_fakefile_setting_fail_
@@ -567,17 +567,17 @@ extern "C" {
 #ifndef _di_fake_make_load_fakefile_setting_indexer_
   void fake_make_load_fakefile_setting_indexer(fake_make_data_t * const data_make, f_fss_object_t * const object, f_fss_content_t * const content, f_string_range_t **range_indexer) {
 
-    if (!data_make || !data_make->data || !data_make->data || !data_make->program || !data_make->setting || !object || !content || !range_indexer) return;
+    if (!data_make || !data_make->data || !data_make->data || !data_make->main || !object || !content || !range_indexer) return;
 
     if (content->used) {
       *range_indexer = &content->array[content->used - 1];
 
       if (content->used > 1) {
-        fake_make_print_warning_setting_content_multiple(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, fake_make_setting_indexer_s);
+        fake_make_print_warning_setting_content_multiple(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, fake_make_setting_indexer_s);
       }
     }
     else {
-      fake_make_print_warning_setting_content_empty(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, fake_make_setting_indexer_s);
+      fake_make_print_warning_setting_content_empty(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, fake_make_setting_indexer_s);
     }
   }
 #endif // _di_fake_make_load_fakefile_setting_indexer_
@@ -585,7 +585,7 @@ extern "C" {
 #ifndef _di_fake_make_load_fakefile_setting_parameter_
   void fake_make_load_fakefile_setting_parameter(fake_make_data_t * const data_make, f_fss_object_t * const object, f_fss_content_t * const content) {
 
-    if (!data_make || !data_make->data || !data_make->data || !data_make->program || !data_make->setting || !object || !content) return;
+    if (!data_make || !data_make->data || !data_make->data || !data_make->main || !object || !content) return;
 
     if (content->used) {
       if (fl_string_dynamic_partial_compare_string(fake_make_setting_return_s.string, data_make->buffer, fake_make_setting_return_s.used, content->array[0]) == F_equal_to) {
@@ -596,32 +596,32 @@ extern "C" {
 
           for (f_array_length_t i = 1; i < content->used; ++i) {
 
-            data_make->setting->state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, content->array[i], &data_make->setting_make.parameter.array[0].value.array[0]);
+            data_make->main->setting.state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, content->array[i], &data_make->setting_make.parameter.array[0].value.array[0]);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_partial_append_nulless));
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_partial_append_nulless));
 
               break;
             }
 
-            data_make->setting->state.status = f_string_dynamic_append_assure(f_string_space_s, &data_make->setting_make.parameter.array[0].value.array[0]);
+            data_make->main->setting.state.status = f_string_dynamic_append_assure(f_string_space_s, &data_make->setting_make.parameter.array[0].value.array[0]);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_assure));
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_assure));
 
               break;
             }
           } // for
 
-          if (F_status_is_error(data_make->setting->state.status)) return;
+          if (F_status_is_error(data_make->main->setting.state.status)) return;
         }
       }
     }
     else {
-      fake_make_print_warning_setting_content_empty(data_make->setting, data_make->program->warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, fake_make_setting_return_s);
+      fake_make_print_warning_setting_content_empty(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, fake_make_setting_return_s);
     }
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_load_fakefile_setting_parameter_
 
index fccae488b211f5cd500b67f0775f46446ef48329..080051fe212f8ffa90369e16695c014c4298a5f2 100644 (file)
@@ -24,7 +24,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
@@ -82,7 +82,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This does not alter data_make.setting.state.status.
+ *   This does not alter data_make.main.setting.state.status.
  * @param object
  *   The setting object.
  * @param content
@@ -98,7 +98,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This does not alter data_make.setting.state.status.
+ *   This does not alter data_make.main.setting.state.status.
  * @param object
  *   The setting object.
  * @param content
@@ -116,7 +116,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_environment_set().
@@ -147,7 +147,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_string_dynamic_append().
@@ -174,7 +174,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This does not alter data_make.setting.state.status.
+ *   This does not alter data_make.main.setting.state.status.
  * @param object
  *   The setting object.
  * @param content
@@ -190,7 +190,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This does not alter data_make.setting.state.status.
+ *   This does not alter data_make.main.setting.state.status.
  * @param object
  *   The setting object.
  * @param content
@@ -211,7 +211,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_string_append_assure().
index 3b05381cd847d016082eba67d0f0a0a572a5b8f4..a3abec1084380c10e7ef8c16342e99c2f0c83c56 100644 (file)
@@ -7,65 +7,65 @@ extern "C" {
 #ifndef _di_fake_make_load_parameters_
   void fake_make_load_parameters(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (!data_make || !data_make->main) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
-    if (data_make->program->context.mode != f_color_mode_none_e) {
-      data_make->setting->state.status = f_string_dynamics_increase_by(fake_allocation_small_d, &data_make->parameter.color);
+    if (data_make->main->program.context.mode != f_color_mode_none_e) {
+      data_make->main->setting.state.status = f_string_dynamics_increase_by(fake_allocation_small_d, &data_make->parameter.color);
 
-      if (F_status_is_error_not(data_make->setting->state.status)) {
-        data_make->setting->state.status = f_string_dynamics_increase_by(fake_allocation_small_d, &data_make->parameter_option.color);
+      if (F_status_is_error_not(data_make->main->setting.state.status)) {
+        data_make->main->setting.state.status = f_string_dynamics_increase_by(fake_allocation_small_d, &data_make->parameter_option.color);
       }
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase_by));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase_by));
 
         return;
       }
 
-      if (data_make->program->context.mode == f_color_mode_not_e) {
-        if (data_make->program->parameters.array[fake_parameter_no_color_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
+      if (data_make->main->program.context.mode == f_color_mode_not_e) {
+        if (data_make->main->program.parameters.array[fake_parameter_no_color_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
         }
-        else if (data_make->program->parameters.array[fake_parameter_no_color_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
+        else if (data_make->main->program.parameters.array[fake_parameter_no_color_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
         }
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_standard_short_no_color_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_standard_short_no_color_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
         }
       }
-      else if (data_make->program->context.mode == f_color_mode_dark_e) {
-        if (data_make->program->parameters.array[fake_parameter_dark_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
+      else if (data_make->main->program.context.mode == f_color_mode_dark_e) {
+        if (data_make->main->program.parameters.array[fake_parameter_dark_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
         }
-        else if (data_make->program->parameters.array[fake_parameter_dark_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
+        else if (data_make->main->program.parameters.array[fake_parameter_dark_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
         }
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_standard_short_dark_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_standard_short_dark_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
         }
       }
       else {
-        if (data_make->program->parameters.array[fake_parameter_light_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
+        if (data_make->main->program.parameters.array[fake_parameter_light_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
         }
-        else if (data_make->program->parameters.array[fake_parameter_light_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
+        else if (data_make->main->program.parameters.array[fake_parameter_light_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
         }
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_standard_short_light_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_standard_short_light_s, &data_make->parameter.color.array[data_make->parameter.color.used]);
         }
       }
 
-      if (F_status_is_error_not(data_make->setting->state.status)) {
-        data_make->setting->state.status = f_string_dynamic_append(data_make->parameter.color.array[data_make->parameter.color.used], &data_make->parameter_option.color.array[data_make->parameter_option.color.used]);
+      if (F_status_is_error_not(data_make->main->setting.state.status)) {
+        data_make->main->setting.state.status = f_string_dynamic_append(data_make->parameter.color.array[data_make->parameter.color.used], &data_make->parameter_option.color.array[data_make->parameter_option.color.used]);
       }
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append));
 
         return;
       }
@@ -74,74 +74,74 @@ extern "C" {
       ++data_make->parameter_option.color.used;
     }
 
-    if (data_make->program->error.verbosity != f_console_verbosity_normal_e) {
-      data_make->setting->state.status = f_string_dynamics_increase_by(fake_allocation_small_d, &data_make->parameter.verbosity);
+    if (data_make->main->program.error.verbosity != f_console_verbosity_normal_e) {
+      data_make->main->setting.state.status = f_string_dynamics_increase_by(fake_allocation_small_d, &data_make->parameter.verbosity);
 
-      if (F_status_is_error_not(data_make->setting->state.status)) {
-        data_make->setting->state.status = f_string_dynamics_increase_by(fake_allocation_small_d, &data_make->parameter_option.verbosity);
+      if (F_status_is_error_not(data_make->main->setting.state.status)) {
+        data_make->main->setting.state.status = f_string_dynamics_increase_by(fake_allocation_small_d, &data_make->parameter_option.verbosity);
       }
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase_by));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase_by));
 
         return;
       }
 
-      if (data_make->program->error.verbosity == f_console_verbosity_quiet_e) {
-        if (data_make->program->parameters.array[fake_parameter_verbosity_quiet_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+      if (data_make->main->program.error.verbosity == f_console_verbosity_quiet_e) {
+        if (data_make->main->program.parameters.array[fake_parameter_verbosity_quiet_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
-        else if (data_make->program->parameters.array[fake_parameter_verbosity_quiet_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+        else if (data_make->main->program.parameters.array[fake_parameter_verbosity_quiet_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_standard_short_quiet_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_standard_short_quiet_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
       }
-      else if (data_make->program->error.verbosity == f_console_verbosity_error_e) {
-        if (data_make->program->parameters.array[fake_parameter_verbosity_error_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+      else if (data_make->main->program.error.verbosity == f_console_verbosity_error_e) {
+        if (data_make->main->program.parameters.array[fake_parameter_verbosity_error_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
-        else if (data_make->program->parameters.array[fake_parameter_verbosity_error_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+        else if (data_make->main->program.parameters.array[fake_parameter_verbosity_error_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_standard_short_error_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_standard_short_error_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
       }
-      else if (data_make->program->error.verbosity >= f_console_verbosity_verbose_e) {
-        if (data_make->program->parameters.array[fake_parameter_verbosity_verbose_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+      else if (data_make->main->program.error.verbosity >= f_console_verbosity_verbose_e) {
+        if (data_make->main->program.parameters.array[fake_parameter_verbosity_verbose_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
-        else if (data_make->program->parameters.array[fake_parameter_verbosity_verbose_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+        else if (data_make->main->program.parameters.array[fake_parameter_verbosity_verbose_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_standard_short_verbose_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_standard_short_verbose_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
       }
       else {
-        if (data_make->program->parameters.array[fake_parameter_verbosity_debug_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+        if (data_make->main->program.parameters.array[fake_parameter_verbosity_debug_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_normal_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
-        else if (data_make->program->parameters.array[fake_parameter_verbosity_debug_e].flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+        else if (data_make->main->program.parameters.array[fake_parameter_verbosity_debug_e].flag & f_console_flag_normal_e) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_symbol_short_inverse_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
-          data_make->setting->state.status = f_string_dynamic_append(f_console_standard_short_debug_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
+          data_make->main->setting.state.status = f_string_dynamic_append(f_console_standard_short_debug_s, &data_make->parameter.verbosity.array[data_make->parameter.verbosity.used]);
         }
       }
 
-      if (F_status_is_error_not(data_make->setting->state.status)) {
-        data_make->setting->state.status = f_string_dynamic_append(data_make->parameter.verbosity.array[data_make->parameter.verbosity.used], &data_make->parameter_option.verbosity.array[data_make->parameter_option.verbosity.used]);
+      if (F_status_is_error_not(data_make->main->setting.state.status)) {
+        data_make->main->setting.state.status = f_string_dynamic_append(data_make->parameter.verbosity.array[data_make->parameter.verbosity.used], &data_make->parameter_option.verbosity.array[data_make->parameter_option.verbosity.used]);
       }
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append));
 
         return;
       }
@@ -157,13 +157,13 @@ extern "C" {
       };
 
       const f_console_parameter_t *console[] = {
-        &data_make->program->parameters.array[fake_parameter_define_e],
-        &data_make->program->parameters.array[fake_parameter_mode_e],
+        &data_make->main->program.parameters.array[fake_parameter_define_e],
+        &data_make->main->program.parameters.array[fake_parameter_mode_e],
       };
 
       const f_string_dynamics_t source[] = {
-        data_make->data->setting->defines,
-        data_make->data->setting->modes,
+        data_make->data->main->setting.defines,
+        data_make->data->main->setting.modes,
       };
 
       f_string_dynamics_t * const destination[] = {
@@ -190,44 +190,44 @@ extern "C" {
         for (j = 0; j < source[i].used; ++j) {
 
           if (destination[i]->used + 2 > destination[i]->size) {
-            data_make->setting->state.status = f_string_dynamics_increase_by(fake_allocation_small_d, destination[i]);
+            data_make->main->setting.state.status = f_string_dynamics_increase_by(fake_allocation_small_d, destination[i]);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase_by));
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase_by));
 
               return;
             }
           }
 
-          data_make->setting->state.status = f_string_dynamics_increase(fake_allocation_small_d, destination_option[i]);
+          data_make->main->setting.state.status = f_string_dynamics_increase(fake_allocation_small_d, destination_option[i]);
 
-          if (F_status_is_error_not(data_make->setting->state.status)) {
-            data_make->setting->state.status = f_string_dynamics_increase(fake_allocation_small_d, destination_value[i]);
+          if (F_status_is_error_not(data_make->main->setting.state.status)) {
+            data_make->main->setting.state.status = f_string_dynamics_increase(fake_allocation_small_d, destination_value[i]);
           }
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase));
 
             return;
           }
 
           if (console[i]->flag & f_console_flag_normal_e) {
-            data_make->setting->state.status = f_string_dynamic_append_nulless(f_console_symbol_short_normal_s, &destination[i]->array[destination[i]->used]);
+            data_make->main->setting.state.status = f_string_dynamic_append_nulless(f_console_symbol_short_normal_s, &destination[i]->array[destination[i]->used]);
           }
           else if (console[i]->flag & f_console_flag_inverse_e) {
-            data_make->setting->state.status = f_string_dynamic_append_nulless(f_console_symbol_short_inverse_s, &destination[i]->array[destination[i]->used]);
+            data_make->main->setting.state.status = f_string_dynamic_append_nulless(f_console_symbol_short_inverse_s, &destination[i]->array[destination[i]->used]);
           }
 
-          if (F_status_is_error_not(data_make->setting->state.status)) {
-            data_make->setting->state.status = f_string_dynamic_append_nulless(parameter[i], &destination[i]->array[destination[i]->used]);
+          if (F_status_is_error_not(data_make->main->setting.state.status)) {
+            data_make->main->setting.state.status = f_string_dynamic_append_nulless(parameter[i], &destination[i]->array[destination[i]->used]);
           }
 
-          if (F_status_is_error_not(data_make->setting->state.status)) {
-            data_make->setting->state.status = f_string_dynamic_append_nulless(destination[i]->array[destination[i]->used], &destination_option[i]->array[destination_option[i]->used]);
+          if (F_status_is_error_not(data_make->main->setting.state.status)) {
+            data_make->main->setting.state.status = f_string_dynamic_append_nulless(destination[i]->array[destination[i]->used], &destination_option[i]->array[destination_option[i]->used]);
           }
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
             return;
           }
@@ -235,22 +235,22 @@ extern "C" {
           ++destination[i]->used;
           ++destination_option[i]->used;
 
-          data_make->setting->state.status = f_string_dynamics_increase_by(fake_allocation_small_d, destination[i]);
+          data_make->main->setting.state.status = f_string_dynamics_increase_by(fake_allocation_small_d, destination[i]);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase_by));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase_by));
 
             return;
           }
 
-          data_make->setting->state.status = f_string_dynamic_append_nulless(source[i].array[j], &destination[i]->array[destination[i]->used]);
+          data_make->main->setting.state.status = f_string_dynamic_append_nulless(source[i].array[j], &destination[i]->array[destination[i]->used]);
 
-          if (F_status_is_error_not(data_make->setting->state.status)) {
-            data_make->setting->state.status = f_string_dynamic_append_nulless(source[i].array[j], &destination_value[i]->array[destination_value[i]->used]);
+          if (F_status_is_error_not(data_make->main->setting.state.status)) {
+            data_make->main->setting.state.status = f_string_dynamic_append_nulless(source[i].array[j], &destination_value[i]->array[destination_value[i]->used]);
           }
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
             return;
           }
@@ -275,27 +275,27 @@ extern "C" {
       };
 
       const f_console_parameter_t *console[] = {
-        &data_make->program->parameters.array[fake_parameter_build_e],
-        &data_make->program->parameters.array[fake_parameter_data_e],
-        &data_make->program->parameters.array[fake_parameter_documents_e],
-        &data_make->program->parameters.array[fake_parameter_fakefile_e],
-        &data_make->program->parameters.array[fake_parameter_licenses_e],
-        &data_make->program->parameters.array[fake_parameter_process_e],
-        &data_make->program->parameters.array[fake_parameter_settings_e],
-        &data_make->program->parameters.array[fake_parameter_sources_e],
-        &data_make->program->parameters.array[fake_parameter_work_e],
+        &data_make->main->program.parameters.array[fake_parameter_build_e],
+        &data_make->main->program.parameters.array[fake_parameter_data_e],
+        &data_make->main->program.parameters.array[fake_parameter_documents_e],
+        &data_make->main->program.parameters.array[fake_parameter_fakefile_e],
+        &data_make->main->program.parameters.array[fake_parameter_licenses_e],
+        &data_make->main->program.parameters.array[fake_parameter_process_e],
+        &data_make->main->program.parameters.array[fake_parameter_settings_e],
+        &data_make->main->program.parameters.array[fake_parameter_sources_e],
+        &data_make->main->program.parameters.array[fake_parameter_work_e],
       };
 
       const f_string_dynamic_t source[] = {
-        data_make->data->setting->build,
-        data_make->data->setting->data,
-        data_make->data->setting->documents,
-        data_make->data->setting->fakefile,
-        data_make->data->setting->licenses,
-        data_make->data->setting->process,
-        data_make->data->setting->settings,
-        data_make->data->setting->sources,
-        data_make->data->setting->work,
+        data_make->data->main->setting.build,
+        data_make->data->main->setting.data,
+        data_make->data->main->setting.documents,
+        data_make->data->main->setting.fakefile,
+        data_make->data->main->setting.licenses,
+        data_make->data->main->setting.process,
+        data_make->data->main->setting.settings,
+        data_make->data->main->setting.sources,
+        data_make->data->main->setting.work,
       };
 
       f_string_dynamics_t * const destination[] = {
@@ -339,44 +339,44 @@ extern "C" {
         if (!(console[i]->result & f_console_result_found_e)) continue;
 
         if (destination[i]->used + 2 > destination[i]->size) {
-          data_make->setting->state.status = f_string_dynamics_increase_by(fake_allocation_small_d, destination[i]);
+          data_make->main->setting.state.status = f_string_dynamics_increase_by(fake_allocation_small_d, destination[i]);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase_by));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase_by));
 
             return;
           }
         }
 
-        data_make->setting->state.status = f_string_dynamics_increase(fake_allocation_small_d, destination_option[i]);
+        data_make->main->setting.state.status = f_string_dynamics_increase(fake_allocation_small_d, destination_option[i]);
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
-          data_make->setting->state.status = f_string_dynamics_increase(fake_allocation_small_d, destination_value[i]);
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
+          data_make->main->setting.state.status = f_string_dynamics_increase(fake_allocation_small_d, destination_value[i]);
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase));
 
           return;
         }
 
         if (console[i]->flag & f_console_flag_normal_e) {
-          data_make->setting->state.status = f_string_dynamic_append_nulless(f_console_symbol_short_normal_s, &destination[i]->array[destination[i]->used]);
+          data_make->main->setting.state.status = f_string_dynamic_append_nulless(f_console_symbol_short_normal_s, &destination[i]->array[destination[i]->used]);
         }
         else if (console[i]->flag & f_console_flag_inverse_e) {
-          data_make->setting->state.status = f_string_dynamic_append_nulless(f_console_symbol_short_inverse_s, &destination[i]->array[destination[i]->used]);
+          data_make->main->setting.state.status = f_string_dynamic_append_nulless(f_console_symbol_short_inverse_s, &destination[i]->array[destination[i]->used]);
         }
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
-          data_make->setting->state.status = f_string_dynamic_append_nulless(parameter[i], &destination[i]->array[destination[i]->used]);
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
+          data_make->main->setting.state.status = f_string_dynamic_append_nulless(parameter[i], &destination[i]->array[destination[i]->used]);
         }
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
-          data_make->setting->state.status = f_string_dynamic_append_nulless(destination[i]->array[destination[i]->used], &destination_option[i]->array[destination_option[i]->used]);
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
+          data_make->main->setting.state.status = f_string_dynamic_append_nulless(destination[i]->array[destination[i]->used], &destination_option[i]->array[destination_option[i]->used]);
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
           return;
         }
@@ -384,22 +384,22 @@ extern "C" {
         ++destination[i]->used;
         ++destination_option[i]->used;
 
-        data_make->setting->state.status = f_string_dynamics_increase_by(fake_allocation_small_d, destination[i]);
+        data_make->main->setting.state.status = f_string_dynamics_increase_by(fake_allocation_small_d, destination[i]);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase_by));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase_by));
 
           return;
         }
 
-        data_make->setting->state.status = f_string_dynamic_append_nulless(source[i], &destination[i]->array[destination[i]->used]);
+        data_make->main->setting.state.status = f_string_dynamic_append_nulless(source[i], &destination[i]->array[destination[i]->used]);
 
-        if (F_status_is_error_not(data_make->setting->state.status)) {
-          data_make->setting->state.status = f_string_dynamic_append_nulless(source[i], &destination_value[i]->array[destination_value[i]->used]);
+        if (F_status_is_error_not(data_make->main->setting.state.status)) {
+          data_make->main->setting.state.status = f_string_dynamic_append_nulless(source[i], &destination_value[i]->array[destination_value[i]->used]);
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
           return;
         }
index 0401b7855818df2f644f3285d6f1bd2580949b53..5b4da74a2e294f8594b01133794d91df11f9966c 100644 (file)
@@ -22,7 +22,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     Errors (with error bit) from: f_string_dynamic_append().
index aa99977d7311dcc1eae68151d0e4767282c388b1..a3f9fa15ff609a37868ef34b80f780638123d9cb 100644 (file)
@@ -7,49 +7,48 @@ extern "C" {
 #ifndef _di_fake_make_operate_
   void fake_make_operate(fake_data_t * const data) {
 
-    if (!data || !data->program || !data->setting) return;
+    if (!data || !data->main) return;
 
-    if (!((++data->program->signal_check) % fake_signal_check_d)) {
-      if (fll_program_standard_signal_received(data->program)) {
-        fll_program_print_signal_received(data->program->warning, data->program->signal_received);
+    if (!((++data->main->program.signal_check) % fake_signal_check_d)) {
+      if (fll_program_standard_signal_received(&data->main->program)) {
+        fll_program_print_signal_received(data->main->program.warning, data->main->program.signal_received);
 
-        data->setting->state.status = F_status_set_error(F_interrupt);
+        data->main->setting.state.status = F_status_set_error(F_interrupt);
 
         return;
       }
     }
 
-    fake_make_print_now_making(data->setting, data->program->message, data->setting->fakefile);
+    fake_make_print_message_now_making(&data->main->program.message, data->main->setting.fakefile);
 
     f_array_lengths_t section_stack = f_array_lengths_t_initialize;
     fake_make_data_t data_make = fake_make_data_t_initialize;
 
     data_make.data = data;
-    data_make.program = data->program;
-    data_make.setting = data->setting;
+    data_make.main = data->main;
 
-    data->setting->state.status = f_string_dynamics_increase(data->setting->state.step_small, &data_make.path.stack);
+    data->main->setting.state.status = f_string_dynamics_increase(data->main->setting.state.step_small, &data_make.path.stack);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data_make.program->error, macro_fake_f(f_string_dynamics_increase));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data_make.main->program.error, macro_fake_f(f_string_dynamics_increase));
 
       return;
     }
 
-    data->setting->state.status = f_path_current(F_true, &data_make.path.stack.array[0]);
+    data->main->setting.state.status = f_path_current(F_true, &data_make.path.stack.array[0]);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data_make.program->error, macro_fake_f(f_path_current));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data_make.main->program.error, macro_fake_f(f_path_current));
 
       fake_make_data_delete(&data_make);
 
       return;
     }
 
-    data->setting->state.status = f_directory_open(data_make.path.stack.array[0], F_false, &data_make.path.top.id);
+    data->main->setting.state.status = f_directory_open(data_make.path.stack.array[0], F_false, &data_make.path.top.id);
 
-    if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error(&data_make.program->error, macro_fake_f(f_directory_open));
+    if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error(&data_make.main->program.error, macro_fake_f(f_directory_open));
 
       fake_make_data_delete(&data_make);
 
@@ -60,9 +59,9 @@ extern "C" {
 
     fake_make_load_parameters(&data_make);
 
-    fake_make_load_fakefile(&data_make, data->program->pipe & fll_program_data_pipe_input_e);
+    fake_make_load_fakefile(&data_make, data->main->program.pipe & fll_program_data_pipe_input_e);
 
-    if (F_status_is_error(data->setting->state.status)) {
+    if (F_status_is_error(data->main->setting.state.status)) {
       fake_make_data_delete(&data_make);
 
       return;
@@ -71,7 +70,7 @@ extern "C" {
     if (!data_make.buffer.used) {
       fake_make_data_delete(&data_make);
 
-      data->setting->state.status = F_data_not;
+      data->main->setting.state.status = F_data_not;
 
       return;
     }
@@ -79,106 +78,107 @@ extern "C" {
     if (data_make.setting_make.fail == fake_make_operation_fail_exit_e) {
       data_make.error.prefix = fl_print_error_s;
       data_make.error.suffix = f_string_empty_s;
-      data_make.error.context = data->program->context.set.error;
-      data_make.error.notable = data->program->context.set.notable;
+      data_make.error.context = data->main->program.context.set.error;
+      data_make.error.notable = data->main->program.context.set.notable;
       data_make.error.to.stream = F_type_error_d;
       data_make.error.to.id = F_type_descriptor_error_d;
-      data_make.error.set = &data->program->context.set;
+      data_make.error.set = &data->main->program.context.set;
     }
     else if (data_make.setting_make.fail == fake_make_operation_fail_warn_e) {
       data_make.error.prefix = fl_print_warning_s;
       data_make.error.suffix = f_string_empty_s;
-      data_make.error.context = data->program->context.set.warning;
-      data_make.error.notable = data->program->context.set.notable;
+      data_make.error.context = data->main->program.context.set.warning;
+      data_make.error.notable = data->main->program.context.set.notable;
       data_make.error.to.stream = F_type_output_d;
       data_make.error.to.id = F_type_descriptor_output_d;
-      data_make.error.set = &data->program->context.set;
+      data_make.error.set = &data->main->program.context.set;
     }
     else {
       data_make.error.to.stream = 0;
       data_make.error.prefix = f_string_empty_s;
       data_make.error.suffix = f_string_empty_s;
       data_make.error.to.id = -1;
-      data_make.error.set = &data->program->context.set;
+      data_make.error.set = &data->main->program.context.set;
     }
 
-    data_make.error.verbosity = data->program->message.verbosity;
+    data_make.error.verbosity = data->main->program.message.verbosity;
+    data_make.error.custom = data->main;
 
-    if (data->program->parameters.remaining.used) {
+    if (data->main->program.parameters.remaining.used) {
       f_array_length_t i = 0;
       f_array_length_t j = 0;
       f_string_range_t range = f_string_range_t_initialize;
       f_array_length_t index = 0;
 
-      data->setting->state.status = F_none;
+      data->main->setting.state.status = F_none;
 
       // Validate the remaining parameters.
-      for (i = 0; i < data->program->parameters.remaining.used; ++i) {
+      for (i = 0; i < data->main->program.parameters.remaining.used; ++i) {
 
-        index = data->program->parameters.remaining.array[i];
+        index = data->main->program.parameters.remaining.array[i];
 
-        if (!data->program->parameters.arguments.array[index].used) {
-          data->setting->state.status = F_status_set_error(F_parameter);
+        if (!data->main->program.parameters.arguments.array[index].used) {
+          data->main->setting.state.status = F_status_set_error(F_parameter);
 
           break;
         }
 
         range.start = 0;
-        range.stop = data->program->parameters.arguments.array[index].used - 1;
+        range.stop = data->main->program.parameters.arguments.array[index].used - 1;
 
         for (j = 0; j < data_make.fakefile.used; ++j) {
-          if (fl_string_dynamic_partial_compare(data->program->parameters.arguments.array[index], data_make.buffer, range, data_make.fakefile.array[j].name) == F_equal_to) break;
+          if (fl_string_dynamic_partial_compare(data->main->program.parameters.arguments.array[index], data_make.buffer, range, data_make.fakefile.array[j].name) == F_equal_to) break;
         } // for
 
         if (j == data_make.fakefile.used) {
-          data->setting->state.status = F_status_set_error(F_parameter);
+          data->main->setting.state.status = F_status_set_error(F_parameter);
 
           break;
         }
       } // for
 
-      if (F_status_is_error(data->setting->state.status)) {
-        fake_make_print_error_argument_invalid_section(data->setting, data->program->error, data->program->parameters.arguments.array[data->program->parameters.remaining.array[i]]);
+      if (F_status_is_error(data->main->setting.state.status)) {
+        fake_make_print_error_argument_invalid_section(&data->main->program.error, data->main->program.parameters.arguments.array[data->main->program.parameters.remaining.array[i]]);
       }
       else {
         int result = 0;
 
-        for (i = 0; i < data->program->parameters.remaining.used; ++i) {
+        for (i = 0; i < data->main->program.parameters.remaining.used; ++i) {
 
-          index = data->program->parameters.remaining.array[i];
+          index = data->main->program.parameters.remaining.array[i];
           range.start = 0;
-          range.stop = data->program->parameters.arguments.array[index].used - 1;
+          range.stop = data->main->program.parameters.arguments.array[index].used - 1;
 
           for (j = 0; j < data_make.fakefile.used; ++j) {
 
-            if (fl_string_dynamic_partial_compare(data->program->parameters.arguments.array[index], data_make.buffer, range, data_make.fakefile.array[j].name) == F_equal_to) {
+            if (fl_string_dynamic_partial_compare(data->main->program.parameters.arguments.array[index], data_make.buffer, range, data_make.fakefile.array[j].name) == F_equal_to) {
               {
                 int result = fake_make_operate_section(&data_make, j, &section_stack);
 
-                if (data->setting->state.status == F_child) {
-                  data->program->child = result;
+                if (data->main->setting.state.status == F_child) {
+                  data->main->program.child = result;
 
                   break;
                 }
               }
 
-              const f_status_t status = data->setting->state.status;
+              const f_status_t status = data->main->setting.state.status;
 
-              data->setting->state.status = f_path_change_at(data_make.path.top.id);
+              data->main->setting.state.status = f_path_change_at(data_make.path.top.id);
 
-              if (F_status_is_error(data->setting->state.status)) {
-                fake_make_print_warning_cannot_change_back(data->setting, data->program->warning, data_make.path.stack.array[0]);
+              if (F_status_is_error(data->main->setting.state.status)) {
+                fake_make_print_warning_cannot_change_back(&data->main->program.warning, data_make.path.stack.array[0]);
               }
 
-              data->setting->state.status = status;
+              data->main->setting.state.status = status;
 
               break;
             }
 
-            if (F_status_is_error(data->setting->state.status)) break;
+            if (F_status_is_error(data->main->setting.state.status)) break;
           } // for
 
-          if (data->setting->state.status == F_child || F_status_is_error(data->setting->state.status)) break;
+          if (data->main->setting.state.status == F_child || F_status_is_error(data->main->setting.state.status)) break;
         } // for
       }
     }
@@ -186,21 +186,21 @@ extern "C" {
       {
         const int result = fake_make_operate_section(&data_make, data_make.id_main, &section_stack);
 
-        if (data->setting->state.status == F_child) {
-          data->program->child = result;
+        if (data->main->setting.state.status == F_child) {
+          data->main->program.child = result;
         }
       }
 
-      if (data->setting->state.status != F_child) {
-        const f_status_t status = data->setting->state.status;
+      if (data->main->setting.state.status != F_child) {
+        const f_status_t status = data->main->setting.state.status;
 
-        data->setting->state.status = f_path_change_at(data_make.path.top.id);
+        data->main->setting.state.status = f_path_change_at(data_make.path.top.id);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_make_print_warning_cannot_change_back(data->setting, data->program->warning, data_make.path.stack.array[0]);
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_make_print_warning_cannot_change_back(&data->main->program.warning, data_make.path.stack.array[0]);
         }
 
-        data->setting->state.status = status;
+        data->main->setting.state.status = status;
       }
     }
 
@@ -210,8 +210,8 @@ extern "C" {
     f_array_lengths_resize(0, &section_stack);
     fake_make_data_delete(&data_make);
 
-    if (F_status_is_error_not(data->setting->state.status)) {
-      data->setting->state.status = F_none;
+    if (F_status_is_error_not(data->main->setting.state.status)) {
+      data->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_make_operate_
@@ -219,15 +219,15 @@ extern "C" {
 #ifndef _di_fake_make_operate_expand_
   void fake_make_operate_expand(fake_make_data_t * const data_make, const f_string_range_t section_name, const f_fss_content_t content, const f_uint8s_t quotes) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (!data_make || !data_make->main) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
     if (!content.used) return;
 
     // Pre-allocate the known arguments size.
-    data_make->setting->state.status = f_string_dynamics_increase_by(content.used, &data_make->cache_arguments);
+    data_make->main->setting.state.status = f_string_dynamics_increase_by(content.used, &data_make->cache_arguments);
 
-    if (F_status_is_error(data_make->setting->state.status) || data_make->setting->state.status == F_string_too_large) {
-      fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase_by));
+    if (F_status_is_error(data_make->main->setting.state.status) || data_make->main->setting.state.status == F_string_too_large) {
+      fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase_by));
 
       return;
     }
@@ -341,14 +341,14 @@ extern "C" {
       &data_make->parameter_value.work,
     };
 
-    data_make->setting->state.flag = 0;
-    data_make->setting->state.handle = 0;
-    data_make->setting->state.data = 0;
+    data_make->main->setting.state.flag = 0;
+    data_make->main->setting.state.handle = 0;
+    data_make->main->setting.state.data = 0;
 
-    data_make->setting->state.status = f_string_dynamics_increase(data_make->setting->state.step_small, &data_make->cache_arguments);
+    data_make->main->setting.state.status = f_string_dynamics_increase(data_make->main->setting.state.step_small, &data_make->cache_arguments);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase));
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase));
 
       return;
     }
@@ -367,10 +367,10 @@ extern "C" {
         if (quotes.array[i]) {
           ++data_make->cache_arguments.used;
 
-          data_make->setting->state.status = f_string_dynamics_increase(data_make->setting->state.step_small, &data_make->cache_arguments);
+          data_make->main->setting.state.status = f_string_dynamics_increase(data_make->main->setting.state.step_small, &data_make->cache_arguments);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase));
 
             break;
           }
@@ -383,11 +383,11 @@ extern "C" {
 
       range = content.array[i];
 
-      fl_iki_read(&data_make->buffer, &range, iki_data, &data_make->setting->state);
+      fl_iki_read(&data_make->buffer, &range, iki_data, &data_make->main->setting.state);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        if (F_status_set_fine(data_make->setting->state.status) != F_interrupt) {
-          fake_print_error(&data_make->program->error, macro_fake_f(fl_iki_read));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        if (F_status_set_fine(data_make->main->setting.state.status) != F_interrupt) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(fl_iki_read));
         }
 
         break;
@@ -405,10 +405,10 @@ extern "C" {
           range.start = content.array[i].start;
           range.stop = iki_data->variable.array[0].start - 1;
 
-          data_make->setting->state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, range, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+          data_make->main->setting.state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, range, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_partial_append_nulless));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_partial_append_nulless));
 
             break;
           }
@@ -420,31 +420,31 @@ extern "C" {
 
           is = 0;
 
-          data_make->setting->state.status = fl_string_dynamic_partial_compare_string(vocabulary_define.string, data_make->buffer, vocabulary_define.used, iki_data->vocabulary.array[j]);
+          data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(vocabulary_define.string, data_make->buffer, vocabulary_define.used, iki_data->vocabulary.array[j]);
 
-          if (data_make->setting->state.status == F_equal_to) {
+          if (data_make->main->setting.state.status == F_equal_to) {
             is = 2;
             iki_type |= 0x2;
           }
-          else if (data_make->setting->state.status == F_equal_to_not) {
-            data_make->setting->state.status = fl_string_dynamic_partial_compare_string(vocabulary_parameter.string, data_make->buffer, vocabulary_parameter.used, iki_data->vocabulary.array[j]);
+          else if (data_make->main->setting.state.status == F_equal_to_not) {
+            data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(vocabulary_parameter.string, data_make->buffer, vocabulary_parameter.used, iki_data->vocabulary.array[j]);
 
-            if (data_make->setting->state.status == F_equal_to) {
+            if (data_make->main->setting.state.status == F_equal_to) {
               is = 1;
               iki_type |= 0x1;
             }
-            else if (data_make->setting->state.status == F_equal_to_not) {
-              data_make->setting->state.status = fl_string_dynamic_partial_compare_string(vocabulary_context.string, data_make->buffer, vocabulary_context.used, iki_data->vocabulary.array[j]);
+            else if (data_make->main->setting.state.status == F_equal_to_not) {
+              data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(vocabulary_context.string, data_make->buffer, vocabulary_context.used, iki_data->vocabulary.array[j]);
 
-              if (data_make->setting->state.status == F_equal_to) {
+              if (data_make->main->setting.state.status == F_equal_to) {
                 is = 3;
                 iki_type |= 0x4;
               }
             }
           }
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(fl_string_dynamic_partial_compare));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(fl_string_dynamic_partial_compare));
 
             break;
           }
@@ -456,19 +456,19 @@ extern "C" {
             if (fl_string_dynamic_partial_compare_string(fake_make_parameter_variable_return_s.string, data_make->buffer, fake_make_parameter_variable_return_s.used, iki_data->content.array[j]) == F_equal_to) {
 
               if (data_make->setting_make.parameter.array[0].value.array[0].used) {
-                data_make->setting->state.status = f_string_dynamic_append_nulless(data_make->setting_make.parameter.array[0].value.array[0], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                data_make->main->setting.state.status = f_string_dynamic_append_nulless(data_make->setting_make.parameter.array[0].value.array[0], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                if (F_status_is_error(data_make->setting->state.status)) {
-                  fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+                if (F_status_is_error(data_make->main->setting.state.status)) {
+                  fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
                   break;
                 }
               }
               else {
-                data_make->setting->state.status = f_string_dynamic_append(f_string_ascii_0_s, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                data_make->main->setting.state.status = f_string_dynamic_append(f_string_ascii_0_s, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                if (F_status_is_error(data_make->setting->state.status)) {
-                  fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append));
+                if (F_status_is_error(data_make->main->setting.state.status)) {
+                  fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append));
 
                   break;
                 }
@@ -479,27 +479,27 @@ extern "C" {
             else if (fl_string_dynamic_partial_compare_string(fake_make_parameter_variable_top_s.string, data_make->buffer, fake_make_parameter_variable_top_s.used, iki_data->content.array[j]) == F_equal_to) {
 
               if (data_make->path.stack.used) {
-                data_make->setting->state.status = f_string_dynamic_increase_by(data_make->path.stack.array[0].used + f_path_separator_s.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                data_make->main->setting.state.status = f_string_dynamic_increase_by(data_make->path.stack.array[0].used + f_path_separator_s.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                if (F_status_is_error(data_make->setting->state.status)) {
-                  fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_increase_by));
+                if (F_status_is_error(data_make->main->setting.state.status)) {
+                  fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_increase_by));
 
                   break;
                 }
 
-                data_make->setting->state.status = f_string_dynamic_append(data_make->path.stack.array[0], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                data_make->main->setting.state.status = f_string_dynamic_append(data_make->path.stack.array[0], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                if (F_status_is_error(data_make->setting->state.status)) {
-                  fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append));
+                if (F_status_is_error(data_make->main->setting.state.status)) {
+                  fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append));
 
                   break;
                 }
 
                 // For safe path handling, always append the trailing slash.
-                data_make->setting->state.status = f_string_dynamic_append_assure(f_path_separator_s, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                data_make->main->setting.state.status = f_string_dynamic_append_assure(f_path_separator_s, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                if (F_status_is_error(data_make->setting->state.status)) {
-                  fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_assure));
+                if (F_status_is_error(data_make->main->setting.state.status)) {
+                  fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_assure));
 
                   break;
                 }
@@ -510,27 +510,27 @@ extern "C" {
             else if (fl_string_dynamic_partial_compare_string(fake_make_parameter_variable_current_s.string, data_make->buffer, fake_make_parameter_variable_current_s.used, iki_data->content.array[j]) == F_equal_to) {
 
               if (data_make->path.stack.used) {
-                data_make->setting->state.status = f_string_dynamic_increase_by(data_make->path.stack.array[data_make->path.stack.used - 1].used + f_path_separator_s.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                data_make->main->setting.state.status = f_string_dynamic_increase_by(data_make->path.stack.array[data_make->path.stack.used - 1].used + f_path_separator_s.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                if (F_status_is_error(data_make->setting->state.status)) {
-                  fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_increase_by));
+                if (F_status_is_error(data_make->main->setting.state.status)) {
+                  fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_increase_by));
 
                   break;
                 }
 
-                data_make->setting->state.status = f_string_dynamic_append(data_make->path.stack.array[data_make->path.stack.used - 1], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                data_make->main->setting.state.status = f_string_dynamic_append(data_make->path.stack.array[data_make->path.stack.used - 1], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                if (F_status_is_error(data_make->setting->state.status)) {
-                  fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append));
+                if (F_status_is_error(data_make->main->setting.state.status)) {
+                  fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append));
 
                   break;
                 }
 
                 // For safe path handling, always append the trailing slash.
-                data_make->setting->state.status = f_string_dynamic_append_assure(f_path_separator_s, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                data_make->main->setting.state.status = f_string_dynamic_append_assure(f_path_separator_s, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                if (F_status_is_error(data_make->setting->state.status)) {
-                  fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_assure));
+                if (F_status_is_error(data_make->main->setting.state.status)) {
+                  fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_assure));
 
                   break;
                 }
@@ -561,10 +561,10 @@ extern "C" {
                     } // for
                   } // for
 
-                  data_make->setting->state.status = f_string_dynamic_increase_by(l + f_string_space_s.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                  data_make->main->setting.state.status = f_string_dynamic_increase_by(l + f_string_space_s.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                  if (F_status_is_error(data_make->setting->state.status)) {
-                    fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_increase_by));
+                  if (F_status_is_error(data_make->main->setting.state.status)) {
+                    fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_increase_by));
 
                     break;
                   }
@@ -574,19 +574,19 @@ extern "C" {
                     if (!reserved_value[k]->array[l].used) continue;
 
                     if (separate) {
-                      data_make->setting->state.status = f_string_dynamic_append(f_string_space_s, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                      data_make->main->setting.state.status = f_string_dynamic_append(f_string_space_s, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                      if (F_status_is_error(data_make->setting->state.status)) {
-                        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append));
+                      if (F_status_is_error(data_make->main->setting.state.status)) {
+                        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append));
 
                         break;
                       }
                     }
 
-                    data_make->setting->state.status = f_string_dynamic_append_nulless(reserved_value[k]->array[l], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                    data_make->main->setting.state.status = f_string_dynamic_append_nulless(reserved_value[k]->array[l], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                    if (F_status_is_error(data_make->setting->state.status)) {
-                      fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+                    if (F_status_is_error(data_make->main->setting.state.status)) {
+                      fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
                       break;
                     }
@@ -606,10 +606,10 @@ extern "C" {
                     if (separate) {
                       ++data_make->cache_arguments.used;
 
-                      data_make->setting->state.status = f_string_dynamics_increase(data_make->setting->state.step_small, &data_make->cache_arguments);
+                      data_make->main->setting.state.status = f_string_dynamics_increase(data_make->main->setting.state.step_small, &data_make->cache_arguments);
 
-                      if (F_status_is_error(data_make->setting->state.status)) {
-                        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase));
+                      if (F_status_is_error(data_make->main->setting.state.status)) {
+                        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase));
 
                         break;
                       }
@@ -617,10 +617,10 @@ extern "C" {
                       data_make->cache_arguments.array[data_make->cache_arguments.used].used = 0;
                     }
 
-                    data_make->setting->state.status = f_string_dynamic_append_nulless(reserved_value[k]->array[l], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                    data_make->main->setting.state.status = f_string_dynamic_append_nulless(reserved_value[k]->array[l], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                    if (F_status_is_error(data_make->setting->state.status)) {
-                      fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+                    if (F_status_is_error(data_make->main->setting.state.status)) {
+                      fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
                       break;
                     }
@@ -632,10 +632,10 @@ extern "C" {
                 break;
               } // for
 
-              if (F_status_is_error(data_make->setting->state.status)) break;
+              if (F_status_is_error(data_make->main->setting.state.status)) break;
             }
 
-            if (unmatched && F_status_is_error_not(data_make->setting->state.status)) {
+            if (unmatched && F_status_is_error_not(data_make->main->setting.state.status)) {
               for (k = 0; k < parameter->used; ++k) {
 
                 // Check against IKI variable list.
@@ -659,10 +659,10 @@ extern "C" {
                       } // for
                     } // for
 
-                    data_make->setting->state.status = f_string_dynamic_increase_by(l + f_string_space_s.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                    data_make->main->setting.state.status = f_string_dynamic_increase_by(l + f_string_space_s.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                    if (F_status_is_error(data_make->setting->state.status)) {
-                      fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_increase_by));
+                    if (F_status_is_error(data_make->main->setting.state.status)) {
+                      fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_increase_by));
 
                       break;
                     }
@@ -674,10 +674,10 @@ extern "C" {
 
                     if (separate) {
                       if (quotes.array[i]) {
-                        data_make->setting->state.status = f_string_dynamic_append(f_string_space_s, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                        data_make->main->setting.state.status = f_string_dynamic_append(f_string_space_s, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                        if (F_status_is_error(data_make->setting->state.status)) {
-                          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append));
+                        if (F_status_is_error(data_make->main->setting.state.status)) {
+                          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append));
 
                           break;
                         }
@@ -687,10 +687,10 @@ extern "C" {
                       else {
                         ++data_make->cache_arguments.used;
 
-                        data_make->setting->state.status = f_string_dynamics_increase(data_make->setting->state.step_small, &data_make->cache_arguments);
+                        data_make->main->setting.state.status = f_string_dynamics_increase(data_make->main->setting.state.step_small, &data_make->cache_arguments);
 
-                        if (F_status_is_error(data_make->setting->state.status)) {
-                          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase));
+                        if (F_status_is_error(data_make->main->setting.state.status)) {
+                          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase));
 
                           break;
                         }
@@ -699,10 +699,10 @@ extern "C" {
                       }
                     }
 
-                    data_make->setting->state.status = f_string_dynamic_append_nulless(parameter->array[k].value.array[l], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+                    data_make->main->setting.state.status = f_string_dynamic_append_nulless(parameter->array[k].value.array[l], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-                    if (F_status_is_error(data_make->setting->state.status)) {
-                      fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+                    if (F_status_is_error(data_make->main->setting.state.status)) {
+                      fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
                       break;
                     }
@@ -710,25 +710,25 @@ extern "C" {
                     separate = F_true;
                   } // for
 
-                  if (F_status_is_error(data_make->setting->state.status)) break;
+                  if (F_status_is_error(data_make->main->setting.state.status)) break;
                 }
 
                 break;
               } // for
             }
 
-            if (F_status_is_error(data_make->setting->state.status)) break;
+            if (F_status_is_error(data_make->main->setting.state.status)) break;
 
             if (unmatched) {
               fake_make_operate_expand_build(data_make, quotes.array[i], iki_data->content.array[j]);
 
-              if (F_status_is_error(data_make->setting->state.status)) {
-                fake_print_error(&data_make->program->error, macro_fake_f(fake_make_operate_expand_build));
+              if (F_status_is_error(data_make->main->setting.state.status)) {
+                fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_operate_expand_build));
 
                 break;
               }
 
-              if (data_make->setting->state.status == F_true) {
+              if (data_make->main->setting.state.status == F_true) {
                 iki_type |= 0x8;
               }
             }
@@ -736,21 +736,21 @@ extern "C" {
           else if (is == 2) {
             fake_make_operate_expand_environment(data_make, quotes.array[i], iki_data->content.array[j]);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error(&data_make->program->error, macro_fake_f(fake_make_operate_expand_environment));
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_operate_expand_environment));
 
               break;
             }
 
-            if (data_make->setting->state.status == F_true) {
+            if (data_make->main->setting.state.status == F_true) {
               iki_type |= 0x8;
             }
           }
           else if (is == 3) {
             fake_make_operate_expand_context(data_make, quotes.array[i], iki_data->content.array[j]);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error(&data_make->program->error, macro_fake_f(fake_make_operate_expand_context));
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_operate_expand_context));
 
               break;
             }
@@ -764,10 +764,10 @@ extern "C" {
               range.start = iki_data->variable.array[j].stop + 1;
               range.stop = iki_data->variable.array[j + 1].start - 1;
 
-              data_make->setting->state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, range, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+              data_make->main->setting.state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, range, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-              if (F_status_is_error(data_make->setting->state.status)) {
-                fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_partial_append_nulless));
+              if (F_status_is_error(data_make->main->setting.state.status)) {
+                fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_partial_append_nulless));
 
                 break;
               }
@@ -775,17 +775,17 @@ extern "C" {
           }
         } // for
 
-        if (F_status_is_error(data_make->setting->state.status)) break;
+        if (F_status_is_error(data_make->main->setting.state.status)) break;
 
         // Copy everything after the last IKI variable to the end of the content.
         if (iki_data->variable.used && content.array[i].stop > iki_data->variable.array[iki_data->variable.used - 1].stop) {
           range.start = iki_data->variable.array[iki_data->variable.used - 1].stop + 1;
           range.stop = content.array[i].stop;
 
-          data_make->setting->state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, range, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+          data_make->main->setting.state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, range, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_partial_append_nulless));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_partial_append_nulless));
 
             break;
           }
@@ -794,10 +794,10 @@ extern "C" {
         if (!(content.array[i].start == iki_data->variable.array[0].start && content.array[i].stop == iki_data->variable.array[0].stop && !quotes.array[i]) || (iki_type & 0xb) && !quotes.array[i] || i && content.used > 1 && i + 1 == content.used) {
           ++data_make->cache_arguments.used;
 
-          data_make->setting->state.status = f_string_dynamics_increase(data_make->setting->state.step_small, &data_make->cache_arguments);
+          data_make->main->setting.state.status = f_string_dynamics_increase(data_make->main->setting.state.step_small, &data_make->cache_arguments);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase));
 
             break;
           }
@@ -806,20 +806,20 @@ extern "C" {
         }
       }
       else {
-        data_make->setting->state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, content.array[i], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+        data_make->main->setting.state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, content.array[i], &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_partial_append_nulless));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_partial_append_nulless));
 
           break;
         }
 
         ++data_make->cache_arguments.used;
 
-        data_make->setting->state.status = f_string_dynamics_increase(data_make->setting->state.step_small, &data_make->cache_arguments);
+        data_make->main->setting.state.status = f_string_dynamics_increase(data_make->main->setting.state.step_small, &data_make->cache_arguments);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase));
 
           break;
         }
@@ -853,12 +853,12 @@ extern "C" {
 
       for (; i < 3; ++i) {
 
-        data_make->setting->state.status = fl_string_dynamic_partial_compare_string(uint8_name[i].string, data_make->buffer, uint8_name[i].used, range_name);
+        data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(uint8_name[i].string, data_make->buffer, uint8_name[i].used, range_name);
 
-        if (data_make->setting->state.status == F_equal_to) {
+        if (data_make->main->setting.state.status == F_equal_to) {
           unmatched = F_false;
 
-          data_make->setting->state.status = f_conversion_number_unsigned_to_string(uint8_value[i], f_conversion_data_base_10_c, &data_make->cache_1);
+          data_make->main->setting.state.status = f_conversion_number_unsigned_to_string(uint8_value[i], f_conversion_data_base_10_c, &data_make->cache_1);
 
           break;
         }
@@ -888,16 +888,16 @@ extern "C" {
 
       for (i = 0; i < 7; ++i) {
 
-        data_make->setting->state.status = fl_string_dynamic_partial_compare_string(bool_name[i].string, data_make->buffer, bool_name[i].used, range_name);
+        data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(bool_name[i].string, data_make->buffer, bool_name[i].used, range_name);
 
-        if (data_make->setting->state.status == F_equal_to) {
+        if (data_make->main->setting.state.status == F_equal_to) {
           unmatched = F_false;
 
           if (bool_value[i]) {
-            data_make->setting->state.status = f_string_dynamic_append(fake_common_setting_bool_yes_s, &data_make->cache_1);
+            data_make->main->setting.state.status = f_string_dynamic_append(fake_common_setting_bool_yes_s, &data_make->cache_1);
           }
           else {
-            data_make->setting->state.status = f_string_dynamic_append(fake_common_setting_bool_no_s, &data_make->cache_1);
+            data_make->main->setting.state.status = f_string_dynamic_append(fake_common_setting_bool_no_s, &data_make->cache_1);
           }
 
           break;
@@ -948,12 +948,12 @@ extern "C" {
 
       for (i = 0; i < 17; ++i) {
 
-        data_make->setting->state.status = fl_string_dynamic_partial_compare_string(dynamic_name[i].string, data_make->buffer, dynamic_name[i].used, range_name);
+        data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(dynamic_name[i].string, data_make->buffer, dynamic_name[i].used, range_name);
 
-        if (data_make->setting->state.status == F_equal_to) {
+        if (data_make->main->setting.state.status == F_equal_to) {
           unmatched = F_false;
 
-          data_make->setting->state.status = f_string_dynamic_append_nulless(dynamic_value[i], &data_make->cache_1);
+          data_make->main->setting.state.status = f_string_dynamic_append_nulless(dynamic_value[i], &data_make->cache_1);
 
           break;
         }
@@ -1082,15 +1082,15 @@ extern "C" {
 
       for (i = 0; i < 36; ++i) {
 
-        data_make->setting->state.status = fl_string_dynamic_partial_compare_string(dynamics_name[i].string, data_make->buffer, dynamics_name[i].used, range_name);
+        data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(dynamics_name[i].string, data_make->buffer, dynamics_name[i].used, range_name);
 
-        if (data_make->setting->state.status == F_equal_to) {
+        if (data_make->main->setting.state.status == F_equal_to) {
           unmatched = F_false;
 
           for (j = 0; j < dynamics_value[i].used; ++j) {
 
-            data_make->setting->state.status = f_string_dynamic_mash(f_string_space_s, dynamics_value[i].array[j], &data_make->cache_1);
-            if (F_status_is_error(data_make->setting->state.status)) break;
+            data_make->main->setting.state.status = f_string_dynamic_mash(f_string_space_s, dynamics_value[i].array[j], &data_make->cache_1);
+            if (F_status_is_error(data_make->main->setting.state.status)) break;
           } // for
 
           if (dynamics_flag[i]) {
@@ -1102,38 +1102,38 @@ extern "C" {
       } // for
     }
 
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
     if (unmatched) {
-      data_make->setting->state.status = F_false;
+      data_make->main->setting.state.status = F_false;
 
       return;
     }
 
-    data_make->setting->state.status = f_string_dynamic_append_nulless(data_make->cache_1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+    data_make->main->setting.state.status = f_string_dynamic_append_nulless(data_make->cache_1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
 
-    if (F_status_is_error_not(data_make->setting->state.status) && !quote) {
+    if (F_status_is_error_not(data_make->main->setting.state.status) && !quote) {
       ++data_make->cache_arguments.used;
 
-      data_make->setting->state.status = f_string_dynamics_increase(data_make->setting->state.step_small, &data_make->cache_arguments);
+      data_make->main->setting.state.status = f_string_dynamics_increase(data_make->main->setting.state.step_small, &data_make->cache_arguments);
     }
 
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
     if (data_make->cache_1.used) {
-      data_make->setting->state.status = F_true;
+      data_make->main->setting.state.status = F_true;
 
       return;
     }
 
-    data_make->setting->state.status = F_data_not;
+    data_make->main->setting.state.status = F_data_not;
   }
 #endif // _di_fake_make_operate_expand_build_
 
 #ifndef _di_fake_make_operate_expand_context_
   void fake_make_operate_expand_context(fake_make_data_t * const data_make, const uint8_t quote, const f_string_range_t range_name) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     const f_string_static_t *context = 0;
 
@@ -1150,15 +1150,15 @@ extern "C" {
     };
 
     const f_color_set_t context_value[] = {
-      data_make->program->context.set.error,
-      data_make->program->context.set.important,
-      data_make->program->context.set.normal,
-      data_make->program->context.set.notable,
-      data_make->program->context.set.reset,
-      data_make->program->context.set.standout,
-      data_make->program->context.set.success,
-      data_make->program->context.set.title,
-      data_make->program->context.set.warning,
+      data_make->main->program.context.set.error,
+      data_make->main->program.context.set.important,
+      data_make->main->program.context.set.normal,
+      data_make->main->program.context.set.notable,
+      data_make->main->program.context.set.reset,
+      data_make->main->program.context.set.standout,
+      data_make->main->program.context.set.success,
+      data_make->main->program.context.set.title,
+      data_make->main->program.context.set.warning,
     };
 
     for (f_array_length_t i = 0; i < 9; ++i) {
@@ -1171,73 +1171,73 @@ extern "C" {
     } // for
 
     if (context) {
-      data_make->setting->state.status = f_string_dynamic_append_nulless(*context, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
-      if (F_status_is_error(data_make->setting->state.status)) return;
+      data_make->main->setting.state.status = f_string_dynamic_append_nulless(*context, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+      if (F_status_is_error(data_make->main->setting.state.status)) return;
     }
 
-    data_make->setting->state.status = F_true;
+    data_make->main->setting.state.status = F_true;
   }
 #endif // _di_fake_make_operate_expand_context_
 
 #ifndef _di_fake_make_operate_expand_environment_
   void fake_make_operate_expand_environment(fake_make_data_t * const data_make, const uint8_t quote, const f_string_range_t range_name) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     data_make->cache_1.used = 0;
     data_make->cache_2.used = 0;
 
-    data_make->setting->state.status = f_string_dynamic_increase_by((range_name.stop - range_name.start) + 2, &data_make->cache_1);
+    data_make->main->setting.state.status = f_string_dynamic_increase_by((range_name.stop - range_name.start) + 2, &data_make->cache_1);
 
-    if (F_status_is_error_not(data_make->setting->state.status)) {
-      data_make->setting->state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, range_name, &data_make->cache_1);
+    if (F_status_is_error_not(data_make->main->setting.state.status)) {
+      data_make->main->setting.state.status = f_string_dynamic_partial_append_nulless(data_make->buffer, range_name, &data_make->cache_1);
     }
 
-    if (F_status_is_error_not(data_make->setting->state.status)) {
-      data_make->setting->state.status = f_environment_get(data_make->cache_1, &data_make->cache_2);
+    if (F_status_is_error_not(data_make->main->setting.state.status)) {
+      data_make->main->setting.state.status = f_environment_get(data_make->cache_1, &data_make->cache_2);
     }
 
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
-    if (data_make->setting->state.status == F_exist_not) {
-      data_make->setting->state.status = F_false;
+    if (data_make->main->setting.state.status == F_exist_not) {
+      data_make->main->setting.state.status = F_false;
 
       return;
     }
 
-    data_make->setting->state.status = f_string_dynamics_increase(data_make->setting->state.step_small, &data_make->cache_arguments);
+    data_make->main->setting.state.status = f_string_dynamics_increase(data_make->main->setting.state.step_small, &data_make->cache_arguments);
 
-    if (F_status_is_error_not(data_make->setting->state.status)) {
-      data_make->setting->state.status = f_string_dynamic_increase_by(data_make->cache_2.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+    if (F_status_is_error_not(data_make->main->setting.state.status)) {
+      data_make->main->setting.state.status = f_string_dynamic_increase_by(data_make->cache_2.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
     }
 
-    if (F_status_is_error_not(data_make->setting->state.status)) {
-      data_make->setting->state.status = f_string_dynamic_append_nulless(data_make->cache_2, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
+    if (F_status_is_error_not(data_make->main->setting.state.status)) {
+      data_make->main->setting.state.status = f_string_dynamic_append_nulless(data_make->cache_2, &data_make->cache_arguments.array[data_make->cache_arguments.used]);
     }
 
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
     if (!quote) {
       ++data_make->cache_arguments.used;
 
-      data_make->setting->state.status = f_string_dynamics_increase(data_make->setting->state.step_small, &data_make->cache_arguments);
-      if (F_status_is_error(data_make->setting->state.status)) return;
+      data_make->main->setting.state.status = f_string_dynamics_increase(data_make->main->setting.state.step_small, &data_make->cache_arguments);
+      if (F_status_is_error(data_make->main->setting.state.status)) return;
     }
 
-    data_make->setting->state.status = data_make->cache_2.used ? F_true : F_data_not;
+    data_make->main->setting.state.status = data_make->cache_2.used ? F_true : F_data_not;
   }
 #endif // _di_fake_make_operate_expand_environment_
 
 #ifndef _di_fake_make_operate_section_
   int fake_make_operate_section(fake_make_data_t * const data_make, const f_array_length_t id_section, f_array_lengths_t * const section_stack) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !section_stack) return 0;
-    if (F_status_is_error(data_make->setting->state.status) || data_make->setting->state.status == F_child) return data_make->program->child;
+    if (!data_make || !data_make->main || !section_stack) return 0;
+    if (F_status_is_error(data_make->main->setting.state.status) || data_make->main->setting.state.status == F_child) return data_make->main->program.child;
 
     if (id_section >= data_make->fakefile.used) {
-      data_make->setting->state.status = F_status_set_error(F_parameter);
+      data_make->main->setting.state.status = F_status_set_error(F_parameter);
 
       fake_print_error(&data_make->error, macro_fake_f(fake_make_operate_section));
 
@@ -1245,9 +1245,9 @@ extern "C" {
     }
 
     // Add the operation id to the operation stack.
-    data_make->setting->state.status = f_array_lengths_increase(data_make->setting->state.step_small, section_stack);
+    data_make->main->setting.state.status = f_array_lengths_increase(data_make->main->setting.state.step_small, section_stack);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
+    if (F_status_is_error(data_make->main->setting.state.status)) {
       fake_print_error(&data_make->error, macro_fake_f(f_array_lengths_increase));
 
       return 0;
@@ -1257,7 +1257,7 @@ extern "C" {
 
     const f_fss_named_t *section = &data_make->fakefile.array[id_section];
 
-    fake_make_print_processing_section(data_make->setting, data_make->program->message, data_make->buffer, *section);
+    fake_make_print_message_processing_section(&data_make->main->program.message, data_make->buffer, *section);
 
     if (!section->objects.used) {
       --section_stack->used;
@@ -1346,7 +1346,7 @@ extern "C" {
     f_array_length_t i = 0;
     f_array_length_t j = 0;
 
-    for (i = 0; i < section->objects.used; ++i, data_make->setting->state.status = F_none) {
+    for (i = 0; i < section->objects.used; ++i, data_make->main->setting.state.status = F_none) {
 
       for (j = 0; j < data_make->cache_arguments.size; ++j) {
         data_make->cache_arguments.array[j].used = 0;
@@ -1358,16 +1358,16 @@ extern "C" {
       state_process.operation_previous = state_process.operation;
       state_process.operation = 0;
 
-      if (!((++data_make->program->signal_check) % fake_signal_check_short_d)) {
-        if (fll_program_standard_signal_received(data_make->program)) {
-          fll_program_print_signal_received(data_make->program->warning, data_make->program->signal_received);
+      if (!((++data_make->main->program.signal_check) % fake_signal_check_short_d)) {
+        if (fll_program_standard_signal_received(&data_make->main->program)) {
+          fll_program_print_signal_received(data_make->main->program.warning, data_make->main->program.signal_received);
 
-          data_make->setting->state.status = F_status_set_error(F_interrupt);
+          data_make->main->setting.state.status = F_status_set_error(F_interrupt);
 
           break;
         }
 
-        data_make->program->signal_check = 0;
+        data_make->main->program.signal_check = 0;
       }
 
       for (j = 0; j < fake_max_operation_d; ++j) {
@@ -1380,15 +1380,15 @@ extern "C" {
       } // for
 
       if (!state_process.operation) {
-        fake_print_error_operation_unknown(data_make->setting, data_make->error, data_make->buffer, section->name, section->objects.array[i]);
+        fake_print_error_operation_unknown(&data_make->error, data_make->buffer, section->name, section->objects.array[i]);
 
-        data_make->setting->state.status = F_status_set_error(F_valid_not);
+        data_make->main->setting.state.status = F_status_set_error(F_valid_not);
       }
       else if (state_process.operation == fake_make_operation_type_operate_e) {
         if (section_stack->used == fake_max_stack_d) {
-          fake_print_error_operation_stack_max(data_make->setting, data_make->error, data_make->buffer, section->name, section->objects.array[i], fake_max_stack_d);
+          fake_print_error_operation_stack_max(&data_make->error, data_make->buffer, section->name, section->objects.array[i], fake_max_stack_d);
 
-          data_make->setting->state.status = F_status_set_error(F_recurse);
+          data_make->main->setting.state.status = F_status_set_error(F_recurse);
         }
       }
 
@@ -1400,7 +1400,7 @@ extern "C" {
         fake_make_operate_validate(data_make, section->name, &state_process, section_stack);
       }
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         if (state_process.block || state_process.operation == fake_make_operation_type_if_e || state_process.operation == fake_make_operation_type_and_e || state_process.operation == fake_make_operation_type_or_e) {
           state_process.success_block = F_false;
 
@@ -1413,38 +1413,38 @@ extern "C" {
       else {
         if (!state_process.block || state_process.block == fake_state_process_block_operate_e) {
           result = fake_make_operate_process(data_make, section->name, &state_process, section_stack);
-          if (data_make->setting->state.status == F_child) return result;
+          if (data_make->main->setting.state.status == F_child) return result;
         }
 
         fake_make_operate_block_postprocess(data_make, i == section->objects.used, &state_process);
       }
 
-      if (F_status_set_fine(data_make->setting->state.status) == F_interrupt) break;
+      if (F_status_set_fine(data_make->main->setting.state.status) == F_interrupt) break;
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         state_process.success = F_false;
 
         // Break acts identical to fail when at the top of the stack.
-        if (F_status_set_fine(data_make->setting->state.status) == F_signal_abort && !section_stack->used) {
+        if (F_status_set_fine(data_make->main->setting.state.status) == F_signal_abort && !section_stack->used) {
           data_make->setting_make.fail = fake_make_operation_fail_exit_e;
           data_make->error.prefix = fl_print_error_s;
           data_make->error.suffix = f_string_empty_s;
-          data_make->error.context = data_make->program->context.set.error;
-          data_make->error.notable = data_make->program->context.set.notable;
-          data_make->program->error.to.stream = F_type_error_d;
-          data_make->program->error.to.id = F_type_descriptor_error_d;
-          data_make->error.set = &data_make->program->context.set;
+          data_make->error.context = data_make->main->program.context.set.error;
+          data_make->error.notable = data_make->main->program.context.set.notable;
+          data_make->main->program.error.to.stream = F_type_error_d;
+          data_make->main->program.error.to.id = F_type_descriptor_error_d;
+          data_make->error.set = &data_make->main->program.context.set;
         }
 
-        fake_print_error_operation_failed(data_make->setting, data_make->error, data_make->buffer, section->name, section->objects.array[i]);
+        fake_print_error_operation_failed(&data_make->error, data_make->buffer, section->name, section->objects.array[i]);
 
         // F_signal_abort is used by the break section operation.
-        if (F_status_set_fine(data_make->setting->state.status) == F_signal_abort) break;
+        if (F_status_set_fine(data_make->main->setting.state.status) == F_signal_abort) break;
 
         // F_signal_abort is used by the exit section operation.
-        if (F_status_set_fine(data_make->setting->state.status) == F_signal_quit) {
+        if (F_status_set_fine(data_make->main->setting.state.status) == F_signal_quit) {
           if (!section_stack->used) {
-            data_make->setting->state.status = F_status_set_error(F_failure);
+            data_make->main->setting.state.status = F_status_set_error(F_failure);
           }
 
           break;
@@ -1452,27 +1452,27 @@ extern "C" {
 
         if (data_make->setting_make.fail == fake_make_operation_fail_exit_e) break;
       }
-      else if (data_make->setting->state.status == F_signal_abort) {
+      else if (data_make->main->setting.state.status == F_signal_abort) {
         state_process.success = F_true;
 
         // F_signal_abort is used by the break section operation.
         break;
       }
-      else if (data_make->setting->state.status == F_signal_quit) {
+      else if (data_make->main->setting.state.status == F_signal_quit) {
         state_process.success = F_true;
 
         // F_signal_quit is used by the exit section operation.
         if (!section_stack->used) {
-          data_make->setting->state.status = F_none;
+          data_make->main->setting.state.status = F_none;
         }
 
         break;
       }
-      else if (data_make->setting->state.status == F_failure) {
+      else if (data_make->main->setting.state.status == F_failure) {
 
         // When F_failure (without the error bit) is returned, an error occured but the exit mode is not set to exit.
         // Record the success state and set the status to F_none.
-        data_make->setting->state.status = F_none;
+        data_make->main->setting.state.status = F_none;
         state_process.success = F_false;
       }
       else {
@@ -1480,19 +1480,19 @@ extern "C" {
       }
     } // for
 
-    if (F_status_set_error(data_make->setting->state.status) == F_interrupt) return 0;
+    if (F_status_set_error(data_make->main->setting.state.status) == F_interrupt) return 0;
 
-    if (i == section->objects.used && F_status_is_error_not(data_make->setting->state.status) && (state_process.operation == fake_make_operation_type_and_e || state_process.operation == fake_make_operation_type_else_e || state_process.operation == fake_make_operation_type_if_e || state_process.operation == fake_make_operation_type_or_e)) {
-      fake_make_print_error_operation_incomplete(data_make->setting, data_make->program->error, state_process.operation);
+    if (i == section->objects.used && F_status_is_error_not(data_make->main->setting.state.status) && (state_process.operation == fake_make_operation_type_and_e || state_process.operation == fake_make_operation_type_else_e || state_process.operation == fake_make_operation_type_if_e || state_process.operation == fake_make_operation_type_or_e)) {
+      fake_make_print_error_operation_incomplete(&data_make->main->program.error, state_process.operation);
 
-      fake_print_error_operation_failed(data_make->setting, data_make->error, data_make->buffer, section->name, section->objects.array[section->objects.used - 1]);
+      fake_print_error_operation_failed(&data_make->error, data_make->buffer, section->name, section->objects.array[section->objects.used - 1]);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
 
     // Ensure an error is returned during recursion if the last known section operation failed, except for the main operation.
-    if (state_process.success == F_false && F_status_is_error_not(data_make->setting->state.status) && section_stack->used > 1) {
-      data_make->setting->state.status = F_status_set_error(F_failure);
+    if (state_process.success == F_false && F_status_is_error_not(data_make->main->setting.state.status) && section_stack->used > 1) {
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
 
     --section_stack->used;
index 67321f9134234ad55dc6b878a5a27128bb82bdd7..47605462b9c41aaa27d4b8bbf0aae626c2fe25d5 100644 (file)
@@ -25,7 +25,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *     F_data_not on success but fakefile is empty.
  *
@@ -62,7 +62,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *     F_data_not on success but fakefile is empty.
  *
@@ -112,7 +112,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_data_not on success, but nothing is added (data length to append is 0).
  *     F_true on success and match expanded.
  *     F_false on no matches to expand.
@@ -141,7 +141,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_true on success and match expanded.
  *     F_false on no matches to expand.
  *
@@ -163,7 +163,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_data_not on success, but nothing is added (data length to append is 0).
  *     F_true on success and match expanded.
  *     F_false on no matches to expand.
@@ -194,7 +194,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *     F_child on child process exiting.
  *     F_signal_abort on abort signal received.
index e5db03d7f8735b5ba8a7fc7623f6f517f337bbf4..9673068f0c8d3004948492f47285b48217481867 100644 (file)
@@ -55,9 +55,9 @@ extern "C" {
 #ifndef _di_fake_make_operate_block_postprocess_
   void fake_make_operate_block_postprocess(fake_make_data_t * const data_make, const bool last, fake_state_process_t * const state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
-    if (F_status_is_error(data_make->setting->state.status)) {
+    if (F_status_is_error(data_make->main->setting.state.status)) {
       state_process->block_result = fake_condition_result_error_e;
       state_process->success_block = F_false;
 
index 9eeb96de219009c391d2cc38952ae42eaad96c58..526069ff032b9996000cafc3435d35c1465e09d9 100644 (file)
@@ -37,7 +37,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This does not alter data_make.setting.state.status.
+ *   This does not alter data_make.main.setting.state.status.
  * @param last
  *   If TRUE, then this is the last line.
  *   If FALSE, then this is not the last line.
index 9c79dae16aa7208728be113a862df251f4d76fe8..5afc87bd30fa2ca71b3b312df0996f19ddd510cb 100644 (file)
@@ -7,8 +7,8 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_
   int fake_make_operate_process(fake_make_data_t * const data_make, const f_string_range_t section_name, fake_state_process_t * const state_process, f_array_lengths_t * const section_stack) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process || !section_stack) return 0;
-    if (data_make->setting->state.status == F_child) return data_make->program->child;
+    if (!data_make || !data_make->main || !state_process || !section_stack) return 0;
+    if (data_make->main->setting.state.status == F_child) return data_make->main->program.child;
 
     if (state_process->operation == fake_make_operation_type_break_e) {
       fake_make_operate_process_type_break(data_make);
@@ -117,16 +117,16 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_buffer_escape_
   void fake_make_operate_process_buffer_escape(fake_make_data_t * const data_make, const f_string_static_t source, f_string_dynamic_t * const destination) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !destination) return;
+    if (!data_make || !data_make->main || !destination) return;
 
     if (!source.used) {
-      data_make->setting->state.status = F_data_not;
+      data_make->main->setting.state.status = F_data_not;
 
       return;
     }
 
-    data_make->setting->state.status = f_string_dynamic_increase_by(source.used, destination);
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    data_make->main->setting.state.status = f_string_dynamic_increase_by(source.used, destination);
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
     for (f_array_length_t i = 0; i < source.used; ++i) {
 
@@ -138,8 +138,8 @@ extern "C" {
         // A slash by itself at the end of the string is invalid.
         if (++i >= source.used) break;
 
-        data_make->setting->state.status = f_string_dynamic_increase_by(F_memory_default_allocation_small_d, destination);
-        if (F_status_is_error(data_make->setting->state.status)) return;
+        data_make->main->setting.state.status = f_string_dynamic_increase_by(F_memory_default_allocation_small_d, destination);
+        if (F_status_is_error(data_make->main->setting.state.status)) return;
 
         if (source.string[i] == f_string_ascii_slash_backward_s.string[0]) {
           destination->string[destination->used++] = f_string_ascii_slash_backward_s.string[0];
@@ -209,18 +209,18 @@ extern "C" {
             if (buffer.used > 2) {
               uint32_t codepoint = 0;
 
-              data_make->setting->state.status = f_utf_unicode_string_to(buffer.string, buffer.used, &codepoint);
+              data_make->main->setting.state.status = f_utf_unicode_string_to(buffer.string, buffer.used, &codepoint);
 
-              if (F_status_is_error(data_make->setting->state.status)) {
-                if (!(data_make->setting->state.status == F_failure || data_make->setting->state.status == F_utf_not || data_make->setting->state.status == F_complete_not_utf || data_make->setting->state.status == F_utf_fragment || data_make->setting->state.status == F_valid_not)) {
+              if (F_status_is_error(data_make->main->setting.state.status)) {
+                if (!(data_make->main->setting.state.status == F_failure || data_make->main->setting.state.status == F_utf_not || data_make->main->setting.state.status == F_complete_not_utf || data_make->main->setting.state.status == F_utf_fragment || data_make->main->setting.state.status == F_valid_not)) {
                   break;
                 }
               }
               else {
 
                 // Reserve 4-bytes (the max size of a Unicode UTF-8 sequence).
-                data_make->setting->state.status = f_string_dynamic_increase_by(4, destination);
-                if (F_status_is_error(data_make->setting->state.status)) return;
+                data_make->main->setting.state.status = f_string_dynamic_increase_by(4, destination);
+                if (F_status_is_error(data_make->main->setting.state.status)) return;
 
                 if (!codepoint) {
                   destination->string[destination->used++] = f_string_null_s.string[0];
@@ -229,10 +229,10 @@ extern "C" {
                   {
                     f_string_t address = destination->string + destination->used;
 
-                    data_make->setting->state.status = f_utf_unicode_from(codepoint, 4, &address);
+                    data_make->main->setting.state.status = f_utf_unicode_from(codepoint, 4, &address);
                   }
 
-                  if (F_status_is_error(data_make->setting->state.status)) {
+                  if (F_status_is_error(data_make->main->setting.state.status)) {
                     destination->string[destination->used] = 0;
                   }
                   else {
@@ -262,34 +262,34 @@ extern "C" {
         }
       }
       else {
-        data_make->setting->state.status = f_string_dynamic_increase_by(F_memory_default_allocation_small_d, destination);
-        if (F_status_is_error(data_make->setting->state.status)) return;
+        data_make->main->setting.state.status = f_string_dynamic_increase_by(F_memory_default_allocation_small_d, destination);
+        if (F_status_is_error(data_make->main->setting.state.status)) return;
 
         destination->string[destination->used++] = source.string[i];
       }
     } // for
 
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_buffer_escape_
 
 #ifndef _di_fake_make_operate_process_execute_
   void fake_make_operate_process_execute(fake_make_data_t * const data_make, const f_string_static_t program, const f_string_statics_t arguments, const bool as_shell) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (!program.used && !arguments.used) {
-      data_make->setting->state.status = F_data_not;
+      data_make->main->setting.state.status = F_data_not;
 
       return;
     }
 
-    if (fll_program_standard_signal_received(data_make->program)) {
-      fll_program_print_signal_received(data_make->program->warning, data_make->program->signal_received);
+    if (fll_program_standard_signal_received(&data_make->main->program)) {
+      fll_program_print_signal_received(data_make->main->program.warning, data_make->main->program.signal_received);
 
-      data_make->setting->state.status = F_status_set_error(F_interrupt);
+      data_make->main->setting.state.status = F_status_set_error(F_interrupt);
 
       return;
     }
@@ -304,25 +304,25 @@ extern "C" {
     data_make->environment.used = 0;
 
     if (data_make->setting_build.flag & data_build_setting_flag_has_environment_e) {
-      data_make->setting->state.status = fl_environment_load_names(data_make->setting_build.environment, &data_make->environment);
+      data_make->main->setting.state.status = fl_environment_load_names(data_make->setting_build.environment, &data_make->environment);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(fl_environment_load_names));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(fl_environment_load_names));
 
         return;
       }
     }
     else {
-      data_make->setting->state.status = f_environment_get_all(&data_make->environment);
+      data_make->main->setting.state.status = f_environment_get_all(&data_make->environment);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_environment_get_all));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_environment_get_all));
 
         return;
       }
     }
 
-    fake_make_print_verbose_operate_program(data_make->setting, data_make->program->message, program, arguments);
+    fake_make_print_verbose_operate_program(&data_make->main->program.message, program, arguments);
 
     // Child processes should receive all signals, without blocking.
     f_signal_how_t signals = f_signal_how_t_initialize;
@@ -333,24 +333,24 @@ extern "C" {
 
     int return_code = 0;
 
-    data_make->setting->state.status = fll_execute_program(program, arguments, &parameter, 0, (void *) &return_code);
+    data_make->main->setting.state.status = fll_execute_program(program, arguments, &parameter, 0, (void *) &return_code);
 
-    if (fll_program_standard_signal_received(data_make->program)) {
-      fll_program_print_signal_received(data_make->program->warning, data_make->program->signal_received);
+    if (fll_program_standard_signal_received(&data_make->main->program)) {
+      fll_program_print_signal_received(data_make->main->program.warning, data_make->main->program.signal_received);
 
-      data_make->setting->state.status = F_status_set_error(F_interrupt);
+      data_make->main->setting.state.status = F_status_set_error(F_interrupt);
 
       return;
     }
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      if (F_status_set_fine(data_make->setting->state.status) == F_interrupt) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      if (F_status_set_fine(data_make->main->setting.state.status) == F_interrupt) return;
 
-      if (F_status_set_fine(data_make->setting->state.status) == F_file_found_not) {
-        fake_make_print_error_program_not_found(data_make->setting, data_make->program->error, program);
+      if (F_status_set_fine(data_make->main->setting.state.status) == F_file_found_not) {
+        fake_make_print_error_program_not_found(&data_make->main->program.error, program);
       }
-      else if (F_status_set_fine(data_make->setting->state.status) != F_failure) {
-        fake_print_error(&data_make->program->error, macro_fake_f(fll_execute_program));
+      else if (F_status_set_fine(data_make->main->setting.state.status) != F_failure) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(fll_execute_program));
       }
     }
 
@@ -363,54 +363,54 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_return_
   void fake_make_operate_process_return(fake_make_data_t * const data_make, const int return_code) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
-    const f_status_t status_original = data_make->setting->state.status;
+    const f_status_t status_original = data_make->main->setting.state.status;
 
     data_make->setting_make.parameter.array[0].value.array[0].used = 0;
 
     if (return_code) {
       f_string_dynamic_t number = f_string_dynamic_t_initialize;
 
-      data_make->setting->state.status = f_conversion_number_signed_to_string(WEXITSTATUS(return_code), f_conversion_data_base_10_c, &number);
+      data_make->main->setting.state.status = f_conversion_number_signed_to_string(WEXITSTATUS(return_code), f_conversion_data_base_10_c, &number);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_conversion_number_signed_to_string));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_conversion_number_signed_to_string));
 
         f_string_dynamic_resize(0, &number);
 
         return;
       }
 
-      data_make->setting->state.status = f_string_dynamic_append(number, &data_make->setting_make.parameter.array[0].value.array[0]);
+      data_make->main->setting.state.status = f_string_dynamic_append(number, &data_make->setting_make.parameter.array[0].value.array[0]);
 
       f_string_dynamic_resize(0, &number);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append));
 
         return;
       }
 
-      fake_make_print_error_program_failed(data_make->setting, data_make->program->error, return_code);
+      fake_make_print_error_program_failed(&data_make->main->program.error, return_code);
 
-      data_make->setting->state.status = (data_make->setting_make.fail == fake_make_operation_fail_exit_e) ? F_status_set_error(F_failure) : F_failure;
+      data_make->main->setting.state.status = (data_make->setting_make.fail == fake_make_operation_fail_exit_e) ? F_status_set_error(F_failure) : F_failure;
 
       return;
     }
 
     if (F_status_is_error(status_original)) {
-      data_make->setting->state.status = f_string_dynamic_append(f_string_ascii_1_s, &data_make->setting_make.parameter.array[0].value.array[0]);
+      data_make->main->setting.state.status = f_string_dynamic_append(f_string_ascii_1_s, &data_make->setting_make.parameter.array[0].value.array[0]);
     }
     else {
-      data_make->setting->state.status = f_string_dynamic_append(f_string_ascii_0_s, &data_make->setting_make.parameter.array[0].value.array[0]);
+      data_make->main->setting.state.status = f_string_dynamic_append(f_string_ascii_0_s, &data_make->setting_make.parameter.array[0].value.array[0]);
     }
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      fll_error_print(data_make->error, F_status_set_fine(data_make->setting->state.status), macro_fake_f(f_string_dynamic_append), F_true);
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      fll_error_print(data_make->error, F_status_set_fine(data_make->main->setting.state.status), macro_fake_f(f_string_dynamic_append), F_true);
     }
     else {
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_make_operate_process_return_
@@ -418,10 +418,10 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_run_
   void fake_make_operate_process_run(fake_make_data_t * const data_make, const bool as_shell) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (!data_make->cache_arguments.used) {
-      data_make->setting->state.status = F_data_not;
+      data_make->main->setting.state.status = F_data_not;
 
       return;
     }
index b2aadab4c859379d0250036f539061473bd68088..73eec51c1c3068ed900fdca1f495096b9c2c49c8 100644 (file)
@@ -22,7 +22,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
@@ -194,7 +194,7 @@ extern "C" {
 /**
  * Handle the return code, converting it to a standard return number and store it as a string.
  *
- * The return value is stored in: data_make.setting_make.parameter.array[0].value.array[0].
+ * The return value is stored in: data_make.main->setting_make.parameter.array[0].value.array[0].
  *
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
index c5ca6bfba1a417deba8cecaedfa1e6a8725ae217..dbc746cfbd27a2b56587db4b9fd023804be9838b 100644 (file)
@@ -7,47 +7,47 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_type_break_
   void fake_make_operate_process_type_break(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     if (!data_make->cache_arguments.used || fl_string_dynamic_compare(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to) {
-      data_make->setting->state.status = F_signal_abort;
+      data_make->main->setting.state.status = F_signal_abort;
     }
     else if (fl_string_dynamic_compare(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to) {
-      data_make->setting->state.status = F_status_set_error(F_signal_abort);
+      data_make->main->setting.state.status = F_status_set_error(F_signal_abort);
     }
     else {
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
 
       return;
     }
 
-    fake_make_print_verbose_operate_break(data_make->setting, data_make->program->message, data_make->cache_arguments);
+    fake_make_print_verbose_operate_break(&data_make->main->program.message, data_make->cache_arguments);
   }
 #endif // _di_fake_make_operate_process_type_break_
 
 #ifndef _di_fake_make_operate_process_type_build_
   void fake_make_operate_process_type_build(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     fake_build_operate(data_make->data, data_make->cache_arguments.used ? &data_make->cache_arguments : 0, F_false);
-    if (F_status_set_fine(data_make->setting->state.status) == F_interrupt) return;
+    if (F_status_set_fine(data_make->main->setting.state.status) == F_interrupt) return;
 
-    fake_make_operate_process_return(data_make, F_status_is_error(data_make->setting->state.status) ? 1 : 0);
+    fake_make_operate_process_return(data_make, F_status_is_error(data_make->main->setting.state.status) ? 1 : 0);
   }
 #endif // _di_fake_make_operate_process_type_build_
 
 #ifndef _di_fake_make_operate_process_type_clean_
   void fake_make_operate_process_type_clean(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     fake_clean_operate(data_make->data);
-    if (F_status_set_fine(data_make->setting->state.status) == F_interrupt) return;
+    if (F_status_set_fine(data_make->main->setting.state.status) == F_interrupt) return;
 
-    fake_make_operate_process_return(data_make, F_status_is_error(data_make->setting->state.status) ? 1 : 0);
+    fake_make_operate_process_return(data_make, F_status_is_error(data_make->main->setting.state.status) ? 1 : 0);
   }
 #endif // _di_fake_make_operate_process_type_clean_
 
@@ -58,10 +58,10 @@ extern "C" {
 
     const int result = fake_execute(data_make->data, data_make->environment, data_make->setting_build.build_compiler, data_make->cache_arguments);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      fake_print_error(&data_make->program->error, macro_fake_f(fake_execute));
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      fake_print_error(&data_make->main->program.error, macro_fake_f(fake_execute));
     }
-    else if (data_make->setting->state.status == F_child) {
+    else if (data_make->main->setting.state.status == F_child) {
       return result;
     }
 
@@ -74,9 +74,9 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_type_condition_
   void fake_make_operate_process_type_condition(fake_make_data_t * const data_make, fake_state_process_t * const state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     if (state_process->condition == fake_make_operation_if_type_if_define_e) {
       fake_make_operate_process_type_if_define(data_make, F_false, state_process);
@@ -195,19 +195,22 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_type_copy_
   void fake_make_operate_process_type_copy(fake_make_data_t * const data_make, const bool clone) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     const f_array_length_t total = data_make->cache_arguments.used - 1;
     f_string_static_t destination = f_string_static_t_initialize;
     f_directory_recurse_t recurse = f_directory_recurse_t_initialize;
 
+    if (data_make->main->program.error.verbosity > f_console_verbosity_normal_e) {
+      recurse.state.custom = data_make->main;
+      recurse.verbose = clone ? fake_print_verbose_recursive_clone : fake_print_verbose_recursive_copy;
+    }
+
     if (clone) {
-      recurse.verbose = fake_print_verbose_clone;
       recurse.flag = f_file_stat_flag_group_e | f_file_stat_flag_owner_e;
     }
     else {
-      recurse.verbose = fake_print_verbose_copy;
-      macro_f_mode_t_set_default_umask(recurse.mode, data_make->program->umask);
+      macro_f_mode_t_set_default_umask(recurse.mode, data_make->main->program.umask);
     }
 
     bool existing = F_true;
@@ -220,19 +223,19 @@ extern "C" {
 
     // In this case, the destination could be a file, so confirm this.
     if (data_make->cache_arguments.used == 2 + i) {
-      data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[1]);
+      data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[1]);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[1], f_file_operation_identify_s, fll_error_file_type_path_e);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[1], f_file_operation_identify_s, fll_error_file_type_path_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         f_directory_recurse_delete(&recurse);
 
         return;
       }
 
-      if (data_make->setting->state.status == F_false || data_make->setting->state.status == F_file_found_not || data_make->setting->state.status == F_data_not) {
+      if (data_make->main->setting.state.status == F_false || data_make->main->setting.state.status == F_file_found_not || data_make->main->setting.state.status == F_data_not) {
         existing = F_false;
       }
     }
@@ -244,12 +247,12 @@ extern "C" {
       if (existing) {
         data_make->cache_path.used = 0;
 
-        data_make->setting->state.status = f_file_name_base(data_make->cache_arguments.array[i], &data_make->cache_path);
+        data_make->main->setting.state.status = f_file_name_base(data_make->cache_arguments.array[i], &data_make->cache_path);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_name_base), data_make->cache_arguments.array[i], f_file_operation_process_s, fll_error_file_type_path_e);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_name_base), data_make->cache_arguments.array[i], f_file_operation_process_s, fll_error_file_type_path_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           f_directory_recurse_delete(&recurse);
 
@@ -283,9 +286,9 @@ extern "C" {
         }
       }
 
-      data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[i]);
+      data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[i]);
 
-      if (data_make->setting->state.status == F_true) {
+      if (data_make->main->setting.state.status == F_true) {
         if (clone) {
           recurse.flag |= f_directory_recurse_flag_clone_e;
         }
@@ -296,35 +299,35 @@ extern "C" {
         fl_directory_copy(data_make->cache_arguments.array[i], destination, &recurse);
 
         if (F_status_is_error(recurse.state.status)) {
-          data_make->setting->state.status = recurse.state.status;
+          data_make->main->setting.state.status = recurse.state.status;
 
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(fl_directory_copy), data_make->cache_arguments.array[i], clone ? f_file_operation_clone_s : f_file_operation_copy_s, fll_error_file_type_directory_e);
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(fl_directory_copy), data_make->cache_arguments.array[i], clone ? f_file_operation_clone_s : f_file_operation_copy_s, fll_error_file_type_directory_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
         }
       }
-      else if (data_make->setting->state.status == F_false) {
+      else if (data_make->main->setting.state.status == F_false) {
         if (clone) {
-          data_make->setting->state.status = f_file_clone(data_make->cache_arguments.array[i], destination, recurse.size_block, recurse.flag);
+          data_make->main->setting.state.status = f_file_clone(data_make->cache_arguments.array[i], destination, recurse.size_block, recurse.flag);
         }
         else {
-          data_make->setting->state.status = f_file_copy(data_make->cache_arguments.array[i], destination, recurse.mode, recurse.size_block, recurse.flag);
+          data_make->main->setting.state.status = f_file_copy(data_make->cache_arguments.array[i], destination, recurse.mode, recurse.size_block, recurse.flag);
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_file(data_make->setting, data_make->program->error, clone ? macro_fake_f(f_file_clone) : macro_fake_f(f_file_copy), data_make->cache_arguments.array[i], clone ? f_file_operation_clone_s : f_file_operation_copy_s, fll_error_file_type_file_e);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_file(&data_make->main->program.error, clone ? macro_fake_f(f_file_clone) : macro_fake_f(f_file_copy), data_make->cache_arguments.array[i], clone ? f_file_operation_clone_s : f_file_operation_copy_s, fll_error_file_type_file_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           break;
         }
 
-        fake_make_print_verbose_operate_copy(data_make->setting, data_make->program->message, clone, data_make->cache_arguments.array[i], destination);
+        fake_make_print_verbose_operate_copy(&data_make->main->program.message, clone, data_make->cache_arguments.array[i], destination);
       }
-      else if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[i], f_file_operation_identify_s, fll_error_file_type_directory_e);
+      else if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[i], f_file_operation_identify_s, fll_error_file_type_directory_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         break;
       }
@@ -332,8 +335,8 @@ extern "C" {
 
     f_directory_recurse_delete(&recurse);
 
-    if (F_status_is_error_not(data_make->setting->state.status)) {
-      data_make->setting->state.status = F_none;
+    if (F_status_is_error_not(data_make->main->setting.state.status)) {
+      data_make->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_make_operate_process_type_copy_
@@ -341,22 +344,22 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_type_define_
   void fake_make_operate_process_type_define(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used > 1) {
-      data_make->setting->state.status = f_environment_set(data_make->cache_arguments.array[0], data_make->cache_arguments.array[1], F_true);
+      data_make->main->setting.state.status = f_environment_set(data_make->cache_arguments.array[0], data_make->cache_arguments.array[1], F_true);
     }
     else {
-      data_make->setting->state.status = f_environment_set(data_make->cache_arguments.array[0], f_string_empty_s, F_true);
+      data_make->main->setting.state.status = f_environment_set(data_make->cache_arguments.array[0], f_string_empty_s, F_true);
     }
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      fake_print_error(&data_make->program->error, macro_fake_f(f_environment_set));
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      fake_print_error(&data_make->main->program.error, macro_fake_f(f_environment_set));
     }
     else {
-      fake_make_print_verbose_operate_define(data_make->setting, data_make->program->message, data_make->cache_arguments.array[0]);
+      fake_make_print_verbose_operate_define(&data_make->main->program.message, data_make->cache_arguments.array[0]);
 
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_make_operate_process_type_define_
@@ -364,160 +367,160 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_type_deletes_
   void fake_make_operate_process_type_deletes(fake_make_data_t * const data_make, const bool all) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     const int recursion_max = all ? F_directory_max_descriptors_d : 0;
     struct stat file_stat;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     for (f_array_length_t i = 0; i < data_make->cache_arguments.used; ++i) {
 
       memset(&file_stat, 0, sizeof(struct stat));
 
-      data_make->setting->state.status = f_file_stat(data_make->cache_arguments.array[i], F_false, &file_stat);
+      data_make->main->setting.state.status = f_file_stat(data_make->cache_arguments.array[i], F_false, &file_stat);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        if (F_status_set_fine(data_make->setting->state.status) == F_file_found_not) {
-          fake_make_print_warning_file_not_found(data_make->setting, data_make->program->warning, data_make->cache_arguments.array[i]);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        if (F_status_set_fine(data_make->main->setting.state.status) == F_file_found_not) {
+          fake_make_print_warning_file_not_found(&data_make->main->program.warning, data_make->cache_arguments.array[i]);
 
-          data_make->setting->state.status = F_none;
+          data_make->main->setting.state.status = F_none;
         }
         else {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_stat), data_make->cache_arguments.array[i], f_file_operation_delete_s, fll_error_file_type_file_e);
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_stat), data_make->cache_arguments.array[i], f_file_operation_delete_s, fll_error_file_type_file_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       }
       else if (macro_f_file_type_is_directory(file_stat.st_mode)) {
-        if (data_make->program->error.verbosity >= f_console_verbosity_verbose_e) {
-          data_make->setting->state.status = f_directory_remove_custom(data_make->cache_arguments.array[i], recursion_max, F_false, fake_clean_remove_recursively_verbosely);
+        if (data_make->main->program.error.verbosity >= f_console_verbosity_verbose_e) {
+          data_make->main->setting.state.status = f_directory_remove_custom(data_make->cache_arguments.array[i], recursion_max, F_false, fake_clean_remove_recursively_verbosely);
         }
         else {
-          data_make->setting->state.status = f_directory_remove(data_make->cache_arguments.array[i], recursion_max, F_false);
+          data_make->main->setting.state.status = f_directory_remove(data_make->cache_arguments.array[i], recursion_max, F_false);
         }
 
-        if (F_status_set_fine(data_make->setting->state.status) == F_file_found_not) {
-          fake_make_print_verbose_operate_file_not_found(data_make->setting, data_make->program->message, F_true, data_make->cache_arguments.array[i]);
+        if (F_status_set_fine(data_make->main->setting.state.status) == F_file_found_not) {
+          fake_make_print_verbose_operate_file_not_found(&data_make->main->program.message, F_true, data_make->cache_arguments.array[i]);
 
-          data_make->setting->state.status = F_none;
+          data_make->main->setting.state.status = F_none;
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_directory_remove), data_make->cache_arguments.array[i], f_file_operation_delete_s, fll_error_file_type_directory_e);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_directory_remove), data_make->cache_arguments.array[i], f_file_operation_delete_s, fll_error_file_type_directory_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       }
       else {
-        data_make->setting->state.status = f_file_remove(data_make->cache_arguments.array[i]);
+        data_make->main->setting.state.status = f_file_remove(data_make->cache_arguments.array[i]);
 
-        if (F_status_set_fine(data_make->setting->state.status) == F_file_found_not) {
-          if (data_make->program->error.verbosity >= f_console_verbosity_verbose_e) {
-            fake_make_print_verbose_operate_file_not_found(data_make->setting, data_make->program->message, F_false, data_make->cache_arguments.array[i]);
+        if (F_status_set_fine(data_make->main->setting.state.status) == F_file_found_not) {
+          if (data_make->main->program.error.verbosity >= f_console_verbosity_verbose_e) {
+            fake_make_print_verbose_operate_file_not_found(&data_make->main->program.message, F_false, data_make->cache_arguments.array[i]);
           }
 
-          data_make->setting->state.status = F_none;
+          data_make->main->setting.state.status = F_none;
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_remove), data_make->cache_arguments.array[i], f_file_operation_delete_s, fll_error_file_type_file_e);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_remove), data_make->cache_arguments.array[i], f_file_operation_delete_s, fll_error_file_type_file_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       }
 
-      fake_make_print_verbose_operate_delete(data_make->setting, data_make->program->message, data_make->cache_arguments.array[i]);
+      fake_make_print_verbose_operate_delete(&data_make->main->program.message, data_make->cache_arguments.array[i]);
     } // for
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_deletes_
 
 #ifndef _di_fake_make_operate_process_type_exit_
   void fake_make_operate_process_type_exit(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     if (!data_make->cache_arguments.used || fl_string_dynamic_compare(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to) {
-      data_make->setting->state.status = F_signal_quit;
+      data_make->main->setting.state.status = F_signal_quit;
     }
     else if (fl_string_dynamic_compare(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to) {
-      data_make->setting->state.status = F_status_set_error(F_signal_quit);
+      data_make->main->setting.state.status = F_status_set_error(F_signal_quit);
 
       // Forcing exit forces fail mode.
       data_make->setting_make.fail = fake_make_operation_fail_exit_e;
       data_make->error.prefix = fl_print_error_s;
       data_make->error.suffix = f_string_empty_s;
-      data_make->error.context = data_make->program->context.set.error;
-      data_make->error.notable = data_make->program->context.set.notable;
-      data_make->program->error.to.stream = F_type_error_d;
-      data_make->program->error.to.id = F_type_descriptor_error_d;
-      data_make->error.set = &data_make->program->context.set;
+      data_make->error.context = data_make->main->program.context.set.error;
+      data_make->error.notable = data_make->main->program.context.set.notable;
+      data_make->main->program.error.to.stream = F_type_error_d;
+      data_make->main->program.error.to.id = F_type_descriptor_error_d;
+      data_make->error.set = &data_make->main->program.context.set;
     }
     else {
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
 
       return;
     }
 
-    fake_make_print_verbose_operate_exiting_as(data_make->setting, data_make->program->message, data_make->cache_arguments);
+    fake_make_print_verbose_operate_exiting_as(&data_make->main->program.message, data_make->cache_arguments);
   }
 #endif // _di_fake_make_operate_process_type_exit_
 
 #ifndef _di_fake_make_operate_process_type_fail_
   void fake_make_operate_process_type_fail(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (fl_string_dynamic_compare(fake_make_operation_argument_exit_s, data_make->cache_arguments.array[0]) == F_equal_to) {
       data_make->setting_make.fail = fake_make_operation_fail_exit_e;
       data_make->error.prefix = fl_print_error_s;
       data_make->error.suffix = f_string_empty_s;
-      data_make->error.context = data_make->program->context.set.error;
-      data_make->error.notable = data_make->program->context.set.notable;
-      data_make->program->error.to.stream = F_type_error_d;
-      data_make->program->error.to.id = F_type_descriptor_error_d;
-      data_make->error.set = &data_make->program->context.set;
+      data_make->error.context = data_make->main->program.context.set.error;
+      data_make->error.notable = data_make->main->program.context.set.notable;
+      data_make->main->program.error.to.stream = F_type_error_d;
+      data_make->main->program.error.to.id = F_type_descriptor_error_d;
+      data_make->error.set = &data_make->main->program.context.set;
     }
     else if (fl_string_dynamic_compare(fake_make_operation_argument_warn_s, data_make->cache_arguments.array[0]) == F_equal_to) {
       data_make->setting_make.fail = fake_make_operation_fail_warn_e;
       data_make->error.prefix = fl_print_warning_s;
       data_make->error.suffix = f_string_empty_s;
-      data_make->error.context = data_make->program->context.set.warning;
-      data_make->error.notable = data_make->program->context.set.notable;
-      data_make->program->error.to.stream = F_type_output_d;
-      data_make->program->error.to.id = F_type_descriptor_output_d;
-      data_make->error.set = &data_make->program->context.set;
+      data_make->error.context = data_make->main->program.context.set.warning;
+      data_make->error.notable = data_make->main->program.context.set.notable;
+      data_make->main->program.error.to.stream = F_type_output_d;
+      data_make->main->program.error.to.id = F_type_descriptor_output_d;
+      data_make->error.set = &data_make->main->program.context.set;
     }
     else {
       data_make->setting_make.fail = fake_make_operation_fail_ignore_e;
-      data_make->program->error.to.stream = 0;
-      data_make->program->error.to.id = -1;
+      data_make->main->program.error.to.stream = 0;
+      data_make->main->program.error.to.id = -1;
     }
 
-    fake_make_print_verbose_operate_set_failure_state(data_make->setting, data_make->program->message, data_make->setting_make.fail);
+    fake_make_print_verbose_operate_set_failure_state(&data_make->main->program.message, data_make->setting_make.fail);
   }
 #endif // _di_fake_make_operate_process_type_fail_
 
 #ifndef _di_fake_make_operate_process_type_groups_
   void fake_make_operate_process_type_groups(fake_make_data_t * const data_make, const bool all) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     gid_t id = 0;
     bool dereference = F_true;
     f_array_length_t i = 0;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) {
       ++i;
@@ -526,46 +529,46 @@ extern "C" {
 
     id = (gid_t) fake_make_get_id(data_make, F_false, data_make->cache_arguments.array[i++]);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      data_make->setting->state.status = F_status_set_error(F_failure);
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
 
     for (; i < data_make->cache_arguments.used; ++i) {
 
       fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[i]);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
 
         continue;
       }
 
       if (all) {
-        data_make->setting->state.status = fll_file_role_change_all(data_make->cache_arguments.array[i], -1, id, dereference, fake_max_recursion_depth_d);
+        data_make->main->setting.state.status = fll_file_role_change_all(data_make->cache_arguments.array[i], -1, id, dereference, fake_max_recursion_depth_d);
       }
       else {
-        data_make->setting->state.status = f_file_role_change(data_make->cache_arguments.array[i], -1, id, dereference);
+        data_make->main->setting.state.status = f_file_role_change(data_make->cache_arguments.array[i], -1, id, dereference);
       }
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_file(data_make->setting, data_make->program->error, all ? macro_fake_f(fll_file_role_change_all) : macro_fake_f(f_file_role_change), data_make->cache_arguments.array[i], f_file_operation_change_group_s, fll_error_file_type_file_e);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_file(&data_make->main->program.error, all ? macro_fake_f(fll_file_role_change_all) : macro_fake_f(f_file_role_change), data_make->cache_arguments.array[i], f_file_operation_change_group_s, fll_error_file_type_file_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
-      fake_make_print_verbose_operate_set_role(data_make->setting, data_make->program->message, all ? 0x1 : 0x0, data_make->cache_arguments.array[i], (f_number_unsigned_t) id);
+      fake_make_print_verbose_operate_set_role(&data_make->main->program.message, all ? 0x1 : 0x0, data_make->cache_arguments.array[i], (f_number_unsigned_t) id);
     } // for
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_groups_
 
 #ifndef _di_fake_make_operate_process_type_if_define_
   void fake_make_operate_process_type_if_define(fake_make_data_t * const data_make, const bool if_not, fake_state_process_t *state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
     state_process->condition_result = fake_condition_result_true_e;
 
@@ -596,12 +599,12 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_type_if_exist_
   void fake_make_operate_process_type_if_exist(fake_make_data_t * const data_make, const bool if_not, fake_state_process_t *state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
     f_array_length_t i = if_not ? 2 : 1;
     bool dereference = F_true;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     if (i == data_make->cache_arguments.used) {
       if (if_not) {
@@ -611,7 +614,7 @@ extern "C" {
         state_process->condition_result = fake_condition_result_false_e;
       }
 
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
 
       return;
     }
@@ -625,27 +628,27 @@ extern "C" {
 
     for (; i < data_make->cache_arguments.used; ++i) {
 
-      data_make->setting->state.status = f_file_exists(data_make->cache_arguments.array[i], dereference);
+      data_make->main->setting.state.status = f_file_exists(data_make->cache_arguments.array[i], dereference);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         state_process->condition_result = fake_condition_result_error_e;
 
-        fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_exists), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
+        fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_exists), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
       if (if_not) {
-        if (data_make->setting->state.status == F_true) {
+        if (data_make->main->setting.state.status == F_true) {
           state_process->condition_result = fake_condition_result_false_e;
 
           break;
         }
       }
       else {
-        if (data_make->setting->state.status != F_true) {
+        if (data_make->main->setting.state.status != F_true) {
           state_process->condition_result = fake_condition_result_false_e;
 
           break;
@@ -653,14 +656,14 @@ extern "C" {
       }
     } // for
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_if_exist_
 
 #ifndef _di_fake_make_operate_process_type_if_is_
   void fake_make_operate_process_type_if_is(fake_make_data_t * const data_make, const bool if_not, fake_state_process_t *state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
     // block     = 0x1 (0000 0001) link    = 0x10 (0001 0000)
     // character = 0x2 (0000 0010) regular = 0x20 (0010 0000)
@@ -671,7 +674,7 @@ extern "C" {
     f_array_length_t i = if_not ? 2 : 1;
     bool dereference = F_true;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) {
       ++i;
@@ -686,7 +689,7 @@ extern "C" {
         state_process->condition_result = fake_condition_result_false_e;
       }
 
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
 
       return;
     }
@@ -729,14 +732,14 @@ extern "C" {
 
     for (; i < data_make->cache_arguments.used; ++i, mode_file = 0) {
 
-      data_make->setting->state.status = f_file_mode_read(data_make->cache_arguments.array[i], dereference, &mode_file);
+      data_make->main->setting.state.status = f_file_mode_read(data_make->cache_arguments.array[i], dereference, &mode_file);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         state_process->condition_result = fake_condition_result_error_e;
 
-        fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_mode_read), data_make->cache_arguments.array[i], f_file_operation_get_type_s, fll_error_file_type_file_e);
+        fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_mode_read), data_make->cache_arguments.array[i], f_file_operation_get_type_s, fll_error_file_type_file_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
@@ -779,14 +782,14 @@ extern "C" {
       }
     } // for
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_if_is_
 
 #ifndef _di_fake_make_operate_process_type_if_greater_if_lesser_
   void fake_make_operate_process_type_if_greater_if_lesser(fake_make_data_t * const data_make, fake_state_process_t *state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
     f_string_range_t range = f_string_range_t_initialize;
     f_number_unsigned_t number_left = 0;
@@ -797,7 +800,7 @@ extern "C" {
 
     f_array_length_t i = 1;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
     state_process->condition_result = fake_condition_result_true_e;
 
     range.start = 0;
@@ -812,14 +815,14 @@ extern "C" {
     }
 
     if (range.start > range.stop) {
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
     else {
-      data_make->setting->state.status = fl_conversion_dynamic_partial_to_unsigned_detect(fl_conversion_data_base_10_c, data_make->cache_arguments.array[i], range, &number_left);
+      data_make->main->setting.state.status = fl_conversion_dynamic_partial_to_unsigned_detect(fl_conversion_data_base_10_c, data_make->cache_arguments.array[i], range, &number_left);
     }
 
-    if (F_status_is_error_not(data_make->setting->state.status)) {
-      for (i = 2; i < data_make->cache_arguments.used; ++i, data_make->setting->state.status = F_none, number_left = number_right, is_negative_left = is_negative_right) {
+    if (F_status_is_error_not(data_make->main->setting.state.status)) {
+      for (i = 2; i < data_make->cache_arguments.used; ++i, data_make->main->setting.state.status = F_none, number_left = number_right, is_negative_left = is_negative_right) {
 
         if (data_make->cache_arguments.array[i].used) {
           range.start = 0;
@@ -836,17 +839,17 @@ extern "C" {
           }
 
           if (range.start > range.stop) {
-            data_make->setting->state.status = F_status_set_error(F_failure);
+            data_make->main->setting.state.status = F_status_set_error(F_failure);
           }
           else {
-            data_make->setting->state.status = fl_conversion_dynamic_partial_to_unsigned_detect(fl_conversion_data_base_10_c, data_make->cache_arguments.array[i], range, &number_right);
+            data_make->main->setting.state.status = fl_conversion_dynamic_partial_to_unsigned_detect(fl_conversion_data_base_10_c, data_make->cache_arguments.array[i], range, &number_right);
           }
         }
         else {
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) break;
+        if (F_status_is_error(data_make->main->setting.state.status)) break;
 
         if (state_process->condition == fake_make_operation_if_type_if_greater_e) {
 
@@ -911,20 +914,20 @@ extern "C" {
       } // for
     }
 
-    if (F_status_is_error(data_make->setting->state.status)) {
+    if (F_status_is_error(data_make->main->setting.state.status)) {
       state_process->condition_result = fake_condition_result_error_e;
 
       if ((i == 1 && number_left > F_number_t_size_unsigned_d) || (i > 1 && number_right > F_number_t_size_unsigned_d)) {
-        fake_make_print_error_out_of_range_number(data_make->setting, data_make->program->error, data_make->cache_arguments.array[i], F_number_t_size_unsigned_d, F_number_t_size_unsigned_d);
+        fake_make_print_error_out_of_range_number(&data_make->main->program.error, data_make->cache_arguments.array[i], F_number_t_size_unsigned_d, F_number_t_size_unsigned_d);
       }
       else {
-        fake_make_print_error_unsupported_number(data_make->setting, data_make->program->error, data_make->cache_arguments.array[i]);
+        fake_make_print_error_unsupported_number(&data_make->main->program.error, data_make->cache_arguments.array[i]);
       }
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
     else {
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_make_operate_process_type_if_greater_if_lesser_
@@ -932,13 +935,13 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_type_if_group_
   void fake_make_operate_process_type_if_group(fake_make_data_t * const data_make, const bool if_not, fake_state_process_t *state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
     uid_t id = 0;
     f_array_length_t i = if_not ? 2 : 1;
     bool dereference = F_true;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) {
       ++i;
@@ -947,12 +950,12 @@ extern "C" {
 
     id = (uid_t) fake_make_get_id(data_make, F_true, data_make->cache_arguments.array[i++]);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
+    if (F_status_is_error(data_make->main->setting.state.status)) {
       state_process->condition_result = fake_condition_result_error_e;
 
-      fake_print_error(&data_make->program->error, macro_fake_f(fake_make_get_id));
+      fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_get_id));
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
@@ -961,14 +964,14 @@ extern "C" {
 
     for (uid_t id_file = 0; i < data_make->cache_arguments.used; ++i, id_file = 0) {
 
-      data_make->setting->state.status = f_file_group_read(data_make->cache_arguments.array[i], dereference, &id_file);
+      data_make->main->setting.state.status = f_file_group_read(data_make->cache_arguments.array[i], dereference, &id_file);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         state_process->condition_result = fake_condition_result_error_e;
 
-        fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_group_read), data_make->cache_arguments.array[i], f_file_operation_get_group_s, fll_error_file_type_file_e);
+        fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_group_read), data_make->cache_arguments.array[i], f_file_operation_get_group_s, fll_error_file_type_file_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
@@ -989,14 +992,14 @@ extern "C" {
       }
     } // for
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_if_group_
 
 #ifndef _di_fake_make_operate_process_type_if_mode_
   void fake_make_operate_process_type_if_mode(fake_make_data_t * const data_make, const bool if_not, fake_state_process_t *state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
     f_file_mode_t mode_rule = 0;
     mode_t mode_match = 0;
@@ -1011,24 +1014,24 @@ extern "C" {
 
       fake_make_get_id_mode(data_make, data_make->cache_arguments.array[if_not ? 3 : 2], &mode_rule, &mode_replace);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         state_process->condition_result = fake_condition_result_error_e;
 
-        fake_print_error(&data_make->program->error, macro_fake_f(fake_make_get_id_mode));
+        fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_get_id_mode));
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
-      data_make->setting->state.status = f_file_mode_to_mode(mode_rule, &mode_match);
+      data_make->main->setting.state.status = f_file_mode_to_mode(mode_rule, &mode_match);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         state_process->condition_result = fake_condition_result_error_e;
 
-        fake_print_error(&data_make->program->error, macro_fake_f(f_file_mode_to_mode));
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_file_mode_to_mode));
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
@@ -1040,14 +1043,14 @@ extern "C" {
 
     for (f_array_length_t i = if_not ? 4 : 3; i < data_make->cache_arguments.used; ++i, mode_file = 0) {
 
-      data_make->setting->state.status = f_file_mode_read(data_make->cache_arguments.array[i], F_true, &mode_file);
+      data_make->main->setting.state.status = f_file_mode_read(data_make->cache_arguments.array[i], F_true, &mode_file);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         state_process->condition_result = fake_condition_result_error_e;
 
-        fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_mode_read), data_make->cache_arguments.array[i], f_file_operation_get_mode_s, fll_error_file_type_file_e);
+        fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_mode_read), data_make->cache_arguments.array[i], f_file_operation_get_mode_s, fll_error_file_type_file_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
@@ -1086,20 +1089,20 @@ extern "C" {
       }
     } // for
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_if_mode_
 
 #ifndef _di_fake_make_operate_process_type_if_owner_
   void fake_make_operate_process_type_if_owner(fake_make_data_t * const data_make, const bool if_not, fake_state_process_t *state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
     uid_t id = 0;
     f_array_length_t i = if_not ? 2 : 1;
     bool dereference = F_true;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) {
       ++i;
@@ -1108,12 +1111,12 @@ extern "C" {
 
     id = (uid_t) fake_make_get_id(data_make, F_true, data_make->cache_arguments.array[i++]);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
+    if (F_status_is_error(data_make->main->setting.state.status)) {
       state_process->condition_result = fake_condition_result_error_e;
 
-      fake_print_error(&data_make->program->error, macro_fake_f(fake_make_get_id));
+      fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_get_id));
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
@@ -1122,14 +1125,14 @@ extern "C" {
 
     for (uid_t id_file = 0; i < data_make->cache_arguments.used; ++i, id_file = 0) {
 
-      data_make->setting->state.status = f_file_owner_read(data_make->cache_arguments.array[i], dereference, &id_file);
+      data_make->main->setting.state.status = f_file_owner_read(data_make->cache_arguments.array[i], dereference, &id_file);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         state_process->condition_result = fake_condition_result_error_e;
 
-        fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_owner_read), data_make->cache_arguments.array[i], f_file_operation_get_owner_s, fll_error_file_type_file_e);
+        fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_owner_read), data_make->cache_arguments.array[i], f_file_operation_get_owner_s, fll_error_file_type_file_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
@@ -1150,14 +1153,14 @@ extern "C" {
       }
     } // for
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_if_owner_
 
 #ifndef _di_fake_make_operate_process_type_if_parameter_
   void fake_make_operate_process_type_if_parameter(fake_make_data_t * const data_make, const bool if_not, fake_state_process_t *state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
     const f_string_static_t reserved_name[] = {
       fake_make_parameter_variable_build_s,
@@ -1196,28 +1199,28 @@ extern "C" {
     };
 
     const bool reserved_parameter[] = {
-      data_make->setting->build.used,
+      data_make->main->setting.build.used,
       F_true,
-      data_make->setting->data.used,
-      data_make->setting->defines.used,
-      data_make->setting->fakefile.used,
-      data_make->setting->modes.used,
-      data_make->setting->process.used,
-      data_make->setting->settings.used,
-      data_make->setting->sources.used,
+      data_make->main->setting.data.used,
+      data_make->main->setting.defines.used,
+      data_make->main->setting.fakefile.used,
+      data_make->main->setting.modes.used,
+      data_make->main->setting.process.used,
+      data_make->main->setting.settings.used,
+      data_make->main->setting.sources.used,
       F_true,
-      data_make->setting->work.used,
-      data_make->program->parameters.array[fake_parameter_build_e].result & f_console_result_value_e,
-      (data_make->program->parameters.array[fake_parameter_light_e].result & f_console_result_found_e) || (data_make->program->parameters.array[fake_parameter_dark_e].result & f_console_result_found_e) || (data_make->program->parameters.array[fake_parameter_no_color_e].result & f_console_result_found_e),
-      data_make->program->parameters.array[fake_parameter_data_e].result & f_console_result_value_e,
-      data_make->program->parameters.array[fake_parameter_define_e].result & f_console_result_value_e,
-      data_make->program->parameters.array[fake_parameter_fakefile_e].result & f_console_result_value_e,
-      data_make->program->parameters.array[fake_parameter_mode_e].result & f_console_result_value_e,
-      data_make->program->parameters.array[fake_parameter_process_e].result & f_console_result_value_e,
-      data_make->program->parameters.array[fake_parameter_settings_e].result & f_console_result_value_e,
-      data_make->program->parameters.array[fake_parameter_sources_e].result & f_console_result_value_e,
-      (data_make->program->parameters.array[fake_parameter_verbosity_quiet_e].result & f_console_result_found_e) || (data_make->program->parameters.array[fake_parameter_verbosity_normal_e].result & f_console_result_found_e) || (data_make->program->parameters.array[fake_parameter_verbosity_verbose_e].result & f_console_result_found_e) || (data_make->program->parameters.array[fake_parameter_verbosity_debug_e].result & f_console_result_found_e),
-      data_make->program->parameters.array[fake_parameter_work_e].result & f_console_result_value_e,
+      data_make->main->setting.work.used,
+      data_make->main->program.parameters.array[fake_parameter_build_e].result & f_console_result_value_e,
+      (data_make->main->program.parameters.array[fake_parameter_light_e].result & f_console_result_found_e) || (data_make->main->program.parameters.array[fake_parameter_dark_e].result & f_console_result_found_e) || (data_make->main->program.parameters.array[fake_parameter_no_color_e].result & f_console_result_found_e),
+      data_make->main->program.parameters.array[fake_parameter_data_e].result & f_console_result_value_e,
+      data_make->main->program.parameters.array[fake_parameter_define_e].result & f_console_result_value_e,
+      data_make->main->program.parameters.array[fake_parameter_fakefile_e].result & f_console_result_value_e,
+      data_make->main->program.parameters.array[fake_parameter_mode_e].result & f_console_result_value_e,
+      data_make->main->program.parameters.array[fake_parameter_process_e].result & f_console_result_value_e,
+      data_make->main->program.parameters.array[fake_parameter_settings_e].result & f_console_result_value_e,
+      data_make->main->program.parameters.array[fake_parameter_sources_e].result & f_console_result_value_e,
+      (data_make->main->program.parameters.array[fake_parameter_verbosity_quiet_e].result & f_console_result_found_e) || (data_make->main->program.parameters.array[fake_parameter_verbosity_normal_e].result & f_console_result_found_e) || (data_make->main->program.parameters.array[fake_parameter_verbosity_verbose_e].result & f_console_result_found_e) || (data_make->main->program.parameters.array[fake_parameter_verbosity_debug_e].result & f_console_result_found_e),
+      data_make->main->program.parameters.array[fake_parameter_work_e].result & f_console_result_value_e,
       data_make->parameter_value.build.used,
       data_make->parameter_value.color.used,
       data_make->parameter_value.data.used,
@@ -1295,11 +1298,11 @@ extern "C" {
 
     const int result = fake_execute(data_make->data, data_make->environment, data_make->setting_build.build_indexer, data_make->cache_arguments);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      fake_print_error(&data_make->program->error, macro_fake_f(fake_execute));
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      fake_print_error(&data_make->main->program.error, macro_fake_f(fake_execute));
     }
 
-    if (data_make->setting->state.status == F_child) return result;
+    if (data_make->main->setting.state.status == F_child) return result;
 
     fake_make_operate_process_return(data_make, result);
 
@@ -1310,7 +1313,7 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_type_link_
   void fake_make_operate_process_type_link(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     // 0x1 = force, 0x2 = strict.
     uint8_t flag = 0;
@@ -1335,61 +1338,61 @@ extern "C" {
 
     if ((flag & 0x1) && f_file_exists(data_make->cache_arguments.array[data_make->cache_arguments.used - 1], F_false) == F_true) {
       if (f_directory_is(data_make->cache_arguments.array[data_make->cache_arguments.used - 1]) == F_true) {
-        data_make->setting->state.status = f_directory_remove(data_make->cache_arguments.array[data_make->cache_arguments.used - 1], F_directory_max_descriptors_d, F_false);
+        data_make->main->setting.state.status = f_directory_remove(data_make->cache_arguments.array[data_make->cache_arguments.used - 1], F_directory_max_descriptors_d, F_false);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_directory_remove), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_delete_s, fll_error_file_type_directory_e);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_directory_remove), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_delete_s, fll_error_file_type_directory_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       }
       else {
-        data_make->setting->state.status = f_file_remove(data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
+        data_make->main->setting.state.status = f_file_remove(data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_remove), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_delete_s, fll_error_file_type_file_e);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_remove), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_delete_s, fll_error_file_type_file_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       }
     }
 
-    data_make->setting->state.status = f_file_link(data_make->cache_arguments.array[0], data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
+    data_make->main->setting.state.status = f_file_link(data_make->cache_arguments.array[0], data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_link), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_link_s, fll_error_file_type_file_e);
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_link), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_link_s, fll_error_file_type_file_e);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
 
-    fake_make_print_verbose_operate_symbolic_link(data_make->setting, data_make->program->message, data_make->cache_arguments.array[data_make->cache_arguments.used - 1], data_make->cache_arguments.array[0]);
+    fake_make_print_verbose_operate_symbolic_link(&data_make->main->program.message, data_make->cache_arguments.array[data_make->cache_arguments.used - 1], data_make->cache_arguments.array[0]);
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_link_
 
 #ifndef _di_fake_make_operate_process_type_modes_
   void fake_make_operate_process_type_modes(fake_make_data_t * const data_make, const bool all) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     f_file_mode_t mode_rule = 0;
     uint8_t replace = 0;
 
     fake_make_get_id_mode(data_make, data_make->cache_arguments.array[0], &mode_rule, &replace);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      fake_print_error(&data_make->program->error, macro_fake_f(fake_make_get_id_mode));
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_get_id_mode));
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
@@ -1399,79 +1402,81 @@ extern "C" {
 
     for (f_array_length_t i = 1; i < data_make->cache_arguments.used; ++i, mode = 0) {
 
-      data_make->setting->state.status = f_file_mode_read(data_make->cache_arguments.array[i], F_true, &mode_file);
+      data_make->main->setting.state.status = f_file_mode_read(data_make->cache_arguments.array[i], F_true, &mode_file);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_mode_read), data_make->cache_arguments.array[i], f_file_operation_change_group_s, fll_error_file_type_file_e);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_mode_read), data_make->cache_arguments.array[i], f_file_operation_change_group_s, fll_error_file_type_file_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
-      data_make->setting->state.status = f_file_mode_determine(mode_file, mode_rule, replace, macro_f_file_type_is_directory(mode_file), &mode);
+      data_make->main->setting.state.status = f_file_mode_determine(mode_file, mode_rule, replace, macro_f_file_type_is_directory(mode_file), &mode);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_mode_determine), data_make->cache_arguments.array[i], f_file_operation_change_group_s, fll_error_file_type_file_e);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_mode_determine), data_make->cache_arguments.array[i], f_file_operation_change_group_s, fll_error_file_type_file_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
       if (all) {
-        data_make->setting->state.status = fll_file_mode_set_all(data_make->cache_arguments.array[i], F_true, mode, fake_max_recursion_depth_d);
+        data_make->main->setting.state.status = fll_file_mode_set_all(data_make->cache_arguments.array[i], F_true, mode, fake_max_recursion_depth_d);
       }
       else {
-        data_make->setting->state.status = f_file_mode_set(data_make->cache_arguments.array[i], mode);
+        data_make->main->setting.state.status = f_file_mode_set(data_make->cache_arguments.array[i], mode);
       }
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_file(data_make->setting, data_make->program->error, all ? macro_fake_f(fll_file_mode_set_all) : macro_fake_f(f_file_mode_set), data_make->cache_arguments.array[i], f_file_operation_change_group_s, fll_error_file_type_file_e);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_file(&data_make->main->program.error, all ? macro_fake_f(fll_file_mode_set_all) : macro_fake_f(f_file_mode_set), data_make->cache_arguments.array[i], f_file_operation_change_group_s, fll_error_file_type_file_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
-      fake_make_print_verbose_operate_set_mode(data_make->setting, data_make->program->message, data_make->cache_arguments.array[i], mode);
+      fake_make_print_verbose_operate_set_mode(&data_make->main->program.message, data_make->cache_arguments.array[i], mode);
     } // for
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_modes_
 
 #ifndef _di_fake_make_operate_process_type_move_
   void fake_make_operate_process_type_move(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     const f_array_length_t total = data_make->cache_arguments.used -1;
 
     f_directory_recurse_t recurse = f_directory_recurse_t_initialize;
     f_string_static_t destination = f_string_static_t_initialize;
 
-    if (data_make->program->error.verbosity >= f_console_verbosity_verbose_e) {
-      recurse.verbose = fake_print_verbose_move;
+    if (data_make->main->program.error.verbosity > f_console_verbosity_normal_e) {
+      recurse.state.custom = data_make->main;
+
+      recurse.verbose = fake_print_verbose_recursive_move;
     }
 
     bool existing = F_true;
 
     // In this case, the destination could be a file, so confirm this.
     if (data_make->cache_arguments.used == 2) {
-      data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[1]);
+      data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[1]);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[1], f_file_operation_identify_s, fll_error_file_type_directory_e);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[1], f_file_operation_identify_s, fll_error_file_type_directory_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         f_directory_recurse_delete(&recurse);
 
         return;
       }
 
-      if (data_make->setting->state.status == F_false || data_make->setting->state.status == F_file_found_not) {
+      if (data_make->main->setting.state.status == F_false || data_make->main->setting.state.status == F_file_found_not) {
         existing = F_false;
       }
     }
@@ -1483,12 +1488,12 @@ extern "C" {
       if (existing) {
         data_make->cache_path.used = 0;
 
-        data_make->setting->state.status = f_file_name_base(data_make->cache_arguments.array[i], &data_make->cache_path);
+        data_make->main->setting.state.status = f_file_name_base(data_make->cache_arguments.array[i], &data_make->cache_path);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_name_base), data_make->cache_arguments.array[i], f_file_operation_process_s, fll_error_file_type_path_e);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_name_base), data_make->cache_arguments.array[i], f_file_operation_process_s, fll_error_file_type_path_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           f_directory_recurse_delete(&recurse);
 
@@ -1524,11 +1529,11 @@ extern "C" {
       fll_file_move(data_make->cache_arguments.array[i], destination, &recurse);
 
       if (F_status_is_error(recurse.state.status)) {
-        data_make->setting->state.status = recurse.state.status;
+        data_make->main->setting.state.status = recurse.state.status;
 
-        fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(fll_file_move), data_make->cache_arguments.array[i], f_file_operation_move_s, fll_error_file_type_directory_e);
+        fake_print_error_file(&data_make->main->program.error, macro_fake_f(fll_file_move), data_make->cache_arguments.array[i], f_file_operation_move_s, fll_error_file_type_directory_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         f_directory_recurse_delete(&recurse);
 
@@ -1538,7 +1543,7 @@ extern "C" {
 
     f_directory_recurse_delete(&recurse);
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_move_
 
@@ -1561,11 +1566,11 @@ extern "C" {
     const int result = fake_make_operate_section(data_make, id_section, section_stack);
 
     // Ensure that a break only happens within its active state_process->operation stack.
-    if (data_make->setting->state.status == F_signal_abort) {
-      data_make->setting->state.status = F_none;
+    if (data_make->main->setting.state.status == F_signal_abort) {
+      data_make->main->setting.state.status = F_none;
     }
-    else if (F_status_set_fine(data_make->setting->state.status) == F_signal_abort) {
-      data_make->setting->state.status = F_status_set_error(F_failure);
+    else if (F_status_set_fine(data_make->main->setting.state.status) == F_signal_abort) {
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
 
     return result;
@@ -1575,7 +1580,7 @@ extern "C" {
 #ifndef _di_fake_make_operate_process_type_owners_
   void fake_make_operate_process_type_owners(fake_make_data_t * const data_make, const bool all) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     uid_t id = 0;
     bool dereference = F_true;
@@ -1588,10 +1593,10 @@ extern "C" {
 
     id = (uid_t) fake_make_get_id(data_make, F_true, data_make->cache_arguments.array[i++]);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      fake_print_error(&data_make->program->error, macro_fake_f(fake_make_get_id));
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_get_id));
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
@@ -1600,38 +1605,38 @@ extern "C" {
 
       fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[i]);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
 
         continue;
       }
 
       if (all) {
-        data_make->setting->state.status = fll_file_role_change_all(data_make->cache_arguments.array[i], id, -1, dereference, fake_max_recursion_depth_d);
+        data_make->main->setting.state.status = fll_file_role_change_all(data_make->cache_arguments.array[i], id, -1, dereference, fake_max_recursion_depth_d);
       }
       else {
-        data_make->setting->state.status = f_file_role_change(data_make->cache_arguments.array[i], id, -1, dereference);
+        data_make->main->setting.state.status = f_file_role_change(data_make->cache_arguments.array[i], id, -1, dereference);
       }
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_file(data_make->setting, data_make->program->error, all ? macro_fake_f(fll_file_role_change_all) : macro_fake_f(f_file_role_change), data_make->cache_arguments.array[i], f_file_operation_change_owner_s, fll_error_file_type_file_e);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_file(&data_make->main->program.error, all ? macro_fake_f(fll_file_role_change_all) : macro_fake_f(f_file_role_change), data_make->cache_arguments.array[i], f_file_operation_change_owner_s, fll_error_file_type_file_e);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
-      fake_make_print_verbose_operate_set_role(data_make->setting, data_make->program->message, all ? 0x3 : 0x2, data_make->cache_arguments.array[i], (f_number_unsigned_t) id);
+      fake_make_print_verbose_operate_set_role(&data_make->main->program.message, all ? 0x3 : 0x2, data_make->cache_arguments.array[i], (f_number_unsigned_t) id);
     } // for
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_owners_
 
 #ifndef _di_fake_make_operate_process_type_parameter_
   void fake_make_operate_process_type_parameter(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     bool found = F_false;
     f_array_length_t i = 0;
@@ -1648,44 +1653,44 @@ extern "C" {
     if (found) {
       for (f_array_length_t j = 0; j < data_make->setting_make.parameter.array[i].value.size; ++j) {
 
-        data_make->setting->state.status = f_string_dynamic_resize(0, &data_make->setting_make.parameter.array[i].value.array[j]);
+        data_make->main->setting.state.status = f_string_dynamic_resize(0, &data_make->setting_make.parameter.array[i].value.array[j]);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_resize));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_resize));
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       } // for
 
       if (data_make->setting_make.parameter.array[i].value.size) {
-        data_make->setting->state.status = f_string_dynamics_resize(0, &data_make->setting_make.parameter.array[i].value);
+        data_make->main->setting.state.status = f_string_dynamics_resize(0, &data_make->setting_make.parameter.array[i].value);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_resize));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_resize));
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
         }
       }
     }
     else {
-      data_make->setting->state.status = f_string_map_multis_resize(fake_allocation_small_d, &data_make->setting_make.parameter);
+      data_make->main->setting.state.status = f_string_map_multis_resize(fake_allocation_small_d, &data_make->setting_make.parameter);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_string_map_multis_resize));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_map_multis_resize));
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
-      data_make->setting->state.status = f_string_dynamic_append_nulless(data_make->cache_arguments.array[0], &data_make->setting_make.parameter.array[data_make->setting_make.parameter.used].name);
+      data_make->main->setting.state.status = f_string_dynamic_append_nulless(data_make->cache_arguments.array[0], &data_make->setting_make.parameter.array[data_make->setting_make.parameter.used].name);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
@@ -1696,38 +1701,38 @@ extern "C" {
     data_make->setting_make.parameter.array[i].value.used = 0;
 
     if (data_make->cache_arguments.used > 1) {
-      data_make->setting->state.status = f_string_dynamics_resize(data_make->cache_arguments.used - 1, &data_make->setting_make.parameter.array[i].value);
+      data_make->main->setting.state.status = f_string_dynamics_resize(data_make->cache_arguments.used - 1, &data_make->setting_make.parameter.array[i].value);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_resize));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_resize));
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
       for (f_array_length_t j = 0; j < data_make->setting_make.parameter.array[i].value.size; ++j) {
 
-        data_make->setting->state.status = f_string_dynamic_append_nulless(data_make->cache_arguments.array[j + 1], &data_make->setting_make.parameter.array[i].value.array[j]);
+        data_make->main->setting.state.status = f_string_dynamic_append_nulless(data_make->cache_arguments.array[j + 1], &data_make->setting_make.parameter.array[i].value.array[j]);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
         }
 
         ++data_make->setting_make.parameter.array[i].value.used;
       } // for
     }
 
-     data_make->setting->state.status = F_none;
+     data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_parameter_
 
 #ifndef _di_fake_make_operate_process_type_pop_
   void fake_make_operate_process_type_pop(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     f_string_dynamic_t *argument = &data_make->path.stack.array[data_make->path.stack.used - 1];
 
@@ -1735,41 +1740,41 @@ extern "C" {
 
     --data_make->path.stack.used;
 
-    data_make->setting->state.status = f_path_change(*argument);
+    data_make->main->setting.state.status = f_path_change(*argument);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      fake_print_error_operation_path_stack_max(data_make->setting, data_make->error, macro_fake_f(f_path_change), *argument);
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_path_change), *argument);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
 
-    if (data_make->program->error.verbosity >= f_console_verbosity_verbose_e) {
+    if (data_make->main->program.error.verbosity >= f_console_verbosity_verbose_e) {
       fake_make_path_relative(data_make, *argument);
 
       // The created relative path is for verbosity purposes and as such its failure to be processed should not be treated as a failure of the function.
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(fake_make_path_relative));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_path_relative));
 
-        fake_make_print_verbose_operate_set_path(data_make->setting, data_make->program->message, *argument);
+        fake_make_print_verbose_operate_set_path(&data_make->main->program.message, *argument);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
-      fake_make_print_verbose_operate_set_path(data_make->setting, data_make->program->message, data_make->cache_path);
+      fake_make_print_verbose_operate_set_path(&data_make->main->program.message, data_make->cache_path);
     }
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_pop_
 
 #ifndef _di_fake_make_operate_process_type_print_
   void fake_make_operate_process_type_print(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     data_make->cache_1.used = 0;
 
@@ -1784,12 +1789,12 @@ extern "C" {
           total += data_make->cache_arguments.array[i].used;
         } // for
 
-        data_make->setting->state.status = f_string_dynamic_increase_by(total, &data_make->cache_1);
+        data_make->main->setting.state.status = f_string_dynamic_increase_by(total, &data_make->cache_1);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_file_stream_open));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_file_stream_open));
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
@@ -1798,12 +1803,12 @@ extern "C" {
       for (i = 0; i < data_make->cache_arguments.used; ++i) {
 
         if (i) {
-          data_make->setting->state.status = f_string_dynamic_append(f_string_space_s, &data_make->cache_1);
+          data_make->main->setting.state.status = f_string_dynamic_append(f_string_space_s, &data_make->cache_1);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append));
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append));
 
-            data_make->setting->state.status = F_status_set_error(F_failure);
+            data_make->main->setting.state.status = F_status_set_error(F_failure);
 
             return;
           }
@@ -1811,78 +1816,78 @@ extern "C" {
 
         fake_make_operate_process_buffer_escape(data_make, data_make->cache_arguments.array[i], &data_make->cache_1);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(f_file_stream_open));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(f_file_stream_open));
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       } // for
     }
 
-    f_file_stream_lock(data_make->program->message.to);
+    f_file_stream_lock(data_make->main->program.message.to);
 
-    fll_print_dynamic_raw(data_make->cache_1, data_make->program->message.to);
-    fll_print_dynamic_raw(f_string_eol_s, data_make->program->message.to);
+    fll_print_dynamic_raw(data_make->cache_1, data_make->main->program.message.to);
+    fll_print_dynamic_raw(f_string_eol_s, data_make->main->program.message.to);
 
-    f_file_stream_unlock(data_make->program->message.to);
+    f_file_stream_unlock(data_make->main->program.message.to);
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_print_
 
 #ifndef _di_fake_make_operate_process_type_skeleton_
   void fake_make_operate_process_type_skeleton(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     fake_skeleton_operate(data_make->data);
-    if (F_status_set_fine(data_make->setting->state.status) == F_interrupt) return;
+    if (F_status_set_fine(data_make->main->setting.state.status) == F_interrupt) return;
 
-    fake_make_operate_process_return(data_make, F_status_is_error(data_make->setting->state.status) ? 1 : 0);
+    fake_make_operate_process_return(data_make, F_status_is_error(data_make->main->setting.state.status) ? 1 : 0);
   }
 #endif // _di_fake_make_operate_process_type_skeleton_
 
 #ifndef _di_fake_make_operate_process_type_to_
   void fake_make_operate_process_type_to(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[0]);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[0]);
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[0]);
 
-      if (F_status_set_fine(data_make->setting->state.status) == F_false) {
-        data_make->setting->state.status = F_status_set_error(F_failure);
+      if (F_status_set_fine(data_make->main->setting.state.status) == F_false) {
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
       }
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
 
-    data_make->setting->state.status = f_path_change(data_make->cache_arguments.array[0]);
+    data_make->main->setting.state.status = f_path_change(data_make->cache_arguments.array[0]);
 
-    if (F_status_is_error(data_make->setting->state.status)) {
-      fake_print_error_operation_path_stack_max(data_make->setting, data_make->error, macro_fake_f(f_path_change), data_make->cache_arguments.array[0]);
+    if (F_status_is_error(data_make->main->setting.state.status)) {
+      fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_path_change), data_make->cache_arguments.array[0]);
     }
     else {
-      data_make->setting->state.status = f_string_dynamics_increase_by(fake_allocation_small_d, &data_make->path.stack);
+      data_make->main->setting.state.status = f_string_dynamics_increase_by(fake_allocation_small_d, &data_make->path.stack);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        if (F_status_set_fine(data_make->setting->state.status) == F_array_too_large) {
-          fake_print_error_operation_path_stack_max(data_make->setting, data_make->error, macro_fake_f(f_string_dynamics_increase_by), fake_common_file_path_stack_s);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        if (F_status_set_fine(data_make->main->setting.state.status) == F_array_too_large) {
+          fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_string_dynamics_increase_by), fake_common_file_path_stack_s);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
 
-        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamics_increase_by));
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamics_increase_by));
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
@@ -1890,55 +1895,55 @@ extern "C" {
       // Copy the entire real path, including the trailing NULL.
       ++data_make->cache_path.used;
 
-      data_make->setting->state.status = f_string_dynamic_append_nulless(data_make->cache_path, &data_make->path.stack.array[data_make->path.stack.used]);
+      data_make->main->setting.state.status = f_string_dynamic_append_nulless(data_make->cache_path, &data_make->path.stack.array[data_make->path.stack.used]);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_nulless));
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_nulless));
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
-      if (data_make->program->error.verbosity >= f_console_verbosity_verbose_e) {
+      if (data_make->main->program.error.verbosity >= f_console_verbosity_verbose_e) {
         fake_make_path_relative(data_make, data_make->path.stack.array[data_make->path.stack.used]);
 
         // The created relative path is for verbosity purposes and as such its failure to be processed should not be treated as a failure of the function.
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error(&data_make->program->error, macro_fake_f(fake_make_path_relative));
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error(&data_make->main->program.error, macro_fake_f(fake_make_path_relative));
 
-          fake_make_print_verbose_operate_set_path(data_make->setting, data_make->program->message, data_make->path.stack.array[data_make->path.stack.used]);
+          fake_make_print_verbose_operate_set_path(&data_make->main->program.message, data_make->path.stack.array[data_make->path.stack.used]);
         }
         else {
-          fake_make_print_verbose_operate_set_path(data_make->setting, data_make->program->message, data_make->cache_path);
+          fake_make_print_verbose_operate_set_path(&data_make->main->program.message, data_make->cache_path);
         }
       }
 
       ++data_make->path.stack.used;
     }
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_to_
 
 #ifndef _di_fake_make_operate_process_type_top_
   void fake_make_operate_process_type_top(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     {
-      data_make->setting->state.status = f_path_change_at(data_make->path.top.id);
+      data_make->main->setting.state.status = f_path_change_at(data_make->path.top.id);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_operation_path_stack_max(data_make->setting, data_make->error, macro_fake_f(f_path_change), data_make->cache_arguments.array[0]);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_path_change), data_make->cache_arguments.array[0]);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
     }
 
-    fake_make_print_verbose_operate_set_path(data_make->setting, data_make->program->message, f_string_empty_s);
+    fake_make_print_verbose_operate_set_path(&data_make->main->program.message, f_string_empty_s);
 
     // Clear stack, except for the project root.
     for (f_array_length_t i = 1; i < data_make->path.stack.used; ++i) {
@@ -1947,148 +1952,148 @@ extern "C" {
 
     data_make->path.stack.used = 1;
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_top_
 
 #ifndef _di_fake_make_operate_process_type_touch_
   void fake_make_operate_process_type_touch(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     f_mode_t mode = f_mode_t_initialize;
 
-    macro_f_mode_t_set_default_umask(mode, data_make->program->umask);
+    macro_f_mode_t_set_default_umask(mode, data_make->main->program.umask);
 
     for (f_array_length_t i = 1; i < data_make->cache_arguments.used; ++i) {
 
       if (fl_string_dynamic_compare(fake_make_operation_argument_file_s, data_make->cache_arguments.array[0]) == F_equal_to) {
-        data_make->setting->state.status = f_file_touch(data_make->cache_arguments.array[i], mode.regular, F_false);
+        data_make->main->setting.state.status = f_file_touch(data_make->cache_arguments.array[i], mode.regular, F_false);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
+        if (F_status_is_error(data_make->main->setting.state.status)) {
           if (F_status_is_error_not(fl_path_canonical(data_make->cache_arguments.array[i], &data_make->cache_path))) {
-            fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_touch), data_make->cache_path, f_file_operation_touch_s, fll_error_file_type_file_e);
+            fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_touch), data_make->cache_path, f_file_operation_touch_s, fll_error_file_type_file_e);
           }
           else {
-            fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_touch), data_make->cache_arguments.array[i], f_file_operation_touch_s, fll_error_file_type_file_e);
+            fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_touch), data_make->cache_arguments.array[i], f_file_operation_touch_s, fll_error_file_type_file_e);
           }
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       }
       else if (fl_string_dynamic_compare(fake_make_operation_argument_directory_s, data_make->cache_arguments.array[0]) == F_equal_to) {
-        data_make->setting->state.status = f_directory_touch(data_make->cache_arguments.array[i], mode.directory);
+        data_make->main->setting.state.status = f_directory_touch(data_make->cache_arguments.array[i], mode.directory);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
+        if (F_status_is_error(data_make->main->setting.state.status)) {
           if (F_status_is_error_not(fl_path_canonical(data_make->cache_arguments.array[i], &data_make->cache_path))) {
-            fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_directory_touch), data_make->cache_path, f_file_operation_touch_s, fll_error_file_type_directory_e);
+            fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_directory_touch), data_make->cache_path, f_file_operation_touch_s, fll_error_file_type_directory_e);
           }
           else {
-            fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_directory_touch), data_make->cache_arguments.array[i], f_file_operation_touch_s, fll_error_file_type_directory_e);
+            fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_directory_touch), data_make->cache_arguments.array[i], f_file_operation_touch_s, fll_error_file_type_directory_e);
           }
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       }
 
-      fake_make_print_verbose_operate_touch(data_make->setting, data_make->program->message, data_make->cache_arguments.array[i]);
+      fake_make_print_verbose_operate_touch(&data_make->main->program.message, data_make->cache_arguments.array[i]);
     } // for
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_process_type_touch_
 
 #ifndef _di_fake_make_operate_process_type_write_
   void fake_make_operate_process_type_write(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     f_file_t file = f_file_t_initialize;
 
-    data_make->setting->state.status = f_file_exists(data_make->cache_arguments.array[0], F_true);
+    data_make->main->setting.state.status = f_file_exists(data_make->cache_arguments.array[0], F_true);
 
-    if (data_make->cache_arguments.used == 1 || data_make->setting->state.status == F_false) {
-      data_make->setting->state.status = f_file_stream_open(data_make->cache_arguments.array[0], f_file_open_mode_truncate_s, &file);
+    if (data_make->cache_arguments.used == 1 || data_make->main->setting.state.status == F_false) {
+      data_make->main->setting.state.status = f_file_stream_open(data_make->cache_arguments.array[0], f_file_open_mode_truncate_s, &file);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
+      if (F_status_is_error(data_make->main->setting.state.status)) {
         if (F_status_is_error_not(fl_path_canonical(data_make->cache_arguments.array[0], &data_make->cache_path))) {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_stream_open), data_make->cache_path, f_file_operation_open_s, fll_error_file_type_file_e);
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_stream_open), data_make->cache_path, f_file_operation_open_s, fll_error_file_type_file_e);
         }
         else {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_stream_open), data_make->cache_arguments.array[0], f_file_operation_open_s, fll_error_file_type_file_e);
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_stream_open), data_make->cache_arguments.array[0], f_file_operation_open_s, fll_error_file_type_file_e);
         }
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
       // Keep the stream open if there is a string to write to it.
       if (data_make->cache_arguments.used > 1) {
-        data_make->setting->state.status = F_false;
+        data_make->main->setting.state.status = F_false;
       }
       else {
-        data_make->setting->state.status = F_none;
+        data_make->main->setting.state.status = F_none;
 
         f_file_stream_flush(file);
         f_file_stream_close(&file);
       }
     }
 
-    if (F_status_is_error_not(data_make->setting->state.status) && data_make->cache_arguments.used > 1) {
-      if (data_make->setting->state.status != F_false) {
-        data_make->setting->state.status = f_file_stream_open(data_make->cache_arguments.array[0], f_file_open_mode_append_s, &file);
+    if (F_status_is_error_not(data_make->main->setting.state.status) && data_make->cache_arguments.used > 1) {
+      if (data_make->main->setting.state.status != F_false) {
+        data_make->main->setting.state.status = f_file_stream_open(data_make->cache_arguments.array[0], f_file_open_mode_append_s, &file);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
+        if (F_status_is_error(data_make->main->setting.state.status)) {
           if (F_status_is_error_not(fl_path_canonical(data_make->cache_arguments.array[0], &data_make->cache_path))) {
-            fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_stream_open), data_make->cache_path, f_file_operation_open_s, fll_error_file_type_file_e);
+            fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_stream_open), data_make->cache_path, f_file_operation_open_s, fll_error_file_type_file_e);
           }
           else {
-            fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_stream_open), data_make->cache_arguments.array[0], f_file_operation_open_s, fll_error_file_type_file_e);
+            fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_stream_open), data_make->cache_arguments.array[0], f_file_operation_open_s, fll_error_file_type_file_e);
           }
         }
       }
 
-      if (F_status_is_error_not(data_make->setting->state.status)) {
+      if (F_status_is_error_not(data_make->main->setting.state.status)) {
         for (f_array_length_t i = 1; i < data_make->cache_arguments.used; ++i) {
 
           data_make->cache_1.used = 0;
 
           fake_make_operate_process_buffer_escape(data_make, data_make->cache_arguments.array[i], &data_make->cache_1);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
+          if (F_status_is_error(data_make->main->setting.state.status)) {
             if (F_status_is_error_not(fl_path_canonical(data_make->cache_arguments.array[0], &data_make->cache_path))) {
-              fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(fake_make_operate_process_buffer_escape), data_make->cache_path, f_file_operation_write_s, fll_error_file_type_file_e);
+              fake_print_error_file(&data_make->main->program.error, macro_fake_f(fake_make_operate_process_buffer_escape), data_make->cache_path, f_file_operation_write_s, fll_error_file_type_file_e);
             }
             else {
-              fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(fake_make_operate_process_buffer_escape), data_make->cache_arguments.array[0], f_file_operation_write_s, fll_error_file_type_file_e);
+              fake_print_error_file(&data_make->main->program.error, macro_fake_f(fake_make_operate_process_buffer_escape), data_make->cache_arguments.array[0], f_file_operation_write_s, fll_error_file_type_file_e);
             }
 
             break;
           }
 
-          data_make->setting->state.status = f_file_stream_write(file, data_make->cache_1, 0);
+          data_make->main->setting.state.status = f_file_stream_write(file, data_make->cache_1, 0);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
+          if (F_status_is_error(data_make->main->setting.state.status)) {
             if (F_status_is_error_not(fl_path_canonical(data_make->cache_arguments.array[0], &data_make->cache_path))) {
-              fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_stream_write), data_make->cache_path, f_file_operation_write_s, fll_error_file_type_file_e);
+              fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_stream_write), data_make->cache_path, f_file_operation_write_s, fll_error_file_type_file_e);
             }
             else {
-              fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_stream_write), data_make->cache_arguments.array[0], f_file_operation_write_s, fll_error_file_type_file_e);
+              fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_stream_write), data_make->cache_arguments.array[0], f_file_operation_write_s, fll_error_file_type_file_e);
             }
 
             break;
           }
 
           if (i + 1 < data_make->cache_arguments.used) {
-            data_make->setting->state.status = f_file_stream_write(file, f_string_ascii_space_s, 0);
+            data_make->main->setting.state.status = f_file_stream_write(file, f_string_ascii_space_s, 0);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error(&data_make->program->error, macro_fake_f(f_file_stream_write));
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error(&data_make->main->program.error, macro_fake_f(f_file_stream_write));
 
               break;
             }
@@ -2100,7 +2105,7 @@ extern "C" {
       f_file_stream_close(&file);
     }
 
-    data_make->setting->state.status = F_status_is_error(data_make->setting->state.status) ? F_status_set_error(F_failure) : F_none;
+    data_make->main->setting.state.status = F_status_is_error(data_make->main->setting.state.status) ? F_status_set_error(F_failure) : F_none;
   }
 #endif // _di_fake_make_operate_process_type_write_
 
index 805821fc3ad114fb4ff04bf29ec84f2c4720c163..83cda233eacf8f14afdb0a81ccb070174bf2ce1f 100644 (file)
@@ -22,7 +22,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success but not breaking.
  *     F_signal_abort on normal break
  *
@@ -38,7 +38,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     Success from: fake_build_operate()
  *
  *     Errors (with error bit) from: fake_build_operate()
@@ -56,7 +56,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     Success from: fake_clean_operate()
  *
  *     Errors (with error bit) from: fake_clean_operate()
@@ -74,7 +74,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     Success from: fake_execute()
  *
  *     Errors (with error bit) from: fake_execute()
@@ -96,7 +96,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -131,7 +131,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -163,7 +163,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     Success from: f_environment_set().
@@ -182,7 +182,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -212,7 +212,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on unknown exit type (only success and failure are known).
  *     F_signal_quit to designate exit on success.
  *
@@ -236,7 +236,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This does not alter data_make.setting.state.status.
+ *   This does not alter data_make.main.setting.state.status.
  */
 #ifndef _di_fake_make_operate_process_type_fail_
   extern void fake_make_operate_process_type_fail(fake_make_data_t * const data_make);
@@ -248,7 +248,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -277,7 +277,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -297,7 +297,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -321,7 +321,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -342,7 +342,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -369,7 +369,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -393,7 +393,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -422,7 +422,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -449,7 +449,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -469,7 +469,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -495,7 +495,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -514,7 +514,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -545,7 +545,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -568,7 +568,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -592,7 +592,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -621,7 +621,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -647,7 +647,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -674,7 +674,7 @@ extern "C" {
  *   All make related setting data, including data from the fakefile and the build settings file.
  *   This resets and uses data_make.cache_1.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -700,7 +700,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -723,7 +723,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -751,7 +751,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -774,7 +774,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -798,7 +798,7 @@ extern "C" {
  *   All make related setting data, including data from the fakefile and the build settings file.
  *   This resets and uses data_make.cache_1.
  *
- *   This alters data_make.setting.state.status:
+ *   This alters data_make.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
index 8887b0d3ecc9d581cbb11ce7291af7169957c51c..735e69ea9c1cbb571d0bfbc7a287b614c6586caa 100644 (file)
@@ -7,16 +7,16 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_
   void fake_make_operate_validate(fake_make_data_t * const data_make, const f_string_range_t section_name, fake_state_process_t * const state_process, f_array_lengths_t * const section_stack) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
-    if (F_status_is_error(data_make->setting->state.status)) return;
+    if (!data_make || !data_make->main) return;
+    if (F_status_is_error(data_make->main->setting.state.status)) return;
 
     if (!section_stack) {
-      data_make->setting->state.status = F_status_set_error(F_parameter);
+      data_make->main->setting.state.status = F_status_set_error(F_parameter);
 
       return;
     }
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
 
     if (state_process->operation == fake_make_operation_type_break_e) {
       fake_make_operate_validate_type_break(data_make);
index 84ef6579296d470aafbe077a77864fb6e5eaa3a2..0271b69affad590462f84c1690d1bcfb1988794e 100644 (file)
@@ -25,7 +25,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.status:
+ *   This alters data_make.main->setting.status:
  *     F_none on success.
  *
  *     F_parameter (with error bit) on invalid parameter.
index 72063e43165a1070f62c72f1683a0d00684edfa2..235ef284e1f54413cb5bbf19ac5bcbb0318ef42d 100644 (file)
@@ -7,12 +7,12 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_break_
   void fake_make_operate_validate_type_break(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used > 1) {
-      fake_print_error_too_many_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_too_many_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
@@ -20,23 +20,23 @@ extern "C" {
     if (data_make->cache_arguments.used) {
       if (fl_string_dynamic_compare(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to_not) {
         if (fl_string_dynamic_compare(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to_not) {
-          fake_make_print_error_unsupported_type(data_make->setting, data_make->program->error, fake_make_operation_break_s, data_make->cache_arguments.array[0]);
+          fake_make_print_error_unsupported_type(&data_make->main->program.error, fake_make_operation_break_s, data_make->cache_arguments.array[0]);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       }
     }
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_validate_type_break_
 
 #ifndef _di_fake_make_operate_validate_type_build_
   void fake_make_operate_validate_type_build(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used) {
       if (data_make->cache_arguments.array[0].used) {
@@ -50,49 +50,49 @@ extern "C" {
         memcpy(path_file_string, data_make->data->path_data_build.string, sizeof(f_char_t) * data_make->data->path_data_build.used);
         memcpy(path_file_string + data_make->data->path_data_build.used, data_make->cache_arguments.array[0].string, sizeof(f_char_t) * data_make->cache_arguments.array[0].used);
 
-        data_make->setting->state.status = f_file_is(path_file, F_file_type_regular_d, F_false);
+        data_make->main->setting.state.status = f_file_is(path_file, F_file_type_regular_d, F_false);
 
-        if (data_make->setting->state.status == F_file_found_not || F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_file_simple(data_make->setting, data_make->program->error, macro_fake_f(f_file_is), path_file, f_file_operation_find_s, fll_error_file_type_file_e);
+        if (data_make->main->setting.state.status == F_file_found_not || F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_file_simple(&data_make->main->program.error, macro_fake_f(f_file_is), path_file, f_file_operation_find_s, fll_error_file_type_file_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
 
-        if (!data_make->setting->state.status) {
-          fake_make_print_error_file_type(data_make->setting, data_make->program->message, f_file_type_name_regular_s, path_file);
+        if (!data_make->main->setting.state.status) {
+          fake_make_print_error_file_type(&data_make->main->program.message, f_file_type_name_regular_s, path_file);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       }
       else {
-        fake_make_print_error_file_name_empty(data_make->setting, data_make->program->error);
+        fake_make_print_error_file_name_empty(&data_make->main->program.error);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
     }
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_validate_type_build_
 
 #ifndef _di_fake_make_operate_validate_type_clean_top_skeleton_
   void fake_make_operate_validate_type_clean_top_skeleton(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used) {
-      fake_print_error_too_many_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_too_many_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
     else {
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_make_operate_validate_type_clean_top_skeleton_
@@ -100,7 +100,7 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_clone_
   void fake_make_operate_validate_type_clone(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used > 1) {
       f_status_t status = F_none;
@@ -109,17 +109,17 @@ extern "C" {
 
         fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[i]);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
         }
       } // for
 
       for (f_array_length_t i = 0; i < data_make->cache_arguments.used - 1; ++i) {
 
         if (f_file_exists(data_make->cache_arguments.array[i], F_true) != F_true) {
-          fake_print_error_file_simple(data_make->setting, data_make->program->error, macro_fake_f(f_file_is), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
+          fake_print_error_file_simple(&data_make->main->program.error, macro_fake_f(f_file_is), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
 
           status = F_status_set_error(F_failure);
         }
@@ -128,16 +128,16 @@ extern "C" {
       if (data_make->cache_arguments.used > 2) {
 
         // The last file must be a directory.
-        data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
+        data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
 
-        if (data_make->setting->state.status == F_false || data_make->setting->state.status == F_file_found_not) {
-          fake_make_print_error_content_not_directory(data_make->setting, data_make->program->error, "last", data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
+        if (data_make->main->setting.state.status == F_false || data_make->main->setting.state.status == F_file_found_not) {
+          fake_make_print_error_content_not_directory(&data_make->main->program.error, "last", data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
 
           status = F_status_set_error(F_failure);
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_find_s, fll_error_file_type_directory_e);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_find_s, fll_error_file_type_directory_e);
 
           status = F_status_set_error(F_failure);
         }
@@ -145,47 +145,47 @@ extern "C" {
       else {
 
         // When the first file is a directory, then the second, if it exists, must also be a directory.
-        data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[0]);
+        data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[0]);
 
-        if (data_make->setting->state.status == F_true) {
-          data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[1]);
+        if (data_make->main->setting.state.status == F_true) {
+          data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[1]);
 
-          if (data_make->setting->state.status == F_false) {
-            fake_make_print_error_content_not_directory(data_make->setting, data_make->program->error, "second", data_make->cache_arguments.array[1]);
+          if (data_make->main->setting.state.status == F_false) {
+            fake_make_print_error_content_not_directory(&data_make->main->program.error, "second", data_make->cache_arguments.array[1]);
 
             status = F_status_set_error(F_failure);
           }
         }
       }
 
-      data_make->setting->state.status = status;
+      data_make->main->setting.state.status = status;
 
       return;
     }
 
-    fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+    fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-    data_make->setting->state.status = F_status_set_error(F_failure);
+    data_make->main->setting.state.status = F_status_set_error(F_failure);
   }
 #endif // _di_fake_make_operate_validate_type_clone_
 
 #ifndef _di_fake_make_operate_validate_type_compile_
   void fake_make_operate_validate_type_compile(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (!data_make->cache_arguments.used) {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
     else if (data_make->setting_build.build_compiler.used) {
-      fake_make_print_error_compiler_not_specified(data_make->setting, data_make->program->error, fake_make_operation_compile_s);
+      fake_make_print_error_compiler_not_specified(&data_make->main->program.error, fake_make_operation_compile_s);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
     else {
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_make_operate_validate_type_compile_
@@ -193,22 +193,22 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_condition_
   void fake_make_operate_validate_type_condition(fake_make_data_t * const data_make, fake_state_process_t * const state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
     if (state_process->operation == fake_make_operation_type_if_e) {
       if (state_process->operation_previous == fake_make_operation_type_if_e) {
-        fake_make_print_error_after_condition_must_not(data_make->setting, data_make->program->error);
+        fake_make_print_error_after_condition_must_not(&data_make->main->program.error);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
     }
     else {
       if (!(state_process->operation_previous == fake_make_operation_type_if_e || state_process->operation_previous == fake_make_operation_type_and_e || state_process->operation_previous == fake_make_operation_type_or_e)) {
-        fake_make_print_error_after_condition_may_only(data_make->setting, data_make->program->error);
+        fake_make_print_error_after_condition_may_only(&data_make->main->program.error);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
@@ -357,9 +357,9 @@ extern "C" {
       } // for
 
       if (i == 23) {
-        fake_make_print_error_unsupported_type(data_make->setting, data_make->program->error, if_and_or, data_make->cache_arguments.array[k]);
+        fake_make_print_error_unsupported_type(&data_make->main->program.error, if_and_or, data_make->cache_arguments.array[k]);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
@@ -371,9 +371,9 @@ extern "C" {
       // Identify and convert to the appropriate if not condition.
       if (state_process->condition == fake_make_operation_if_type_if_not_e) {
         if (data_make->cache_arguments.used < 1 + k) {
-          fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+          fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
@@ -388,9 +388,9 @@ extern "C" {
         } // for
 
         if (j == 7) {
-          fake_make_print_error_unsupported_type(data_make->setting, data_make->program->error, if_and_or, data_make->cache_arguments.array[k]);
+          fake_make_print_error_unsupported_type(&data_make->main->program.error, if_and_or, data_make->cache_arguments.array[k]);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
@@ -404,12 +404,12 @@ extern "C" {
 
           // The success and failure operations minimum is also the maximum.
           if (data_make->cache_arguments.used > if_type_minimum[i]) {
-            fake_print_error_too_many_arguments(data_make->setting, data_make->program->error);
+            fake_print_error_too_many_arguments(&data_make->main->program.error);
 
-            data_make->setting->state.status = F_status_set_error(F_failure);
+            data_make->main->setting.state.status = F_status_set_error(F_failure);
           }
           else {
-            data_make->setting->state.status = F_none;
+            data_make->main->setting.state.status = F_none;
           }
 
           return;
@@ -417,19 +417,19 @@ extern "C" {
 
         if (state_process->condition == fake_make_operation_if_type_if_equal_e || state_process->condition == fake_make_operation_if_type_if_equal_not_e) {
           if (data_make->cache_arguments.used < 2 + k) {
-            fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+            fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-            data_make->setting->state.status = F_status_set_error(F_failure);
+            data_make->main->setting.state.status = F_status_set_error(F_failure);
           }
           else {
-            data_make->setting->state.status = F_none;
+            data_make->main->setting.state.status = F_none;
           }
 
           return;
         }
 
         if (state_process->condition == fake_make_operation_if_type_if_exist_e || state_process->condition == fake_make_operation_if_type_if_not_exist_e) {
-          data_make->setting->state.status = F_none;
+          data_make->main->setting.state.status = F_none;
 
           return;
         }
@@ -441,7 +441,7 @@ extern "C" {
               if (fl_string_dynamic_compare(fake_make_operation_argument_has_s, data_make->cache_arguments.array[k]) == F_equal_to_not) {
 
                 if (j == 6) {
-                  fake_make_print_error_unsupported_type(data_make->setting, data_make->program->error, fake_make_operation_mode_s, data_make->cache_arguments.array[k]);
+                  fake_make_print_error_unsupported_type(&data_make->main->program.error, fake_make_operation_mode_s, data_make->cache_arguments.array[k]);
                 }
                 else {
                   f_char_t message[4 + fake_make_operation_mode_s.used + 1];
@@ -451,10 +451,10 @@ extern "C" {
 
                   f_string_static_t message_s = macro_f_string_static_t_initialize(message, 0, 4 + fake_make_operation_mode_s.used);
 
-                  fake_make_print_error_unsupported_type(data_make->setting, data_make->program->error, message_s, data_make->cache_arguments.array[k]);
+                  fake_make_print_error_unsupported_type(&data_make->main->program.error, message_s, data_make->cache_arguments.array[k]);
                 }
 
-                data_make->setting->state.status = F_status_set_error(F_failure);
+                data_make->main->setting.state.status = F_status_set_error(F_failure);
 
                 return;
               }
@@ -465,8 +465,8 @@ extern "C" {
 
             fake_make_get_id_mode(data_make, data_make->cache_arguments.array[++k], &mode_rule, &replace);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              data_make->setting->state.status = F_status_set_error(F_failure);
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              data_make->main->setting.state.status = F_status_set_error(F_failure);
 
               return;
             }
@@ -476,8 +476,8 @@ extern "C" {
           else if (state_process->condition == fake_make_operation_if_type_if_group_e || state_process->condition == fake_make_operation_if_type_if_not_group_e) {
             fake_make_get_id(data_make, F_false, data_make->cache_arguments.array[k++]);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              data_make->setting->state.status = F_status_set_error(F_failure);
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              data_make->main->setting.state.status = F_status_set_error(F_failure);
 
               return;
             }
@@ -522,14 +522,14 @@ extern "C" {
                 type_file |= 0x40;
               }
               else {
-                fake_make_print_error_unsupported_type(data_make->setting, data_make->program->error, f_file_type_name_file_s, data_make->cache_arguments.array[i]);
+                fake_make_print_error_unsupported_type(&data_make->main->program.error, f_file_type_name_file_s, data_make->cache_arguments.array[i]);
 
                 type_file |= 0x80;
               }
             } // for
 
             if (type_file & 0x80) {
-              data_make->setting->state.status = F_status_set_error(F_failure);
+              data_make->main->setting.state.status = F_status_set_error(F_failure);
 
               return;
             }
@@ -537,8 +537,8 @@ extern "C" {
           else if (state_process->condition == fake_make_operation_if_type_if_owner_e || state_process->condition == fake_make_operation_if_type_if_not_owner_e) {
             fake_make_get_id(data_make, F_true, data_make->cache_arguments.array[k++]);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              data_make->setting->state.status = F_status_set_error(F_failure);
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              data_make->main->setting.state.status = F_status_set_error(F_failure);
 
               return;
             }
@@ -553,32 +553,32 @@ extern "C" {
 
               fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[i]);
 
-              if (F_status_is_error(data_make->setting->state.status)) {
-                fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
+              if (F_status_is_error(data_make->main->setting.state.status)) {
+                fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
 
                 status = F_status_set_error(F_failure);
               }
               else if (state_process->condition != fake_make_operation_if_type_if_exist_e && state_process->condition != fake_make_operation_if_type_if_is_e) {
 
                 // The existence tests do not need to happen here for *_if_exists and *_if_is as those two types will handle performing them during the process stage.
-                data_make->setting->state.status = f_file_exists(data_make->cache_arguments.array[i], dereference);
+                data_make->main->setting.state.status = f_file_exists(data_make->cache_arguments.array[i], dereference);
 
-                if (data_make->setting->state.status == F_false) {
-                  data_make->setting->state.status = F_status_set_error(F_file_found_not);
+                if (data_make->main->setting.state.status == F_false) {
+                  data_make->main->setting.state.status = F_status_set_error(F_file_found_not);
                 }
 
-                if (F_status_is_error(data_make->setting->state.status)) {
-                  fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_exists), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
+                if (F_status_is_error(data_make->main->setting.state.status)) {
+                  fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_exists), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
 
                   status = F_status_set_error(F_failure);
                 }
               }
             } // for
 
-            data_make->setting->state.status = status;
+            data_make->main->setting.state.status = status;
           }
           else {
-            data_make->setting->state.status = F_none;
+            data_make->main->setting.state.status = F_none;
           }
 
           return;
@@ -586,9 +586,9 @@ extern "C" {
 
         if (state_process->condition == fake_make_operation_if_type_if_greater_e || state_process->condition == fake_make_operation_if_type_if_greater_equal_e || state_process->condition == fake_make_operation_if_type_if_less_e || state_process->condition == fake_make_operation_if_type_if_less_equal_e) {
           if (data_make->cache_arguments.used < 2 + k) {
-            fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+            fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-            data_make->setting->state.status = F_status_set_error(F_failure);
+            data_make->main->setting.state.status = F_status_set_error(F_failure);
 
             return;
           }
@@ -597,7 +597,7 @@ extern "C" {
           f_string_range_t range = f_string_range_t_initialize;
           f_number_unsigned_t number = 0;
 
-          for (i = k; i < data_make->cache_arguments.used; ++i, data_make->setting->state.status = F_none) {
+          for (i = k; i < data_make->cache_arguments.used; ++i, data_make->main->setting.state.status = F_none) {
 
             if (data_make->cache_arguments.array[i].used) {
               range.start = 0;
@@ -611,41 +611,41 @@ extern "C" {
               }
 
               if (range.start > range.stop) {
-                data_make->setting->state.status = F_status_set_error(F_failure);
+                data_make->main->setting.state.status = F_status_set_error(F_failure);
               }
               else {
-                data_make->setting->state.status = fl_conversion_dynamic_partial_to_unsigned_detect(fl_conversion_data_base_10_c, data_make->cache_arguments.array[i], range, &number);
+                data_make->main->setting.state.status = fl_conversion_dynamic_partial_to_unsigned_detect(fl_conversion_data_base_10_c, data_make->cache_arguments.array[i], range, &number);
               }
             }
             else {
-              data_make->setting->state.status = F_status_set_error(F_failure);
+              data_make->main->setting.state.status = F_status_set_error(F_failure);
             }
 
-            if (F_status_is_error(data_make->setting->state.status)) {
+            if (F_status_is_error(data_make->main->setting.state.status)) {
               status = F_status_set_error(F_failure);
 
               if (number > F_number_t_size_unsigned_d) {
-                fake_make_print_error_out_of_range_number(data_make->setting, data_make->program->error, data_make->cache_arguments.array[i], F_number_t_size_unsigned_d, F_number_t_size_unsigned_d);
+                fake_make_print_error_out_of_range_number(&data_make->main->program.error, data_make->cache_arguments.array[i], F_number_t_size_unsigned_d, F_number_t_size_unsigned_d);
               }
               else {
-                fake_make_print_error_unsupported_number(data_make->setting, data_make->program->error, data_make->cache_arguments.array[i]);
+                fake_make_print_error_unsupported_number(&data_make->main->program.error, data_make->cache_arguments.array[i]);
               }
             }
           } // for
 
-          data_make->setting->state.status = status;
+          data_make->main->setting.state.status = status;
         }
         else {
-          data_make->setting->state.status = F_none;
+          data_make->main->setting.state.status = F_none;
         }
 
         return;
       }
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_condition_
@@ -653,7 +653,7 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_copy_
   void fake_make_operate_validate_type_copy(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used > 1) {
       f_status_t status = F_none;
@@ -663,8 +663,8 @@ extern "C" {
 
         fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[i]);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
 
           status = F_status_set_error(F_failure);
         }
@@ -673,7 +673,7 @@ extern "C" {
       for (i = 0; i < data_make->cache_arguments.used - 1; ++i) {
 
         if (f_file_exists(data_make->cache_arguments.array[i], F_true) != F_true) {
-          fake_print_error_file_simple(data_make->setting, data_make->program->error, macro_fake_f(f_file_is), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
+          fake_print_error_file_simple(&data_make->main->program.error, macro_fake_f(f_file_is), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
 
           status = F_status_set_error(F_failure);
         }
@@ -682,16 +682,16 @@ extern "C" {
       if (data_make->cache_arguments.used > 2) {
 
         // The last file must be a directory.
-        data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
+        data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
 
-        if (data_make->setting->state.status == F_false || data_make->setting->state.status == F_file_found_not) {
-          fake_make_print_error_content_not_directory(data_make->setting, data_make->program->error, "last", data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
+        if (data_make->main->setting.state.status == F_false || data_make->main->setting.state.status == F_file_found_not) {
+          fake_make_print_error_content_not_directory(&data_make->main->program.error, "last", data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
 
           status = F_status_set_error(F_failure);
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_identify_s, fll_error_file_type_directory_e);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_identify_s, fll_error_file_type_directory_e);
 
           status = F_status_set_error(F_failure);
         }
@@ -699,25 +699,25 @@ extern "C" {
       else {
 
         // When the first file is a directory, then the second, if it exists, must also be a directory.
-        data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[0]);
+        data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[0]);
 
-        if (data_make->setting->state.status == F_true) {
-          data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[1]);
+        if (data_make->main->setting.state.status == F_true) {
+          data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[1]);
 
-          if (data_make->setting->state.status == F_false) {
-            fake_make_print_error_content_not_directory(data_make->setting, data_make->program->error, "second", data_make->cache_arguments.array[1]);
+          if (data_make->main->setting.state.status == F_false) {
+            fake_make_print_error_content_not_directory(&data_make->main->program.error, "second", data_make->cache_arguments.array[1]);
 
             status = F_status_set_error(F_failure);
           }
         }
       }
 
-      data_make->setting->state.status = status;
+      data_make->main->setting.state.status = status;
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_copy_
@@ -725,36 +725,36 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_define_
   void fake_make_operate_validate_type_define(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used) {
       fake_make_operate_validate_define_name(data_make->cache_arguments.array[0]);
 
-      if (data_make->setting->state.status == F_true) {
-        data_make->setting->state.status = F_none;
+      if (data_make->main->setting.state.status == F_true) {
+        data_make->main->setting.state.status = F_none;
 
         return;
       }
 
-      if (data_make->setting->state.status == F_none) {
-        fake_make_print_error_define_name_empty(data_make->setting, data_make->program->error);
+      if (data_make->main->setting.state.status == F_none) {
+        fake_make_print_error_define_name_empty(&data_make->main->program.error);
       }
       else {
-        fake_make_print_error_define_invalid_character(data_make->setting, data_make->program->error, data_make->cache_arguments.array[0]);
+        fake_make_print_error_define_invalid_character(&data_make->main->program.error, data_make->cache_arguments.array[0]);
       }
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
     }
 
-    data_make->setting->state.status = F_status_set_error(F_failure);
+    data_make->main->setting.state.status = F_status_set_error(F_failure);
   }
 #endif // _di_fake_make_operate_validate_type_define_
 
 #ifndef _di_fake_make_operate_validate_type_delete_
   void fake_make_operate_validate_type_delete(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used) {
       f_status_t status = F_none;
@@ -763,19 +763,19 @@ extern "C" {
 
         fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[i]);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
 
           status = F_status_set_error(F_failure);
         }
       } // for
 
-      data_make->setting->state.status = status;
+      data_make->main->setting.state.status = status;
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_delete_
@@ -783,53 +783,53 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_else_
   void fake_make_operate_validate_type_else(fake_make_data_t * const data_make, fake_state_process_t * const state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
     if (state_process->operation_previous == fake_make_operation_type_else_e) {
-      fake_make_print_error_after_condition_must_not(data_make->setting, data_make->program->error);
+      fake_make_print_error_after_condition_must_not(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
 
     if (state_process->operation_previous == fake_make_operation_type_if_e || state_process->operation_previous == fake_make_operation_type_and_e || state_process->operation_previous == fake_make_operation_type_or_e) {
-      fake_make_print_error_after_condition_must_not(data_make->setting, data_make->program->error);
+      fake_make_print_error_after_condition_must_not(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
 
     if (!state_process->block) {
-      fake_make_print_error_after_condition_no_preceding(data_make->setting, data_make->program->error);
+      fake_make_print_error_after_condition_no_preceding(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
 
     if (data_make->cache_arguments.used) {
-      fake_print_error_too_many_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_too_many_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_validate_type_else_
 
 #ifndef _di_fake_make_operate_validate_type_exit_
   void fake_make_operate_validate_type_exit(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used > 1) {
-      fake_print_error_too_many_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_too_many_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
@@ -837,43 +837,43 @@ extern "C" {
     if (data_make->cache_arguments.used) {
       if (fl_string_dynamic_compare(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to_not) {
         if (fl_string_dynamic_compare(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to_not) {
-          fake_make_print_error_unsupported_type(data_make->setting, data_make->program->error, fake_make_operation_exit_s, data_make->cache_arguments.array[0]);
+          fake_make_print_error_unsupported_type(&data_make->main->program.error, fake_make_operation_exit_s, data_make->cache_arguments.array[0]);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       }
     }
 
-    data_make->setting->state.status = F_none;
+    data_make->main->setting.state.status = F_none;
   }
 #endif // _di_fake_make_operate_validate_type_exit_
 
 #ifndef _di_fake_make_operate_validate_type_fail_
   void fake_make_operate_validate_type_fail(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used) {
       if (fl_string_dynamic_compare(fake_make_operation_argument_exit_s, data_make->cache_arguments.array[0]) == F_equal_to_not) {
         if (fl_string_dynamic_compare(fake_make_operation_argument_warn_s, data_make->cache_arguments.array[0]) == F_equal_to_not) {
           if (fl_string_dynamic_compare(fake_make_operation_argument_ignore_s, data_make->cache_arguments.array[0]) == F_equal_to_not) {
-            fake_make_print_error_unsupported_type(data_make->setting, data_make->program->error, fake_make_operation_fail_s, data_make->cache_arguments.array[0]);
+            fake_make_print_error_unsupported_type(&data_make->main->program.error, fake_make_operation_fail_s, data_make->cache_arguments.array[0]);
 
-            data_make->setting->state.status = F_status_set_error(F_failure);
+            data_make->main->setting.state.status = F_status_set_error(F_failure);
 
             return;
           }
         }
       }
 
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_fail_
@@ -881,20 +881,20 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_index_
   void fake_make_operate_validate_type_index(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (!data_make->cache_arguments.used) {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
     else if (!data_make->setting_build.build_indexer.used) {
-      fake_make_print_error_indexer_not_specified(data_make->setting, data_make->program->error, fake_make_operation_index_s);
+      fake_make_print_error_indexer_not_specified(&data_make->main->program.error, fake_make_operation_index_s);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
     else {
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_make_operate_validate_type_index_
@@ -902,12 +902,12 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_link_
   void fake_make_operate_validate_type_link(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used > 4) {
-      fake_print_error_too_many_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_too_many_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
@@ -926,7 +926,7 @@ extern "C" {
           flag |= 0x2;
         }
         else {
-          fake_print_error_operation_link_argument_unknown(data_make->setting, data_make->error, data_make->cache_arguments.array[0]);
+          fake_print_error_operation_link_argument_unknown(&data_make->error, data_make->cache_arguments.array[0]);
 
           status = F_status_set_error(F_failure);
         }
@@ -939,7 +939,7 @@ extern "C" {
             flag |= 0x2;
           }
           else {
-            fake_print_error_operation_link_argument_unknown(data_make->setting, data_make->error, data_make->cache_arguments.array[1]);
+            fake_print_error_operation_link_argument_unknown(&data_make->error, data_make->cache_arguments.array[1]);
 
             status = F_status_set_error(F_failure);
           }
@@ -948,15 +948,15 @@ extern "C" {
 
       fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
 
         status = F_status_set_error(F_failure);
       }
       else {
         if (!(flag & 0x1)) {
           if (!data_make->cache_path.used || f_file_exists(data_make->cache_path, F_false) == F_true) {
-            fake_print_error_operation_link_point_exists(data_make->setting, data_make->error, data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
+            fake_print_error_operation_link_point_exists(&data_make->error, data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
 
             status = F_status_set_error(F_failure);
           }
@@ -965,15 +965,15 @@ extern "C" {
         if (f_path_is_absolute(data_make->cache_arguments.array[data_make->cache_arguments.used - 2]) == F_true) {
           fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[data_make->cache_arguments.used - 2]);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_arguments.array[data_make->cache_arguments.used - 2]);
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_arguments.array[data_make->cache_arguments.used - 2]);
 
             status = F_status_set_error(F_failure);
           }
 
-          if ((flag & 0x2) && F_status_is_error_not(data_make->setting->state.status)) {
+          if ((flag & 0x2) && F_status_is_error_not(data_make->main->setting.state.status)) {
             if (f_file_exists(data_make->cache_arguments.array[data_make->cache_arguments.used - 2], F_false) != F_true) {
-              fake_print_error_operation_link_target_exists_not(data_make->setting, data_make->error, data_make->cache_arguments.array[data_make->cache_arguments.used - 2]);
+              fake_print_error_operation_link_target_exists_not(&data_make->error, data_make->cache_arguments.array[data_make->cache_arguments.used - 2]);
 
               status = F_status_set_error(F_failure);
             }
@@ -992,33 +992,33 @@ extern "C" {
 
           data_make->cache_path.used = 0;
 
-          data_make->setting->state.status = f_file_name_directory(full, &data_make->cache_path);
+          data_make->main->setting.state.status = f_file_name_directory(full, &data_make->cache_path);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_name_directory), full, f_file_operation_analyze_s, fll_error_file_type_path_e);
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_name_directory), full, f_file_operation_analyze_s, fll_error_file_type_path_e);
 
             status = F_status_set_error(F_failure);
           }
 
-          if (F_status_is_error_not(data_make->setting->state.status)) {
-            data_make->setting->state.status = f_string_dynamic_append_assure(f_path_separator_s, &data_make->cache_path);
+          if (F_status_is_error_not(data_make->main->setting.state.status)) {
+            data_make->main->setting.state.status = f_string_dynamic_append_assure(f_path_separator_s, &data_make->cache_path);
 
-            if (F_status_is_error(data_make->setting->state.status)) {
-              fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append_assure));
+            if (F_status_is_error(data_make->main->setting.state.status)) {
+              fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append_assure));
 
               status = F_status_set_error(F_failure);
             }
             else {
-              data_make->setting->state.status = f_string_dynamic_append(data_make->cache_arguments.array[data_make->cache_arguments.used - 2], &data_make->cache_path);
+              data_make->main->setting.state.status = f_string_dynamic_append(data_make->cache_arguments.array[data_make->cache_arguments.used - 2], &data_make->cache_path);
 
-              if (F_status_is_error(data_make->setting->state.status)) {
-                fake_print_error(&data_make->program->error, macro_fake_f(f_string_dynamic_append));
+              if (F_status_is_error(data_make->main->setting.state.status)) {
+                fake_print_error(&data_make->main->program.error, macro_fake_f(f_string_dynamic_append));
 
                 status = F_status_set_error(F_failure);
               }
             }
 
-            if (F_status_is_error_not(data_make->setting->state.status)) {
+            if (F_status_is_error_not(data_make->main->setting.state.status)) {
 
               // The cache_path is used by fake_make_assure_inside_project(), so copy the contents into another buffer.
               f_char_t target_string[data_make->cache_path.used + 1];
@@ -1029,15 +1029,15 @@ extern "C" {
 
               fake_make_assure_inside_project(data_make, target);
 
-              if (F_status_is_error(data_make->setting->state.status)) {
-                fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), target);
+              if (F_status_is_error(data_make->main->setting.state.status)) {
+                fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), target);
 
                 status = F_status_set_error(F_failure);
               }
 
-              if ((flag & 0x2) && F_status_is_error_not(data_make->setting->state.status)) {
+              if ((flag & 0x2) && F_status_is_error_not(data_make->main->setting.state.status)) {
                 if (f_file_exists(target, F_false) != F_true) {
-                  fake_print_error_operation_link_target_exists_not(data_make->setting, data_make->error, target);
+                  fake_print_error_operation_link_target_exists_not(&data_make->error, target);
 
                   status = F_status_set_error(F_failure);
                 }
@@ -1046,18 +1046,18 @@ extern "C" {
           }
         }
         else {
-          fake_make_print_error_target_file_name_empty(data_make->setting, data_make->program->error);
+          fake_make_print_error_target_file_name_empty(&data_make->main->program.error);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
         }
       }
 
-      data_make->setting->state.status = status;
+      data_make->main->setting.state.status = status;
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_link_
@@ -1065,7 +1065,7 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_move_
   void fake_make_operate_validate_type_move(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used > 1) {
       {
@@ -1075,8 +1075,8 @@ extern "C" {
 
           fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[i]);
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
 
             status = F_status_set_error(F_failure);
           }
@@ -1086,35 +1086,35 @@ extern "C" {
           for (f_array_length_t i = 0; i < data_make->cache_arguments.used - 1; ++i) {
 
             if (f_file_exists(data_make->cache_arguments.array[i], F_true) != F_true) {
-              fake_print_error_file_simple(data_make->setting, data_make->program->error, macro_fake_f(f_file_is), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
+              fake_print_error_file_simple(&data_make->main->program.error, macro_fake_f(f_file_is), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
 
               status = F_status_set_error(F_failure);
             }
           } // for
         }
 
-        data_make->setting->state.status = status;
+        data_make->main->setting.state.status = status;
 
-        if (F_status_is_error(data_make->setting->state.status)) return;
+        if (F_status_is_error(data_make->main->setting.state.status)) return;
       }
 
       if (data_make->cache_arguments.used > 2) {
 
         // The last file must be a directory.
-        data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
+        data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
 
-        if (data_make->setting->state.status == F_false || data_make->setting->state.status == F_file_found_not) {
-          fake_make_print_error_content_not_directory(data_make->setting, data_make->program->error, "last", data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
+        if (data_make->main->setting.state.status == F_false || data_make->main->setting.state.status == F_file_found_not) {
+          fake_make_print_error_content_not_directory(&data_make->main->program.error, "last", data_make->cache_arguments.array[data_make->cache_arguments.used - 1]);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_identify_s, fll_error_file_type_directory_e);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_directory_is), data_make->cache_arguments.array[data_make->cache_arguments.used - 1], f_file_operation_identify_s, fll_error_file_type_directory_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
@@ -1122,27 +1122,27 @@ extern "C" {
       else {
 
         // When the first file is a directory, then the second, if it exists, must also be a directory.
-        data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[0]);
+        data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[0]);
 
-        if (data_make->setting->state.status == F_true) {
-          data_make->setting->state.status = f_directory_is(data_make->cache_arguments.array[1]);
+        if (data_make->main->setting.state.status == F_true) {
+          data_make->main->setting.state.status = f_directory_is(data_make->cache_arguments.array[1]);
 
-          if (data_make->setting->state.status == F_false) {
-            fake_make_print_error_content_not_directory(data_make->setting, data_make->program->error, "second", data_make->cache_arguments.array[1]);
+          if (data_make->main->setting.state.status == F_false) {
+            fake_make_print_error_content_not_directory(&data_make->main->program.error, "second", data_make->cache_arguments.array[1]);
 
-            data_make->setting->state.status = F_status_set_error(F_failure);
+            data_make->main->setting.state.status = F_status_set_error(F_failure);
 
             return;
           }
         }
       }
 
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_move_
@@ -1150,12 +1150,12 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_operate_
   void fake_make_operate_validate_type_operate(fake_make_data_t * const data_make, f_array_lengths_t * const section_stack) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !section_stack) return;
+    if (!data_make || !data_make->main || !section_stack) return;
 
     if (data_make->cache_arguments.used > 1) {
-      fake_print_error_too_many_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_too_many_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
@@ -1171,9 +1171,9 @@ extern "C" {
       } // for
 
       if (id_section == data_make->fakefile.used) {
-        fake_make_print_error_operation_section_not_found(data_make->setting, data_make->program->error, data_make->cache_arguments.array[0]);
+        fake_make_print_error_operation_section_not_found(&data_make->main->program.error, data_make->cache_arguments.array[0]);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
@@ -1181,20 +1181,20 @@ extern "C" {
       for (f_array_length_t i = 0; i < section_stack->used; ++i) {
 
         if (section_stack->array[i] == id_section) {
-          fake_make_print_error_operation_recursion(data_make->setting, data_make->program->error, data_make->buffer, data_make->fakefile.array[id_section].name);
+          fake_make_print_error_operation_recursion(&data_make->main->program.error, data_make->buffer, data_make->fakefile.array[id_section].name);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
       } // for
 
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_operate_
@@ -1202,7 +1202,7 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_parameter_
   void fake_make_operate_validate_type_parameter(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used) {
       const f_string_static_t reserved_name[] = {
@@ -1246,18 +1246,18 @@ extern "C" {
       for (f_array_length_t i = 0; i < 33; ++i) {
 
         if (fl_string_dynamic_compare(reserved_name[i], data_make->cache_arguments.array[0]) == F_equal_to) {
-          fake_make_print_error_reserved_parameter_name(data_make->setting, data_make->program->error, reserved_name[i]);
+          fake_make_print_error_reserved_parameter_name(&data_make->main->program.error, reserved_name[i]);
 
           status = F_status_set_error(F_failure);
         }
       } // for
 
-      data_make->setting->state.status = status;
+      data_make->main->setting.state.status = status;
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_parameter_
@@ -1265,7 +1265,7 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_permission_
   void fake_make_operate_validate_type_permission(fake_make_data_t * const data_make, fake_state_process_t * const state_process) {
 
-    if (!data_make || !data_make->program || !data_make->setting || !state_process) return;
+    if (!data_make || !data_make->main || !state_process) return;
 
     if (data_make->cache_arguments.used) {
       f_array_length_t i = 1;
@@ -1281,30 +1281,30 @@ extern "C" {
 
         for (; i < data_make->cache_arguments.used; ++i) {
 
-          data_make->setting->state.status = f_file_is(data_make->cache_arguments.array[i], F_file_type_regular_d, F_false);
+          data_make->main->setting.state.status = f_file_is(data_make->cache_arguments.array[i], F_file_type_regular_d, F_false);
 
-          if (data_make->setting->state.status == F_file_found_not) {
-            fake_print_error_file_simple(data_make->setting, data_make->program->error, macro_fake_f(f_file_is), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
+          if (data_make->main->setting.state.status == F_file_found_not) {
+            fake_print_error_file_simple(&data_make->main->program.error, macro_fake_f(f_file_is), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_file_e);
 
             status = F_status_set_error(F_failure);
           }
 
-          if (F_status_is_error(data_make->setting->state.status)) {
-            if (data_make->error.verbosity != f_console_verbosity_quiet_e && data_make->program->error.to.stream) {
-              fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_is), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_directory_e);
+          if (F_status_is_error(data_make->main->setting.state.status)) {
+            if (data_make->error.verbosity != f_console_verbosity_quiet_e && data_make->main->program.error.to.stream) {
+              fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_is), data_make->cache_arguments.array[i], f_file_operation_find_s, fll_error_file_type_directory_e);
             }
 
             status = F_status_set_error(F_failure);
           }
         } // for
 
-        data_make->setting->state.status = status;
+        data_make->main->setting.state.status = status;
       }
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_permission_
@@ -1312,23 +1312,23 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_pop_
   void fake_make_operate_validate_type_pop(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used) {
-      fake_print_error_too_many_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_too_many_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
 
     if (data_make->path.stack.used == 1) {
-      fake_make_print_error_pop_last_path(data_make->setting, data_make->program->error);
+      fake_make_print_error_pop_last_path(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
     else {
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_make_operate_validate_type_pop_
@@ -1336,15 +1336,15 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_run_
   void fake_make_operate_validate_type_run(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (!data_make->cache_arguments.used) {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
     else {
-      data_make->setting->state.status = F_none;
+      data_make->main->setting.state.status = F_none;
     }
   }
 #endif // _di_fake_make_operate_validate_type_run_
@@ -1352,57 +1352,57 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_to_
   void fake_make_operate_validate_type_to(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used > 1) {
-      fake_print_error_too_many_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_too_many_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
 
       return;
     }
 
     if (data_make->cache_arguments.used) {
       if (data_make->cache_arguments.array[0].used) {
-        data_make->setting->state.status = f_file_is(data_make->cache_arguments.array[0], F_file_type_directory_d, F_false);
+        data_make->main->setting.state.status = f_file_is(data_make->cache_arguments.array[0], F_file_type_directory_d, F_false);
 
-        if (data_make->setting->state.status == F_file_found_not) {
-          fake_print_error_file_simple(data_make->setting, data_make->program->error, macro_fake_f(f_file_is), data_make->cache_arguments.array[0], f_file_operation_find_s, fll_error_file_type_file_e);
+        if (data_make->main->setting.state.status == F_file_found_not) {
+          fake_print_error_file_simple(&data_make->main->program.error, macro_fake_f(f_file_is), data_make->cache_arguments.array[0], f_file_operation_find_s, fll_error_file_type_file_e);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          if (data_make->error.verbosity != f_console_verbosity_quiet_e && data_make->program->error.to.stream) {
-            fake_print_error_file(data_make->setting, data_make->program->error, macro_fake_f(f_file_is), data_make->data->file_data_build_fakefile, f_file_operation_find_s, fll_error_file_type_file_e);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          if (data_make->error.verbosity != f_console_verbosity_quiet_e && data_make->main->program.error.to.stream) {
+            fake_print_error_file(&data_make->main->program.error, macro_fake_f(f_file_is), data_make->data->file_data_build_fakefile, f_file_operation_find_s, fll_error_file_type_file_e);
           }
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
 
           return;
         }
 
-        if (data_make->setting->state.status) {
-          data_make->setting->state.status = F_none;
+        if (data_make->main->setting.state.status) {
+          data_make->main->setting.state.status = F_none;
         }
         else {
-          fake_make_print_error_content_not_directory(data_make->setting, data_make->program->error, 0, data_make->cache_arguments.array[0]);
+          fake_make_print_error_content_not_directory(&data_make->main->program.error, 0, data_make->cache_arguments.array[0]);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
         }
       }
       else {
-        fake_make_print_error_file_name_empty(data_make->setting, data_make->program->error);
+        fake_make_print_error_file_name_empty(&data_make->main->program.error);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
       }
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_to_
@@ -1410,14 +1410,14 @@ extern "C" {
 #ifndef _di_fake_make_operate_validate_type_touch_
   void fake_make_operate_validate_type_touch(fake_make_data_t * const data_make) {
 
-    if (!data_make || !data_make->program || !data_make->setting) return;
+    if (!data_make || !data_make->main) return;
 
     if (data_make->cache_arguments.used > 1) {
       if (fl_string_dynamic_compare(fake_make_operation_argument_file_s, data_make->cache_arguments.array[0]) == F_equal_to_not) {
         if (fl_string_dynamic_compare(fake_make_operation_argument_directory_s, data_make->cache_arguments.array[0]) == F_equal_to_not) {
-          fake_make_print_error_unsupported_type(data_make->setting, data_make->program->error, f_file_type_name_file_s, data_make->cache_arguments.array[0]);
+          fake_make_print_error_unsupported_type(&data_make->main->program.error, f_file_type_name_file_s, data_make->cache_arguments.array[0]);
 
-          data_make->setting->state.status = F_status_set_error(F_failure);
+          data_make->main->setting.state.status = F_status_set_error(F_failure);
         }
       }
 
@@ -1427,19 +1427,19 @@ extern "C" {
 
         fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[i]);
 
-        if (F_status_is_error(data_make->setting->state.status)) {
-          fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
+        if (F_status_is_error(data_make->main->setting.state.status)) {
+          fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[i]);
 
           status = F_status_set_error(F_failure);
         }
       } // for
 
-      data_make->setting->state.status = status;
+      data_make->main->setting.state.status = status;
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_touch_
@@ -1449,28 +1449,28 @@ extern "C" {
 
     if (data_make->cache_arguments.used) {
       if (!data_make->cache_arguments.array[0].used) {
-        fake_print_error_argument_empty(data_make->setting, data_make->error, 1);
+        fake_print_error_argument_empty(&data_make->error, 1);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
 
         return;
       }
 
       fake_make_assure_inside_project(data_make, data_make->cache_arguments.array[0]);
 
-      if (F_status_is_error(data_make->setting->state.status)) {
-        fake_print_error_operation_path_outside(data_make->setting, data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[0]);
+      if (F_status_is_error(data_make->main->setting.state.status)) {
+        fake_print_error_operation_path_outside(&data_make->error, macro_fake_f(fake_make_assure_inside_project), data_make->cache_path.used ? data_make->cache_path : data_make->cache_arguments.array[0]);
 
-        data_make->setting->state.status = F_status_set_error(F_failure);
+        data_make->main->setting.state.status = F_status_set_error(F_failure);
       }
       else {
-        data_make->setting->state.status = F_none;
+        data_make->main->setting.state.status = F_none;
       }
     }
     else {
-      fake_print_error_requires_more_arguments(data_make->setting, data_make->program->error);
+      fake_print_error_requires_more_arguments(&data_make->main->program.error);
 
-      data_make->setting->state.status = F_status_set_error(F_failure);
+      data_make->main->setting.state.status = F_status_set_error(F_failure);
     }
   }
 #endif // _di_fake_make_operate_validate_type_write_
index f4436da983f4530f6db662996e8928307dc0ef67..ff4948dcdccb68dc2dfecb66f8713d9704361905 100644 (file)
@@ -22,7 +22,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -37,7 +37,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -52,7 +52,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -67,7 +67,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -86,7 +86,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -104,7 +104,7 @@ extern "C" {
  *   The operation and if-condition operation states.
  *   This condition will be updated by this as appropriate.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -125,7 +125,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -145,7 +145,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -162,7 +162,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -182,7 +182,7 @@ extern "C" {
  *   The operation and if-condition operation states.
  *   This condition will be updated by this as appropriate.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -197,7 +197,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -212,7 +212,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -227,7 +227,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -242,7 +242,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -257,7 +257,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -280,7 +280,7 @@ extern "C" {
  * @param section_stack
  *   The current operation stack.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -295,7 +295,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -313,7 +313,7 @@ extern "C" {
  *   The operation and if-condition operation states.
  *   This condition will be updated by this as appropriate.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -330,7 +330,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -345,7 +345,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -360,7 +360,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -377,7 +377,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
@@ -394,7 +394,7 @@ extern "C" {
  * @param data_make
  *   All make related setting data, including data from the fakefile and the build settings file.
  *
- *   This alters data_make.setting.state:
+ *   This alters data_make.main->setting.state:
  *     F_none on success.
  *
  *     F_failure (with error bit) on any error.
diff --git a/level_3/fake/c/main/make/print.c b/level_3/fake/c/main/make/print.c
deleted file mode 100644 (file)
index 11ae808..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#include "../fake.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fake_make_print_now_making_
-  f_status_t fake_make_print_now_making(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile) {
-
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
-
-    f_file_stream_lock(print.to);
-
-    fl_print_format("%[Now making using '%]", print.to, print.set->important, print.set->important);
-    fl_print_format("%[%Q%]", print.to, print.set->notable, fakefile, print.set->notable);
-
-    if (setting->modes.used) {
-      fl_print_format("%[' with modes '%]", print.to, print.set->important, print.set->important);
-
-      for (f_array_length_t i = 0; i < setting->modes.used; ) {
-
-        fl_print_format("%[%Q%]", print.to, print.set->notable, setting->modes.array[i], print.set->notable);
-
-        if (++i < setting->modes.used) {
-          fl_print_format("%[', '%]", print.to, print.set->important, print.set->important);
-        }
-      } // for
-    }
-
-    fl_print_format("%['.%]%r", print.to, print.set->important, print.set->important, f_string_eol_s);
-
-    f_file_stream_unlock(print.to);
-
-    return F_none;
-  }
-#endif // _di_fake_make_print_now_making_
-
-#ifndef _di_fake_make_print_processing_section_
-  f_status_t fake_make_print_processing_section(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_fss_named_t section) {
-
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
-
-    f_file_stream_lock(print.to);
-
-    fl_print_format("%r%[Processing Section '%]", print.to, f_string_eol_s, print.set->important, print.set->important);
-    fl_print_format("%[%/Q%]", print.to, print.set->notable, buffer, section.name, print.set->notable);
-    fl_print_format("%['.%]%r", print.to, print.set->important, print.set->important, f_string_eol_s);
-
-    f_file_stream_unlock(print.to);
-
-    return F_none;
-  }
-#endif // _di_fake_make_print_processing_section_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
diff --git a/level_3/fake/c/main/make/print/common.c b/level_3/fake/c/main/make/print/common.c
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/level_3/fake/c/main/make/print/common.h b/level_3/fake/c/main/make/print/common.h
new file mode 100644 (file)
index 0000000..e69de29
index 8e0a087e526275d2db2dc5cf2f7857fd96212e5b..c51be3a5d23fe5bcfdc34df7e63787f2567e41a0 100644 (file)
@@ -5,346 +5,346 @@ extern "C" {
 #endif
 
 #ifndef _di_fake_make_print_error_argument_invalid_section_
-  f_status_t fake_make_print_error_argument_invalid_section(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name) {
+  f_status_t fake_make_print_error_argument_invalid_section(fl_print_t * const print, const f_string_static_t name) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The argument ", name, " is not a valid section name");
+    fake_print_context_wrapped_variable(print, "The argument ", name, " is not a valid section name");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_argument_invalid_section_
 
 #ifndef _di_fake_make_print_error_compiler_not_specified_
-  f_status_t fake_make_print_error_compiler_not_specified(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t action) {
+  f_status_t fake_make_print_error_compiler_not_specified(fl_print_t * const print, const f_string_static_t action) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "No compiler has been specified, cannot perform ", action, " section operation");
+    fake_print_context_wrapped_variable(print, "No compiler has been specified, cannot perform ", action, " section operation");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_compiler_not_specified_
 
 #ifndef _di_fake_make_print_error_content_not_directory_
-  f_status_t fake_make_print_error_content_not_directory(fake_setting_t * const setting, const fl_print_t print, const f_string_t content, const f_string_static_t file) {
+  f_status_t fake_make_print_error_content_not_directory(fl_print_t * const print, const f_string_t content, const f_string_static_t file) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe %S%rcontent '%]", print.to, print.context, print.prefix, content, content ? f_string_space_s : f_string_empty_s, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, file, print.notable);
-    fl_print_format("%[' must be a valid directory.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe %S%rcontent '%]", print->to, print->context, print->prefix, content, content ? f_string_space_s : f_string_empty_s, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, file, print->notable);
+    fl_print_format("%[' must be a valid directory.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_content_not_directory_
 
 #ifndef _di_fake_make_print_error_define_name_empty_
-  f_status_t fake_make_print_error_define_name_empty(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_make_print_error_define_name_empty(fl_print_t * const print) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_simple(setting, print, "Define name must not be an empty string");
+    fake_print_context_simple(print, "Define name must not be an empty string");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_define_name_empty_
 
 #ifndef _di_fake_make_print_error_define_invalid_character_
-  f_status_t fake_make_print_error_define_invalid_character(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name) {
+  f_status_t fake_make_print_error_define_invalid_character(fl_print_t * const print, const f_string_static_t name) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "Invalid characters in the define name ", name, ", only alpha-numeric ASCII characters and underscore (without a leading digit) are allowed");
+    fake_print_context_wrapped_variable(print, "Invalid characters in the define name ", name, ", only alpha-numeric ASCII characters and underscore (without a leading digit) are allowed");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_define_invalid_character_
 
 #ifndef _di_fake_make_print_error_fakefile_section_missing_
-  f_status_t fake_make_print_error_fakefile_section_missing(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_static_t section) {
+  f_status_t fake_make_print_error_fakefile_section_missing(fl_print_t * const print, const f_string_static_t fakefile, const f_string_static_t section) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe fakefile '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, fakefile, print.notable);
-    fl_print_format("%[' is missing the required '%]", print.to, print.context, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, section, print.notable);
-    fl_print_format("%[' section.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe fakefile '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, fakefile, print->notable);
+    fl_print_format("%[' is missing the required '%]", print->to, print->context, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, section, print->notable);
+    fl_print_format("%[' section.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_fakefile_section_missing_
 
 #ifndef _di_fake_make_print_error_file_name_empty_
-  f_status_t fake_make_print_error_file_name_empty(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_make_print_error_file_name_empty(fl_print_t * const print) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_simple(setting, print, "File name argument must not be an empty string");
+    fake_print_context_simple(print, "File name argument must not be an empty string");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_file_name_empty_
 
 #ifndef _di_fake_make_print_error_file_type_
-  f_status_t fake_make_print_error_file_type(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t type, const f_string_static_t file) {
+  f_status_t fake_make_print_error_file_type(fl_print_t * const print, const f_string_static_t type, const f_string_static_t file) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe file '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, file, print.notable);
-    fl_print_format("%[' must be a %Q file.%]%r", print.to, print.context, print.context, type, f_string_eol_s);
+    fl_print_format("%[%QThe file '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, file, print->notable);
+    fl_print_format("%[' must be a %Q file.%]%r", print->to, print->context, print->context, type, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_file_type_
 
 #ifndef _di_fake_make_print_error_indexer_not_specified_
-  f_status_t fake_make_print_error_indexer_not_specified(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t action) {
+  f_status_t fake_make_print_error_indexer_not_specified(fl_print_t * const print, const f_string_static_t action) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "No indexer has been specified, cannot perform ", action, " section operation");
+    fake_print_context_wrapped_variable(print, "No indexer has been specified, cannot perform ", action, " section operation");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_indexer_not_specified_
 
 #ifndef _di_fake_make_print_error_after_condition_
-  f_status_t fake_make_print_error_after_condition(fake_setting_t * const setting, const fl_print_t print, const f_string_t message) {
+  f_status_t fake_make_print_error_after_condition(fl_print_t * const print, const f_string_t message) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%Q%S '%]", print.to, print.context, print.prefix, message, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_make_operation_if_s, print.notable);
-    fl_print_format("%[', '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_make_operation_and_s, print.notable);
-    fl_print_format("%[', or '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_make_operation_or_s, print.notable);
-    fl_print_format("%[' section operation.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%Q%S '%]", print->to, print->context, print->prefix, message, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_make_operation_if_s, print->notable);
+    fl_print_format("%[', '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_make_operation_and_s, print->notable);
+    fl_print_format("%[', or '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_make_operation_or_s, print->notable);
+    fl_print_format("%[' section operation.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_after_condition_
 
 #ifndef _di_fake_make_print_error_after_condition_may_only_
-  f_status_t fake_make_print_error_after_condition_may_only(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_make_print_error_after_condition_may_only(fl_print_t * const print) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_make_print_error_after_condition(setting, print, "May only be used immediately after");
+    fake_make_print_error_after_condition(print, "May only be used immediately after");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_after_condition_may_only_
 
 #ifndef _di_fake_make_print_error_after_condition_must_not_
-  f_status_t fake_make_print_error_after_condition_must_not(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_make_print_error_after_condition_must_not(fl_print_t * const print) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_make_print_error_after_condition(setting, print, "Must not be used immediately after");
+    fake_make_print_error_after_condition(print, "Must not be used immediately after");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_after_condition_must_not_
 
 #ifndef _di_fake_make_print_error_after_condition_no_preceding_
-  f_status_t fake_make_print_error_after_condition_no_preceding(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_make_print_error_after_condition_no_preceding(fl_print_t * const print) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_make_print_error_after_condition(setting, print, "Has no preceding");
+    fake_make_print_error_after_condition(print, "Has no preceding");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_after_condition_no_preceding_
 
 #ifndef _di_fake_make_print_error_operation_incomplete_
-  f_status_t fake_make_print_error_operation_incomplete(fake_setting_t * const setting, const fl_print_t print, const uint8_t operation) {
+  f_status_t fake_make_print_error_operation_incomplete(fl_print_t * const print, const uint8_t operation) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QIncomplete '%]", print.to, print.context, print.prefix, print.context);
+    fl_print_format("%[%QIncomplete '%]", print->to, print->context, print->prefix, print->context);
 
     if (operation == fake_make_operation_type_and_e) {
-      fl_print_format("%[%r%]", print.to, print.notable, fake_make_operation_and_s, print.notable);
+      fl_print_format("%[%r%]", print->to, print->notable, fake_make_operation_and_s, print->notable);
     }
     else if (operation == fake_make_operation_type_else_e) {
-      fl_print_format("%[%r%]", print.to, print.notable, fake_make_operation_else_s, print.notable);
+      fl_print_format("%[%r%]", print->to, print->notable, fake_make_operation_else_s, print->notable);
     }
     else if (operation == fake_make_operation_type_if_e) {
-      fl_print_format("%[%r%]", print.to, print.notable, fake_make_operation_if_s, print.notable);
+      fl_print_format("%[%r%]", print->to, print->notable, fake_make_operation_if_s, print->notable);
     }
     else {
-      fl_print_format("%[%r%]", print.to, print.notable, fake_make_operation_or_s, print.notable);
+      fl_print_format("%[%r%]", print->to, print->notable, fake_make_operation_or_s, print->notable);
     }
 
-    fl_print_format("%[' at end of the section.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[' at end of the section.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_operation_incomplete_
 
 #ifndef _di_fake_make_print_error_operation_recursion_
-  f_status_t fake_make_print_error_operation_recursion(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_string_range_t range) {
+  f_status_t fake_make_print_error_operation_recursion(fl_print_t * const print, const f_string_static_t buffer, const f_string_range_t range) {
 
-    if (!setting || print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe section operation '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%/Q%]", print.to, print.notable, buffer, range, print.notable);
-    fl_print_format("%[' is already in the operation stack, recursion is not allowed.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe section operation '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%/Q%]", print->to, print->notable, buffer, range, print->notable);
+    fl_print_format("%[' is already in the operation stack, recursion is not allowed.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_operation_recursion_
 
 #ifndef _di_fake_make_print_error_operation_section_not_found_
-  f_status_t fake_make_print_error_operation_section_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name) {
+  f_status_t fake_make_print_error_operation_section_not_found(fl_print_t * const print, const f_string_static_t name) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "No operation section named ", name, " is found");
+    fake_print_context_wrapped_variable(print, "No operation section named ", name, " is found");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_operation_section_not_found_
 
 #ifndef _di_fake_make_print_error_out_of_range_number_
-  f_status_t fake_make_print_error_out_of_range_number(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t number, const f_number_unsigned_t minimum, const f_number_unsigned_t maximum) {
+  f_status_t fake_make_print_error_out_of_range_number(fl_print_t * const print, const f_string_static_t number, const f_number_unsigned_t minimum, const f_number_unsigned_t maximum) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe number '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, number, print.notable);
-    fl_print_format("%[' may only be between the ranges -%un to %un.%]%r", print.to, print.context, minimum, maximum, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe number '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, number, print->notable);
+    fl_print_format("%[' may only be between the ranges -%un to %un.%]%r", print->to, print->context, minimum, maximum, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_out_of_range_number_
 
 #ifndef _di_fake_make_print_error_pop_last_path_
-  f_status_t fake_make_print_error_pop_last_path(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_make_print_error_pop_last_path(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_simple(setting, print, "Must not attempt to pop project root off of path stack");
+    fake_print_context_simple(print, "Must not attempt to pop project root off of path stack");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_pop_last_path_
 
 #ifndef _di_fake_make_print_error_program_failed_
-  f_status_t fake_make_print_error_program_failed(fake_setting_t * const setting, const fl_print_t print, const int return_code) {
+  f_status_t fake_make_print_error_program_failed(fl_print_t * const print, const int return_code) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QFailed with return code %]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%i%]", print.to, print.notable, return_code, print.notable);
-    fl_print_format("%[.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QFailed with return code %]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%i%]", print->to, print->notable, return_code, print->notable);
+    fl_print_format("%[.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_program_failed_
 
 #ifndef _di_fake_make_print_error_program_not_found_
-  f_status_t fake_make_print_error_program_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t program) {
+  f_status_t fake_make_print_error_program_not_found(fl_print_t * const print, const f_string_static_t program) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "Failed to find program ", program, " for executing");
+    fake_print_context_wrapped_variable(print, "Failed to find program ", program, " for executing");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_program_not_found_
 
 #ifndef _di_fake_make_print_error_reserved_parameter_name_
-  f_status_t fake_make_print_error_reserved_parameter_name(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name) {
+  f_status_t fake_make_print_error_reserved_parameter_name(fl_print_t * const print, const f_string_static_t name) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "Cannot assign a value to the parameter name ", name, " because it is a reserved parameter name");
+    fake_print_context_wrapped_variable(print, "Cannot assign a value to the parameter name ", name, " because it is a reserved parameter name");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_reserved_parameter_name_
 
 #ifndef _di_fake_make_print_error_target_file_name_empty_
-  f_status_t fake_make_print_error_target_file_name_empty(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_make_print_error_target_file_name_empty(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_simple(setting, print, "Target file name argument must not be an empty string");
+    fake_print_context_simple(print, "Target file name argument must not be an empty string");
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_target_file_name_empty_
 
 #ifndef _di_fake_make_print_error_unsupported_number_
-  f_status_t fake_make_print_error_unsupported_number(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t number) {
+  f_status_t fake_make_print_error_unsupported_number(fl_print_t * const print, const f_string_static_t number) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "Invalid or unsupported number provided ", number, 0);
+    fake_print_context_wrapped_variable(print, "Invalid or unsupported number provided ", number, 0);
 
     return F_none;
   }
 #endif // _di_fake_make_print_error_unsupported_number_
 
 #ifndef _di_fake_make_print_error_unsupported_type_
-  f_status_t fake_make_print_error_unsupported_type(fake_setting_t * const setting, const fl_print_t print, f_string_static_t type, const f_string_static_t value) {
+  f_status_t fake_make_print_error_unsupported_type(fl_print_t * const print, f_string_static_t type, const f_string_static_t value) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QUnsupported %Q type '%]", print.to, print.context, print.prefix, type, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, value, print.notable);
-    fl_print_format("%['.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QUnsupported %Q type '%]", print->to, print->context, print->prefix, type, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, value, print->notable);
+    fl_print_format("%['.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
index 9788f6459c016412a2c37b0061e1e9c2e5f17110..09bc8f2e4aebb664f58d6bc4354ec1db9d7e7973 100644 (file)
@@ -21,13 +21,12 @@ extern "C" {
  *
  * These only allow valid characters in an environment variable name.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name
  *   The invalid section name.
  *
@@ -38,19 +37,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_argument_invalid_section_
-  extern f_status_t fake_make_print_error_argument_invalid_section(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name);
+  extern f_status_t fake_make_print_error_argument_invalid_section(fl_print_t * const print, const f_string_static_t name);
 #endif // _di_fake_make_print_error_argument_invalid_section_
 
 /**
  * Print error about a compiler not being specified.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param action
  *   The action that cannot be performed due to a lack of a compiler.
  *
@@ -61,7 +59,7 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_compiler_not_specified_
-  extern f_status_t fake_make_print_error_compiler_not_specified(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t action);
+  extern f_status_t fake_make_print_error_compiler_not_specified(fl_print_t * const print, const f_string_static_t action);
 #endif // _di_fake_make_print_error_compiler_not_specified_
 
 /**
@@ -69,13 +67,12 @@ extern "C" {
  *
  * These only allow valid characters in an environment variable name.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name
  *   The name of the variable containing one or more invalid characters.
  *
@@ -86,19 +83,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_define_invalid_character_
-  extern f_status_t fake_make_print_error_define_invalid_character(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name);
+  extern f_status_t fake_make_print_error_define_invalid_character(fl_print_t * const print, const f_string_static_t name);
 #endif // _di_fake_make_print_error_define_invalid_character_
 
 /**
  * Print error about a given fakefile missing a section.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param fakefile
  *   The name or path of the file that is empty.
  * @param section
@@ -111,20 +107,19 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_fakefile_section_missing_
-  extern f_status_t fake_make_print_error_fakefile_section_missing(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_static_t section);
+  extern f_status_t fake_make_print_error_fakefile_section_missing(fl_print_t * const print, const f_string_static_t fakefile, const f_string_static_t section);
 #endif // _di_fake_make_print_error_fakefile_section_missing_
 
 /**
  * Print error about a file name being an empty string.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
  *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ *
  * @return
  *   F_none on success.
  *   F_output_not on success, but no printing is performed.
@@ -132,19 +127,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_file_name_empty_
-  extern f_status_t fake_make_print_error_file_name_empty(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_make_print_error_file_name_empty(fl_print_t * const print);
 #endif // _di_fake_make_print_error_file_name_empty_
 
 /**
  * Print error about the second file not being of a directory.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param content
  *   A string representing which content.
  * @param file
@@ -157,20 +151,19 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_content_not_directory_
-  extern f_status_t fake_make_print_error_content_not_directory(fake_setting_t * const setting, const fl_print_t print, const f_string_t content, const f_string_static_t file);
+  extern f_status_t fake_make_print_error_content_not_directory(fl_print_t * const print, const f_string_t content, const f_string_static_t file);
 #endif // _di_fake_make_print_error_content_not_directory_
 
 /**
  * Print error about a define name being an empty string.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
  *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ *
  * @return
  *   F_none on success.
  *   F_output_not on success, but no printing is performed.
@@ -178,19 +171,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_define_name_empty_
-  extern f_status_t fake_make_print_error_define_name_empty(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_make_print_error_define_name_empty(fl_print_t * const print);
 #endif // _di_fake_make_print_error_define_name_empty_
 
 /**
  * Print error about a file not being of a specific type.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param type
  *   The expected type of the file.
  * @param file
@@ -203,19 +195,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_file_type_
-  extern f_status_t fake_make_print_error_file_type(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t type, const f_string_static_t file);
+  extern f_status_t fake_make_print_error_file_type(fl_print_t * const print, const f_string_static_t type, const f_string_static_t file);
 #endif // _di_fake_make_print_error_file_type_
 
 /**
  * Print error about a indexer not being specified.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param action
  *   The action that cannot be performed due to a lack of a compiler.
  *
@@ -226,19 +217,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_indexer_not_specified_
-  extern f_status_t fake_make_print_error_indexer_not_specified(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t action);
+  extern f_status_t fake_make_print_error_indexer_not_specified(fl_print_t * const print, const f_string_static_t action);
 #endif // _di_fake_make_print_error_indexer_not_specified_
 
 /**
  * Print error about how using something after a condition statement.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param message
  *   The message describing how in relation to the after condition.
  *
@@ -249,20 +239,19 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_after_condition_
-  extern f_status_t fake_make_print_error_after_condition(fake_setting_t * const setting, const fl_print_t print, const f_string_t message);
+  extern f_status_t fake_make_print_error_after_condition(fl_print_t * const print, const f_string_t message);
 #endif // _di_fake_make_print_error_after_condition_
 
 /**
  * Print error about how using something after a condition statement, for the "may only" case.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
  *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ *
  * @return
  *   F_none on success.
  *   F_output_not on success, but no printing is performed.
@@ -270,20 +259,19 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_after_condition_may_only_
-  extern f_status_t fake_make_print_error_after_condition_may_only(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_make_print_error_after_condition_may_only(fl_print_t * const print);
 #endif // _di_fake_make_print_error_after_condition_may_only_
 
 /**
  * Print error about how using something after a condition statement, for the "must not" case.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
  *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ *
  * @return
  *   F_none on success.
  *   F_output_not on success, but no printing is performed.
@@ -291,20 +279,19 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_after_condition_must_not_
-  extern f_status_t fake_make_print_error_after_condition_must_not(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_make_print_error_after_condition_must_not(fl_print_t * const print);
 #endif // _di_fake_make_print_error_after_condition_must_not_
 
 /**
  * Print error about how using something after a condition statement, for the "no preceding" case.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
  *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ *
  * @return
  *   F_none on success.
  *   F_output_not on success, but no printing is performed.
@@ -312,19 +299,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_after_condition_no_preceding_
-  extern f_status_t fake_make_print_error_after_condition_no_preceding(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_make_print_error_after_condition_no_preceding(fl_print_t * const print);
 #endif // _di_fake_make_print_error_after_condition_no_preceding_
 
 /**
  * Print error about an incomplete operation at the end of a section.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param operation
  *   The code of the operation.
  *
@@ -335,7 +321,7 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_operation_incomplete_
-  extern f_status_t fake_make_print_error_operation_incomplete(fake_setting_t * const setting, const fl_print_t print, const uint8_t operation);
+  extern f_status_t fake_make_print_error_operation_incomplete(fl_print_t * const print, const uint8_t operation);
 #endif // _di_fake_make_print_error_operation_incomplete_
 
 /**
@@ -343,7 +329,6 @@ extern "C" {
  *
  * @param setting
  *   The main program settings.
- *   (Must be of type fake_setting_t.)
  *
  *   This does not alter setting.state.status.
  * @param buffer
@@ -358,19 +343,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_operation_recursion_
-  extern f_status_t fake_make_print_error_operation_recursion(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_string_range_t range);
+  extern f_status_t fake_make_print_error_operation_recursion(fl_print_t * const print, const f_string_static_t buffer, const f_string_range_t range);
 #endif // _di_fake_make_print_error_operation_recursion_
 
 /**
  * Print error about an operation section not being found.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name
  *   The name of the operation.
  *
@@ -381,19 +365,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_operation_section_not_found_
-  extern f_status_t fake_make_print_error_operation_section_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name);
+  extern f_status_t fake_make_print_error_operation_section_not_found(fl_print_t * const print, const f_string_static_t name);
 #endif // _di_fake_make_print_error_operation_section_not_found_
 
 /**
  * Print error about number being out of range.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param number
  *   The string representing the number.
  * @param minimum
@@ -408,20 +391,19 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_out_of_range_number_
-  extern f_status_t fake_make_print_error_out_of_range_number(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t number, const f_number_unsigned_t minimum, const f_number_unsigned_t maximum);
+  extern f_status_t fake_make_print_error_out_of_range_number(fl_print_t * const print, const f_string_static_t number, const f_number_unsigned_t minimum, const f_number_unsigned_t maximum);
 #endif // _di_fake_make_print_error_out_of_range_number_
 
 /**
  * Print error about attempting to pop last path off the project path stack.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
  *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ *
  * @return
  *   F_none on success.
  *   F_output_not on success, but no printing is performed.
@@ -429,19 +411,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_pop_last_path_
-  extern f_status_t fake_make_print_error_pop_last_path(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_make_print_error_pop_last_path(fl_print_t * const print);
 #endif // _di_fake_make_print_error_pop_last_path_
 
 /**
  * Print error about program failed.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param return_code
  *   The return code from the program.
  *
@@ -452,19 +433,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_program_failed_
-  extern f_status_t fake_make_print_error_program_failed(fake_setting_t * const setting, const fl_print_t print, const int return_code);
+  extern f_status_t fake_make_print_error_program_failed(fl_print_t * const print, const int return_code);
 #endif // _di_fake_make_print_error_program_failed_
 
 /**
  * Print error about program not being found.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param program
  *   The program name.
  *
@@ -475,19 +455,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_program_not_found_
-  extern f_status_t fake_make_print_error_program_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t program);
+  extern f_status_t fake_make_print_error_program_not_found(fl_print_t * const print, const f_string_static_t program);
 #endif // _di_fake_make_print_error_program_not_found_
 
 /**
  * Print error about attempting to assign to a reserved parameter name.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name
  *   The reserved parameter name.
  *
@@ -498,20 +477,19 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_reserved_parameter_name_
-  extern f_status_t fake_make_print_error_reserved_parameter_name(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name);
+  extern f_status_t fake_make_print_error_reserved_parameter_name(fl_print_t * const print, const f_string_static_t name);
 #endif // _di_fake_make_print_error_reserved_parameter_name_
 
 /**
  * Print error about a target file name being an empty string.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
  *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ *
  * @return
  *   F_none on success.
  *   F_output_not on success, but no printing is performed.
@@ -519,19 +497,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_target_file_name_empty_
-  extern f_status_t fake_make_print_error_target_file_name_empty(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_make_print_error_target_file_name_empty(fl_print_t * const print);
 #endif // _di_fake_make_print_error_target_file_name_empty_
 
 /**
  * Print error about number not being supported.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param number
  *   The string representing the number.
  *
@@ -542,19 +519,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_unsupported_number_
-  extern f_status_t fake_make_print_error_unsupported_number(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t number);
+  extern f_status_t fake_make_print_error_unsupported_number(fl_print_t * const print, const f_string_static_t number);
 #endif // _di_fake_make_print_error_unsupported_number_
 
 /**
  * Print error about type not being supported.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param type
  *   The string representing the type.
  * @param value
@@ -567,7 +543,7 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_error_unsupported_type_
-  extern f_status_t fake_make_print_error_unsupported_type(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t type, const f_string_static_t value);
+  extern f_status_t fake_make_print_error_unsupported_type(fl_print_t * const print, const f_string_static_t type, const f_string_static_t value);
 #endif // _di_fake_make_print_error_unsupported_type_
 
 #ifdef __cplusplus
diff --git a/level_3/fake/c/main/make/print/message.c b/level_3/fake/c/main/make/print/message.c
new file mode 100644 (file)
index 0000000..71f72f9
--- /dev/null
@@ -0,0 +1,61 @@
+#include "../../fake.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fake_make_print_message_now_making_
+  f_status_t fake_make_print_message_now_making(fl_print_t * const print, const f_string_static_t fakefile) {
+
+    if (!print || !print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
+
+    fake_main_t * const main = (fake_main_t *) print->custom;
+
+    f_file_stream_lock(print->to);
+
+    fl_print_format("%[Now making using '%]", print->to, print->set->important, print->set->important);
+    fl_print_format("%[%Q%]", print->to, print->set->notable, fakefile, print->set->notable);
+
+    if (main->setting.modes.used) {
+      fl_print_format("%[' with modes '%]", print->to, print->set->important, print->set->important);
+
+      for (f_array_length_t i = 0; i < main->setting.modes.used; ) {
+
+        fl_print_format("%[%Q%]", print->to, print->set->notable, main->setting.modes.array[i], print->set->notable);
+
+        if (++i < main->setting.modes.used) {
+          fl_print_format("%[', '%]", print->to, print->set->important, print->set->important);
+        }
+      } // for
+    }
+
+    fl_print_format("%['.%]%r", print->to, print->set->important, print->set->important, f_string_eol_s);
+
+    f_file_stream_unlock(print->to);
+
+    return F_none;
+  }
+#endif // _di_fake_make_print_message_now_making_
+
+#ifndef _di_fake_make_print_message_processing_section_
+  f_status_t fake_make_print_message_processing_section(fl_print_t * const print, const f_string_static_t buffer, const f_fss_named_t section) {
+
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
+
+    f_file_stream_lock(print->to);
+
+    fl_print_format("%r%[Processing Section '%]", print->to, f_string_eol_s, print->set->important, print->set->important);
+    fl_print_format("%[%/Q%]", print->to, print->set->notable, buffer, section.name, print->set->notable);
+    fl_print_format("%['.%]%r", print->to, print->set->important, print->set->important, f_string_eol_s);
+
+    f_file_stream_unlock(print->to);
+
+    return F_none;
+  }
+#endif // _di_fake_make_print_message_processing_section_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
similarity index 57%
rename from level_3/fake/c/main/make/print.h
rename to level_3/fake/c/main/make/print/message.h
index 676f54ca84563d27e7fe9695a6c7965e8376cb2a..96646d6a8419395ee67750dd81d840111c17de2e 100644 (file)
@@ -5,12 +5,12 @@
  * API Version: 0.7
  * Licenses: lgpl-2.1-or-later
  *
- * Provides make print functionality.
+ * Provides make print message functionality.
  *
  * This is auto-included and should not need to be explicitly included.
  */
-#ifndef _fake_make_print_h
-#define _fake_make_print_h
+#ifndef _fake_make_print_message_h
+#define _fake_make_print_message_h
 
 #ifdef __cplusplus
 extern "C" {
@@ -19,13 +19,12 @@ extern "C" {
 /**
  * Print the now making message.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param fakefile
  *   The name or path of the file that is empty.
  *
@@ -39,20 +38,19 @@ extern "C" {
  * @see f_file_stream_unlock()
  * @see fl_print_format()
  */
-#ifndef _di_fake_make_print_now_making_
-  extern f_status_t fake_make_print_now_making(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile);
-#endif // _di_fake_make_print_now_making_
+#ifndef _di_fake_make_print_message_now_making_
+  extern f_status_t fake_make_print_message_now_making(fl_print_t * const print, const f_string_static_t fakefile);
+#endif // _di_fake_make_print_message_now_making_
 
 /**
  * Print the processing section message.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param buffer
  *   The string containing the section name.
  * @param section
@@ -68,12 +66,12 @@ extern "C" {
  * @see f_file_stream_unlock()
  * @see fl_print_format()
  */
-#ifndef _di_fake_make_print_processing_section_
-  extern f_status_t fake_make_print_processing_section(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_fss_named_t section);
-#endif // _di_fake_make_print_processing_section_
+#ifndef _di_fake_make_print_message_processing_section_
+  extern f_status_t fake_make_print_message_processing_section(fl_print_t * const print, const f_string_static_t buffer, const f_fss_named_t section);
+#endif // _di_fake_make_print_message_processing_section_
 
 #ifdef __cplusplus
 } // extern "C"
 #endif
 
-#endif // _fake_make_print_h
+#endif // _fake_make_print_message_h
index 0cac3651f7607f5ef42f7f01e8fd58d19a0ef6d9..6a6502022cda393fdae4e99dca10997bc8329815 100644 (file)
@@ -5,213 +5,213 @@ extern "C" {
 #endif
 
 #ifndef _di_fake_make_print_verbose_operate_break_
-  f_status_t fake_make_print_verbose_operate_break(fake_setting_t * const setting, const fl_print_t print, const f_string_statics_t arguments) {
+  f_status_t fake_make_print_verbose_operate_break(fl_print_t * const print, const f_string_statics_t arguments) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_simple_variable(setting, print, "Breaking as", arguments.used ? arguments.array[0] : fake_make_operation_argument_success_s, 0);
+    fake_print_context_simple_variable(print, "Breaking as", arguments.used ? arguments.array[0] : fake_make_operation_argument_success_s, 0);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_break_
 
 #ifndef _di_fake_make_print_verbose_operate_copy_
-  f_status_t fake_make_print_verbose_operate_copy(fake_setting_t * const setting, const fl_print_t print, const bool clone, const f_string_static_t source, const f_string_static_t destination) {
+  f_status_t fake_make_print_verbose_operate_copy(fl_print_t * const print, const bool clone, const f_string_static_t source, const f_string_static_t destination) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%s '%[%Q%]' to '", print.to, clone ? "Cloned" : "Copied", print.set->notable, source, print.set->notable);
-    fl_print_format("%[%Q%]'.%r", print.to, print.set->notable, destination, print.set->notable, f_string_eol_s);
+    fl_print_format("%s '%[%Q%]' to '", print->to, clone ? "Cloned" : "Copied", print->set->notable, source, print->set->notable);
+    fl_print_format("%[%Q%]'.%r", print->to, print->set->notable, destination, print->set->notable, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_copy_
 
 #ifndef _di_fake_make_print_verbose_operate_define_
-  f_status_t fake_make_print_verbose_operate_define(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t variable) {
+  f_status_t fake_make_print_verbose_operate_define(fl_print_t * const print, const f_string_static_t variable) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_simple_variable(setting, print, "Defined environment variable", variable, 0);
+    fake_print_context_simple_variable(print, "Defined environment variable", variable, 0);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_define_
 
 #ifndef _di_fake_make_print_verbose_operate_delete_
-  f_status_t fake_make_print_verbose_operate_delete(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_make_print_verbose_operate_delete(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_simple_variable(setting, print, "Removed", path, 0);
+    fake_print_context_simple_variable(print, "Removed", path, 0);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_delete_
 
 #ifndef _di_fake_make_print_verbose_operate_exiting_as_
-  f_status_t fake_make_print_verbose_operate_exiting_as(fake_setting_t * const setting, const fl_print_t print, const f_string_statics_t arguments) {
+  f_status_t fake_make_print_verbose_operate_exiting_as(fl_print_t * const print, const f_string_statics_t arguments) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_simple_variable(setting, print, "Exiting as", arguments.used ? arguments.array[0] : fake_make_operation_argument_success_s, 0);
+    fake_print_context_simple_variable(print, "Exiting as", arguments.used ? arguments.array[0] : fake_make_operation_argument_success_s, 0);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_exiting_as_
 
 #ifndef _di_fake_make_print_verbose_operate_file_not_found_
-  f_status_t fake_make_print_verbose_operate_file_not_found(fake_setting_t * const setting, const fl_print_t print, const bool is_directory, const f_string_static_t file) {
+  f_status_t fake_make_print_verbose_operate_file_not_found(fl_print_t * const print, const bool is_directory, const f_string_static_t file) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fll_print_format("The %Q '%[%Q%]' is not found.%]%r", print.to, print.set->notable, is_directory ? f_file_type_name_directory_s : f_file_type_name_file_s, file, print.set->notable, f_string_eol_s);
+    fll_print_format("The %Q '%[%Q%]' is not found.%]%r", print->to, print->set->notable, is_directory ? f_file_type_name_directory_s : f_file_type_name_file_s, file, print->set->notable, f_string_eol_s);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_file_not_found_
 
 #ifndef _di_fake_make_print_verbose_operate_program_
-  f_status_t fake_make_print_verbose_operate_program(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t program, const f_string_statics_t arguments) {
+  f_status_t fake_make_print_verbose_operate_program(fl_print_t * const print, const f_string_static_t program, const f_string_statics_t arguments) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
     f_array_length_t i = 0;
 
     if (program.used) {
-      f_print_dynamic_safely(program, print.to);
+      f_print_dynamic_safely(program, print->to);
     }
     else {
       i = 1;
 
-      f_print_dynamic_safely(arguments.array[0], print.to);
+      f_print_dynamic_safely(arguments.array[0], print->to);
     }
 
     for (; i < arguments.used; ++i) {
-      if (arguments.array[i].used) fll_print_format(" %Q", print.to, arguments.array[i]);
+      if (arguments.array[i].used) fll_print_format(" %Q", print->to, arguments.array[i]);
     } // for
 
-    f_print_dynamic_raw(f_string_eol_s, print.to);
+    f_print_dynamic_raw(f_string_eol_s, print->to);
 
     // Flush to stdout before executing command.
-    f_file_stream_flush(print.to);
+    f_file_stream_flush(print->to);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_program_
 
 #ifndef _di_fake_make_print_verbose_operate_set_failure_state_
-  f_status_t fake_make_print_verbose_operate_set_failure_state(fake_setting_t * const setting, const fl_print_t print, const uint8_t fail) {
+  f_status_t fake_make_print_verbose_operate_set_failure_state(fl_print_t * const print, const uint8_t fail) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    f_print_terminated("Set failure state to '", print.to);
+    f_print_terminated("Set failure state to '", print->to);
 
     if (fail == fake_make_operation_fail_exit_e) {
-      fl_print_format("%[%r%]", print.to, print.set->notable, fake_make_operation_argument_exit_s, print.set->notable);
+      fl_print_format("%[%r%]", print->to, print->set->notable, fake_make_operation_argument_exit_s, print->set->notable);
     }
     else if (fail == fake_make_operation_fail_warn_e) {
-      fl_print_format("%[%r%]", print.to, print.set->notable, fake_make_operation_argument_warn_s, print.set->notable);
+      fl_print_format("%[%r%]", print->to, print->set->notable, fake_make_operation_argument_warn_s, print->set->notable);
     }
     else {
-      fl_print_format("%[%r%]", print.to, print.set->notable, fake_make_operation_argument_ignore_s, print.set->notable);
+      fl_print_format("%[%r%]", print->to, print->set->notable, fake_make_operation_argument_ignore_s, print->set->notable);
     }
 
-    fl_print_format("'.%r", print.to, f_string_eol_s);
+    fl_print_format("'.%r", print->to, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_set_failure_state_
 
 #ifndef _di_fake_make_print_verbose_operate_set_mode_
-  f_status_t fake_make_print_verbose_operate_set_mode(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path, const mode_t mode) {
+  f_status_t fake_make_print_verbose_operate_set_mode(fl_print_t * const print, const f_string_static_t path, const mode_t mode) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fll_print_format("Changed mode of '%[%Q%]' to %[%#@u%].%r", print.to, print.set->notable, path, print.set->notable, print.set->notable, mode, print.set->notable, f_string_eol_s);
+    fll_print_format("Changed mode of '%[%Q%]' to %[%#@u%].%r", print->to, print->set->notable, path, print->set->notable, print->set->notable, mode, print->set->notable, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_set_mode_
 
 #ifndef _di_fake_make_print_verbose_operate_set_path_
-  f_status_t fake_make_print_verbose_operate_set_path(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_make_print_verbose_operate_set_path(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_simple_variable(setting, print, "Changed project path to", path, 0);
+    fake_print_context_simple_variable(print, "Changed project path to", path, 0);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_set_path_
 
 #ifndef _di_fake_make_print_verbose_operate_set_role_
-  f_status_t fake_make_print_verbose_operate_set_role(fake_setting_t * const setting, const fl_print_t print, const uint8_t what, f_string_static_t role, f_number_unsigned_t id) {
+  f_status_t fake_make_print_verbose_operate_set_role(fl_print_t * const print, const uint8_t what, f_string_static_t role, f_number_unsigned_t id) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%r %r of '%[%r%]'", print.to, (what & 0x1) ? "Recursively changed" : "Changed", (what & 0x2) ? "owner" : "group", print.set->notable, role, print.set->notable);
-    fl_print_format(" to %[%ul%].%r", print.to, print.set->notable, id, print.set->notable, f_string_eol_s);
+    fl_print_format("%r %r of '%[%r%]'", print->to, (what & 0x1) ? "Recursively changed" : "Changed", (what & 0x2) ? "owner" : "group", print->set->notable, role, print->set->notable);
+    fl_print_format(" to %[%ul%].%r", print->to, print->set->notable, id, print->set->notable, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_set_role_
 
 #ifndef _di_fake_make_print_verbose_operate_symbolic_link_
-  f_status_t fake_make_print_verbose_operate_symbolic_link(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t source, const f_string_static_t destination) {
+  f_status_t fake_make_print_verbose_operate_symbolic_link(fl_print_t * const print, const f_string_static_t source, const f_string_static_t destination) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("Created symbolic link from '%[%Q%]", print.to, print.set->notable, source, print.set->notable);
-    fl_print_format("' to %[%Q%].%r", print.to, print.set->notable, destination, print.set->notable, f_string_eol_s);
+    fl_print_format("Created symbolic link from '%[%Q%]", print->to, print->set->notable, source, print->set->notable);
+    fl_print_format("' to %[%Q%].%r", print->to, print->set->notable, destination, print->set->notable, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_verbose_operate_symbolic_link_
 
 #ifndef _di_fake_make_print_verbose_operate_touch_
-  f_status_t fake_make_print_verbose_operate_touch(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_make_print_verbose_operate_touch(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_simple_variable(setting, print, "Touched", path, 0);
+    fake_print_context_simple_variable(print, "Touched", path, 0);
 
     return F_none;
   }
index 99f5140d7cd3b0b1a30cf5eac77080525049770c..89f096c86f3f2affb9806aba9fd32f6465e3ca97 100644 (file)
@@ -19,13 +19,12 @@ extern "C" {
 /**
  * Print operate break verbose message.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param arguments
  *   The arguments where the first argument, if defined, is the exiting as string.
  *   Set arguments.used to 0 to use the default "success" exiting as string.
@@ -37,19 +36,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_break_
-  extern f_status_t fake_make_print_verbose_operate_break(fake_setting_t * const setting, const fl_print_t print, const f_string_statics_t arguments);
+  extern f_status_t fake_make_print_verbose_operate_break(fl_print_t * const print, const f_string_statics_t arguments);
 #endif // _di_fake_make_print_verbose_operate_break_
 
 /**
  * Print operate copy verbose message.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param clone
  *   If TRUE, then this is a clone operation.
  *   If FALSE< then this is a copy operation.
@@ -65,19 +63,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_copy_
-  extern f_status_t fake_make_print_verbose_operate_copy(fake_setting_t * const setting, const fl_print_t print, const bool clone, const f_string_static_t source, const f_string_static_t destination);
+  extern f_status_t fake_make_print_verbose_operate_copy(fl_print_t * const print, const bool clone, const f_string_static_t source, const f_string_static_t destination);
 #endif // _di_fake_make_print_verbose_operate_copy_
 
 /**
  * Print operate define verbose message.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param variable
  *   The environment variable name.
  *
@@ -88,19 +85,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_define_
-  extern f_status_t fake_make_print_verbose_operate_define(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t variable);
+  extern f_status_t fake_make_print_verbose_operate_define(fl_print_t * const print, const f_string_static_t variable);
 #endif // _di_fake_make_print_verbose_operate_define_
 
 /**
  * Print operate delete verbose message.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The path or file that is deleted.
  *
@@ -111,19 +107,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_delete_
-  extern f_status_t fake_make_print_verbose_operate_delete(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_make_print_verbose_operate_delete(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_make_print_verbose_operate_delete_
 
 /**
  * Print operate exiting as verbose message.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param arguments
  *   The arguments where the first argument, if defined, is the exiting as string.
  *   Set arguments.used to 0 to use the default "success" exiting as string.
@@ -135,19 +130,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_exiting_as_
-  extern f_status_t fake_make_print_verbose_operate_exiting_as(fake_setting_t * const setting, const fl_print_t print, const f_string_statics_t arguments);
+  extern f_status_t fake_make_print_verbose_operate_exiting_as(fl_print_t * const print, const f_string_statics_t arguments);
 #endif // _di_fake_make_print_verbose_operate_exiting_as_
 
 /**
  * Print operate file or directory not found verbose message.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param is_directory
  *   If TRUE, then the file is type directory.
  *   If FALSE, then the file is type regular.
@@ -161,19 +155,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_file_not_found_
-  extern f_status_t fake_make_print_verbose_operate_file_not_found(fake_setting_t * const setting, const fl_print_t print, const bool is_directory, const f_string_static_t file);
+  extern f_status_t fake_make_print_verbose_operate_file_not_found(fl_print_t * const print, const bool is_directory, const f_string_static_t file);
 #endif // _di_fake_make_print_verbose_operate_file_not_found_
 
 /**
  * Print verbose program message.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param program
  *   The program name.
  * @param arguments
@@ -186,19 +179,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_program_
-  extern f_status_t fake_make_print_verbose_operate_program(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t program, const f_string_statics_t arguments);
+  extern f_status_t fake_make_print_verbose_operate_program(fl_print_t * const print, const f_string_static_t program, const f_string_statics_t arguments);
 #endif // _di_fake_make_print_verbose_operate_program_
 
 /**
  * Print verbose message about setting failure state.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param fail
  *   The failure state code being set to.
  *
@@ -209,19 +201,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_set_failure_state_
-  extern f_status_t fake_make_print_verbose_operate_set_failure_state(fake_setting_t * const setting, const fl_print_t print, const uint8_t fail);
+  extern f_status_t fake_make_print_verbose_operate_set_failure_state(fl_print_t * const print, const uint8_t fail);
 #endif // _di_fake_make_print_verbose_operate_set_failure_state_
 
 /**
  * Print verbose message about setting the file mode.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The file path having the mode changed.
  * @param mode
@@ -234,19 +225,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_set_mode_
-  extern f_status_t fake_make_print_verbose_operate_set_mode(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path, const mode_t mode);
+  extern f_status_t fake_make_print_verbose_operate_set_mode(fl_print_t * const print, const f_string_static_t path, const mode_t mode);
 #endif // _di_fake_make_print_verbose_operate_set_mode_
 
 /**
  * Print verbose message about changing the project path.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The path being changed to.
  *
@@ -257,19 +247,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_set_path_
-  extern f_status_t fake_make_print_verbose_operate_set_path(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_make_print_verbose_operate_set_path(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_make_print_verbose_operate_set_path_
 
 /**
  * Print verbose message about setting owner or group.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param what
  *   Bitwise flags tweaking the message printed.
  *   - 0x1 = When set, print as recursive; When not set, print as non-recursive.
@@ -286,19 +275,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_set_role_
-  extern f_status_t fake_make_print_verbose_operate_set_role(fake_setting_t * const setting, const fl_print_t print, const uint8_t what, f_string_static_t role, f_number_unsigned_t id);
+  extern f_status_t fake_make_print_verbose_operate_set_role(fl_print_t * const print, const uint8_t what, f_string_static_t role, f_number_unsigned_t id);
 #endif // _di_fake_make_print_verbose_operate_set_role_
 
 /**
  * Print verbose message about create a symbolic link.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param source
  *   A string the symbolic link is from.
  * @param destination
@@ -311,19 +299,18 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_symbolic_link_
-  extern f_status_t fake_make_print_verbose_operate_symbolic_link(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t source, const f_string_static_t destination);
+  extern f_status_t fake_make_print_verbose_operate_symbolic_link(fl_print_t * const print, const f_string_static_t source, const f_string_static_t destination);
 #endif // _di_fake_make_print_verbose_operate_symbolic_link_
 
 /**
  * Print verbose message about touching a file.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The file path being touched.
  *
@@ -334,7 +321,7 @@ extern "C" {
  *   F_output_not (with error bit) if setting is NULL.
  */
 #ifndef _di_fake_make_print_verbose_operate_touch_
-  extern f_status_t fake_make_print_verbose_operate_touch(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_make_print_verbose_operate_touch(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_make_print_verbose_operate_touch_
 
 #ifdef __cplusplus
index a2b3e5af3ff95c850ffdf1351137bae2edfefd37..25ad4b940864b8045495ac2b678fc46604d94b96 100644 (file)
@@ -5,138 +5,140 @@ extern "C" {
 #endif
 
 #ifndef _di_fake_make_print_warning_cannot_change_back_
-  f_status_t fake_make_print_warning_cannot_change_back(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_make_print_warning_cannot_change_back(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print || !print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    fake_main_t * const main = (fake_main_t *) print->custom;
 
-    fl_print_format("%[%QFailed change back to original path '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, path, print.notable);
-    fl_print_format("%[', status code =%] ", print.to, print.context, print.context);
-    fl_print_format("%[%ui%]", print.to, print.notable, setting->state.status, print.notable);
-    fl_print_format("%['.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    f_file_stream_lock(print->to);
 
-    f_file_stream_unlock(print.to);
+    fl_print_format("%[%QFailed change back to original path '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, path, print->notable);
+    fl_print_format("%[', status code =%] ", print->to, print->context, print->context);
+    fl_print_format("%[%ui%]", print->to, print->notable, main->setting.state.status, print->notable);
+    fl_print_format("%['.%]%r", print->to, print->context, print->context, f_string_eol_s);
+
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_warning_cannot_change_back_
 
 #ifndef _di_fake_make_print_warning_environment_name_already_added_
-  f_status_t fake_make_print_warning_environment_name_already_added(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name) {
+  f_status_t fake_make_print_warning_environment_name_already_added(fl_print_t * const print, const f_string_static_t name) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_simple_variable(setting, print, "The environment name", name, "is already added, replacing previous value");
+    fake_print_context_simple_variable(print, "The environment name", name, "is already added, replacing previous value");
 
     return F_none;
   }
 #endif // _di_fake_make_print_warning_environment_name_already_added_
 
 #ifndef _di_fake_make_print_warning_environment_name_invalid_
-  f_status_t fake_make_print_warning_environment_name_invalid(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name) {
+  f_status_t fake_make_print_warning_environment_name_invalid(fl_print_t * const print, const f_string_static_t name) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_simple_variable(setting, print, "The environment name", name, "is invalid, ignoring");
+    fake_print_context_simple_variable(print, "The environment name", name, "is invalid, ignoring");
 
     return F_none;
   }
 #endif // _di_fake_make_print_warning_environment_name_invalid_
 
 #ifndef _di_fake_make_print_warning_fakefile_empty_
-  f_status_t fake_make_print_warning_fakefile_empty(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile) {
+  f_status_t fake_make_print_warning_fakefile_empty(fl_print_t * const print, const f_string_static_t fakefile) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_simple_variable(setting, print, "The fakefile", fakefile, "is empty");
+    fake_print_context_simple_variable(print, "The fakefile", fakefile, "is empty");
 
     return F_none;
   }
 #endif // _di_fake_make_print_warning_fakefile_empty_
 
 #ifndef _di_fake_make_print_warning_file_not_found_
-  f_status_t fake_make_print_warning_file_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t file) {
+  f_status_t fake_make_print_warning_file_not_found(fl_print_t * const print, const f_string_static_t file) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_simple_variable(setting, print, "The file", file, "cannot be found");
+    fake_print_context_simple_variable(print, "The file", file, "cannot be found");
 
     return F_none;
   }
 #endif // _di_fake_make_print_warning_file_not_found_
 
 #ifndef _di_fake_make_print_warning_setting_content_empty_
-  f_status_t fake_make_print_warning_setting_content_empty(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_dynamic_t buffer, const f_string_range_t range, const f_string_static_t name) {
+  f_status_t fake_make_print_warning_setting_content_empty(fl_print_t * const print, const f_string_static_t fakefile, const f_string_dynamic_t buffer, const f_string_range_t range, const f_string_static_t name) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe fakefile '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, fakefile, print.notable);
-    fl_print_format("%[' has empty content for the '%]", print.to, print.context, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, name, print.notable);
-    fl_print_format("%[' object '%]", print.to, print.context, print.context);
-    fl_print_format("%[%/Q%]", print.to, print.notable, buffer, range, print.notable);
-    fl_print_format("%['.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe fakefile '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, fakefile, print->notable);
+    fl_print_format("%[' has empty content for the '%]", print->to, print->context, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, name, print->notable);
+    fl_print_format("%[' object '%]", print->to, print->context, print->context);
+    fl_print_format("%[%/Q%]", print->to, print->notable, buffer, range, print->notable);
+    fl_print_format("%['.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_warning_setting_content_empty_
 
 #ifndef _di_fake_make_print_warning_setting_content_invalid_
-  f_status_t fake_make_print_warning_setting_content_invalid(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_dynamic_t buffer, const f_string_range_t object, const f_string_range_t content, const f_string_static_t name) {
+  f_status_t fake_make_print_warning_setting_content_invalid(fl_print_t * const print, const f_string_static_t fakefile, const f_string_dynamic_t buffer, const f_string_range_t object, const f_string_range_t content, const f_string_static_t name) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe fakefile '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, fakefile, print.notable);
-    fl_print_format("%[' has invalid content '%]", print.to, print.context, print.context);
-    fl_print_format("%[%/Q%]", print.to, print.notable, buffer, content, print.notable);
-    fl_print_format("%[' for the '%]", print.to, print.context, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, name, print.notable);
-    fl_print_format("%[' object '%]", print.to, print.context, print.context);
-    fl_print_format("%[%/Q%]", print.to, print.notable, buffer, object, print.notable);
-    fl_print_format("%['.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe fakefile '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, fakefile, print->notable);
+    fl_print_format("%[' has invalid content '%]", print->to, print->context, print->context);
+    fl_print_format("%[%/Q%]", print->to, print->notable, buffer, content, print->notable);
+    fl_print_format("%[' for the '%]", print->to, print->context, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, name, print->notable);
+    fl_print_format("%[' object '%]", print->to, print->context, print->context);
+    fl_print_format("%[%/Q%]", print->to, print->notable, buffer, object, print->notable);
+    fl_print_format("%['.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_make_print_warning_setting_content_invalid_
 
 #ifndef _di_fake_make_print_warning_setting_content_multiple_
-  f_status_t fake_make_print_warning_setting_content_multiple(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_static_t name) {
+  f_status_t fake_make_print_warning_setting_content_multiple(fl_print_t * const print, const f_string_static_t fakefile, const f_string_static_t name) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_wrapped_variables(setting, print, "The fakefile ", fakefile, " may only have a single content for the object ", name, ", only using the first");
+    fake_print_context_wrapped_variables(print, "The fakefile ", fakefile, " may only have a single content for the object ", name, ", only using the first");
 
     return F_none;
   }
 #endif // _di_fake_make_print_warning_setting_content_multiple_
 
 #ifndef _di_fake_make_print_warning_setting_object_multiple_
-  f_status_t fake_make_print_warning_setting_object_multiple(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_static_t name) {
+  f_status_t fake_make_print_warning_setting_object_multiple(fl_print_t * const print, const f_string_static_t fakefile, const f_string_static_t name) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_wrapped_variables(setting, print, "The object ", name, " in the fakefile ", fakefile, " may only be specified once, only using the first");
+    fake_print_context_wrapped_variables(print, "The object ", name, " in the fakefile ", fakefile, " may only be specified once, only using the first");
 
     return F_none;
   }
index d52e08f8a61c311d00b2e097c5b627039139219e..081ad3f6364847bec1652b0ae24b631879166d66 100644 (file)
@@ -19,13 +19,12 @@ extern "C" {
 /**
  * Print warning message when unable to change back to original path.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The path that cannot be changed back to.
  *
@@ -40,19 +39,18 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_make_print_warning_cannot_change_back_
-  extern f_status_t fake_make_print_warning_cannot_change_back(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_make_print_warning_cannot_change_back(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_make_print_warning_cannot_change_back_
 
 /**
  * Print warning about a setting name being already added.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name
  *   The name of the environment variable that is already added.
  *
@@ -65,19 +63,18 @@ extern "C" {
  * @see fake_print_context_simple_variable()
  */
 #ifndef _di_fake_make_print_warning_environment_name_already_added_
-  extern f_status_t fake_make_print_warning_environment_name_already_added(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name);
+  extern f_status_t fake_make_print_warning_environment_name_already_added(fl_print_t * const print, const f_string_static_t name);
 #endif // _di_fake_make_print_warning_environment_name_already_added_
 
 /**
  * Print warning about a given environment name being invalid.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param name
  *   The name of the environment variable that is invalid.
  *
@@ -90,19 +87,18 @@ extern "C" {
  * @see fake_print_context_simple_variable()
  */
 #ifndef _di_fake_make_print_warning_environment_name_invalid_
-  extern f_status_t fake_make_print_warning_environment_name_invalid(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t name);
+  extern f_status_t fake_make_print_warning_environment_name_invalid(fl_print_t * const print, const f_string_static_t name);
 #endif // _di_fake_make_print_warning_environment_name_invalid_
 
 /**
  * Print warning about a given fakefile being empty.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param fakefile
  *   The name or path of the file that is empty.
  *
@@ -115,19 +111,18 @@ extern "C" {
  * @see fake_print_context_simple_variable()
  */
 #ifndef _di_fake_make_print_warning_fakefile_empty_
-  extern f_status_t fake_make_print_warning_fakefile_empty(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile);
+  extern f_status_t fake_make_print_warning_fakefile_empty(fl_print_t * const print, const f_string_static_t fakefile);
 #endif // _di_fake_make_print_warning_fakefile_empty_
 
 /**
  * Print warning about a file not being found.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param file
  *   The name or path of the file that is not found.
  *
@@ -140,19 +135,18 @@ extern "C" {
  * @see fake_print_context_simple_variable()
  */
 #ifndef _di_fake_make_print_warning_file_not_found_
-  extern f_status_t fake_make_print_warning_file_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t file);
+  extern f_status_t fake_make_print_warning_file_not_found(fl_print_t * const print, const f_string_static_t file);
 #endif // _di_fake_make_print_warning_file_not_found_
 
 /**
  * Print message when fake settings content is empty.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param fakefile
  *   The name or path of the file that is empty.
  * @param buffer
@@ -173,19 +167,18 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_make_print_warning_setting_content_empty_
-  extern f_status_t fake_make_print_warning_setting_content_empty(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_dynamic_t buffer, const f_string_range_t range, const f_string_static_t name);
+  extern f_status_t fake_make_print_warning_setting_content_empty(fl_print_t * const print, const f_string_static_t fakefile, const f_string_dynamic_t buffer, const f_string_range_t range, const f_string_static_t name);
 #endif // _di_fake_make_print_warning_setting_content_empty_
 
 /**
  * Print warning message when fake settings content is invalid.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param fakefile
  *   The name or path of the file that is empty.
  * @param buffer
@@ -208,19 +201,18 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_make_print_warning_setting_content_invalid_
-  extern f_status_t fake_make_print_warning_setting_content_invalid(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_dynamic_t buffer, const f_string_range_t object, const f_string_range_t content, const f_string_static_t name);
+  extern f_status_t fake_make_print_warning_setting_content_invalid(fl_print_t * const print, const f_string_static_t fakefile, const f_string_dynamic_t buffer, const f_string_range_t object, const f_string_range_t content, const f_string_static_t name);
 #endif // _di_fake_make_print_warning_setting_content_invalid_
 
 /**
  * Print warning message when settings content has too many values.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param fakefile
  *   The name or path of the file that is empty.
  * @param name
@@ -235,19 +227,18 @@ extern "C" {
  * @see fake_print_context_wrapped_variables()
  */
 #ifndef _di_fake_make_print_warning_setting_content_multiple_
-  extern f_status_t fake_make_print_warning_setting_content_multiple(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_static_t name);
+  extern f_status_t fake_make_print_warning_setting_content_multiple(fl_print_t * const print, const f_string_static_t fakefile, const f_string_static_t name);
 #endif // _di_fake_make_print_warning_setting_content_multiple_
 
 /**
  * Print warning message when fakefile has too many objects with the same name.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param fakefile
  *   The name or path of the file that is empty.
  * @param name
@@ -262,7 +253,7 @@ extern "C" {
  * @see fake_print_context_wrapped_variables()
  */
 #ifndef _di_fake_make_print_warning_setting_object_multiple_
-  extern f_status_t fake_make_print_warning_setting_object_multiple(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_static_t name);
+  extern f_status_t fake_make_print_warning_setting_object_multiple(fl_print_t * const print, const f_string_static_t fakefile, const f_string_static_t name);
 #endif // _di_fake_make_print_warning_setting_object_multiple_
 
 #ifdef __cplusplus
diff --git a/level_3/fake/c/main/print.c b/level_3/fake/c/main/print.c
deleted file mode 100644 (file)
index 025b99d..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-#include "fake.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_fake_print_building_
-  f_status_t fake_print_building(fake_setting_t * const setting, const fl_print_t print, const f_string_statics_t * const build_arguments, fake_build_setting_t * const setting_build) {
-
-    if (!setting || !setting_build) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
-
-    f_file_stream_lock(print.to);
-
-    fl_print_format("%r%[Building%] ", print.to, f_string_eol_s, print.set->important, print.set->important);
-    fl_print_format("%[%Q%]", print.to, print.set->notable, setting_build->build_name, print.set->notable);
-    fl_print_format("%[ using '%]", print.to, print.set->important, print.set->important);
-    fl_print_format("%[%Q%]", print.to, print.set->notable, setting->settings, print.set->notable);
-
-    fl_print_format("%[' with modes '%]", print.to, print.set->important, print.set->important);
-
-    f_string_statics_t modes_custom = f_string_statics_t_initialize;
-    modes_custom.used = build_arguments && build_arguments->used > 1 ? build_arguments->used - 1 : 0;
-    modes_custom.size = 0;
-
-    f_string_static_t modes_custom_array[modes_custom.used];
-    modes_custom.array = modes_custom_array;
-
-    for (f_array_length_t i = 0; i < modes_custom.used; ++i) {
-      modes_custom.array[i] = build_arguments->array[i + 1];
-    } // for
-
-    // Custom modes are always used if provided, otherwise if any mode is specified, the entire defaults is replaced.
-    const f_string_statics_t * const modes = modes_custom.used
-      ? &modes_custom
-      : setting->modes.used
-        ? &setting->modes
-        : &setting_build->modes_default;
-
-    for (f_array_length_t i = 0; i < modes->used; ) {
-
-      fl_print_format("%[%Q%]", print.to, print.set->notable, modes->array[i], print.set->notable);
-
-      if (++i < modes->used) {
-        fl_print_format("%[', '%]", print.to, print.set->important, print.set->important);
-      }
-    } // for
-
-    fl_print_format("%['.%]%r", print.to, print.set->important, print.set->important, f_string_eol_s);
-
-    f_file_stream_unlock(print.to);
-
-    return F_none;
-  }
-#endif // _di_fake_print_building_
-
-#ifndef _di_fake_print_generating_skeleton_
-  f_status_t fake_print_generating_skeleton(fake_setting_t * const setting, const fl_print_t print) {
-
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
-
-    fake_print_simple(setting, print, "Generating skeleton structure");
-
-    return F_none;
-  }
-#endif // _di_fake_print_generating_skeleton_
-
-#ifndef _di_fake_print_help_
-  f_status_t fake_print_help(fake_setting_t * const setting, const fl_print_t print) {
-
-    if (!setting) return F_status_set_error(F_output_not);
-
-    f_file_stream_lock(print.to);
-
-    fll_program_print_help_header(print, fake_program_name_long_s, fake_program_version_s);
-
-    fll_program_print_help_option_standard(print);
-
-    f_print_dynamic_raw(f_string_eol_s, print.to);
-
-    fll_program_print_help_option(print, fake_short_define_s, fake_long_define_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "  Append an additional define after defines from settings file.");
-    fll_program_print_help_option(print, fake_short_fakefile_s, fake_long_fakefile_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Use this fakefile.");
-    fll_program_print_help_option(print, fake_short_mode_s, fake_long_mode_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "    Use this mode when processing the build settings.");
-    fll_program_print_help_option(print, fake_short_process_s, fake_long_process_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, " Process name for storing build states.");
-    fll_program_print_help_option(print, fake_short_settings_s, fake_long_settings_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Use this settings file.");
-
-    f_print_dynamic_raw(f_string_eol_s, print.to);
-
-    fll_program_print_help_option(print, fake_short_build_s, fake_long_build_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "    Specify a custom build directory.");
-    fll_program_print_help_option(print, fake_short_data_s, fake_long_data_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "     Specify a custom path to the data files.");
-    fll_program_print_help_option(print, fake_short_documents_s, fake_long_documents_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Specify a custom path to the documents files.");
-    fll_program_print_help_option(print, fake_short_licenses_s, fake_long_licenses_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, " Specify a custom path to the licenses files.");
-    fll_program_print_help_option(print, fake_short_sources_s, fake_long_sources_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "  Specify a custom path to the source files.");
-    fll_program_print_help_option(print, fake_short_work_s, fake_long_work_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "     Use includes/libraries/programs from this directory instead of system.");
-
-    fl_print_format("%r%r %[Special Options:%] ", print.to, f_string_eol_s, f_string_eol_s, print.set->important, print.set->important);
-
-    fll_program_print_help_option_long(print, fake_long_documents_disabled_s, f_console_symbol_long_normal_s, "   Forcibly do not build documents files.");
-    fll_program_print_help_option_long(print, fake_long_documents_enabled_s, f_console_symbol_long_normal_s, "    Forcibly do build documents files.");
-    fll_program_print_help_option_long(print, fake_long_shared_disabled_s, f_console_symbol_long_normal_s, "Forcibly do not build shared files.");
-    fll_program_print_help_option_long(print, fake_long_shared_enabled_s, f_console_symbol_long_normal_s, " Forcibly do build shared files.");
-    fll_program_print_help_option_long(print, fake_long_static_disabled_s, f_console_symbol_long_normal_s, "Forcibly do not build static files.");
-    fll_program_print_help_option_long(print, fake_long_static_enabled_s, f_console_symbol_long_normal_s, " Forcibly do build static files.");
-
-    fl_print_format("%r%r %[Operations:%] ", print.to, f_string_eol_s, f_string_eol_s, print.set->important, print.set->important);
-
-    fll_program_print_help_option_other(print, fake_other_operation_build_s, "   Build or compile the code based on build settings file.");
-    fll_program_print_help_option_other(print, fake_other_operation_clean_s, "   Delete all build files.");
-    fll_program_print_help_option_other(print, fake_other_operation_make_s, "    Build or compile the code based on fakefile (default).");
-    fll_program_print_help_option_other(print, fake_other_operation_skeleton_s, "Build a skeleton directory structure.");
-
-    f_print_dynamic_raw(f_string_eol_s, print.to);
-    f_print_dynamic_raw(f_string_eol_s, print.to);
-
-    fll_program_print_help_usage(print, fake_program_name_s, fake_program_help_parameters_s);
-
-    fl_print_format("%r  When performing the %[%r%] operation, the", print.to, f_string_eol_s, print.set->notable, fake_other_operation_build_s, print.set->notable);
-    fl_print_format(" %[%r%r%] parameter specifies a name (limited to alpha-numeric, underscore, and dash) to be used in addition to the global.%r", print.to, print.set->notable, f_console_symbol_long_normal_s, fake_long_mode_s, print.set->notable, f_string_eol_s);
-
-    fl_print_format("  For example, when a %[%r%]", print.to, print.set->notable, fake_make_parameter_variable_mode_s, print.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').%r%r", print.to, f_string_eol_s, f_string_eol_s);
-
-    fl_print_format("  When specifying the %[%r%] or the %[%r%]", print.to, print.set->notable, fake_make_parameter_variable_fakefile_s, print.set->notable, print.set->notable, fake_make_parameter_variable_settings_s, print.set->notable);
-    fl_print_format(" parameters, the project root is seached first and then the build data director is searched when the given file does not contain a directory separator.%r", print.to, f_string_eol_s);
-
-    fl_print_format("  For example, with '%[%r%r my_fakefile%]' the fakefile at", print.to, print.set->notable, f_console_symbol_long_normal_s, fake_long_fakefile_s, print.set->notable);
-    fl_print_format(" '%[./my_fakefile%]' is used if found, but if it is not found then", print.to, print.set->notable, print.set->notable);
-    fl_print_format(" '%[./%r%rmy_fakefile%]' is used if found.%r", print.to, print.set->notable, fake_default_data_s, fake_default_build_s, print.set->notable, f_string_eol_s);
-    fl_print_format("  For example, with '%[%r%r ./my_fakefile%]' the fakefile at", print.to, print.set->notable, f_console_symbol_long_normal_s, fake_long_fakefile_s, print.set->notable);
-    fl_print_format(" '%[./my_fakefile%]' is used if found, but if it is not found then no other paths are attempted.%r%r", print.to, print.set->notable, print.set->notable, f_string_eol_s, f_string_eol_s);
-
-    fl_print_format("  When piping data to this program, the piped data is treated as if it were prepended to the %[%r%]", print.to, print.set->notable, fake_make_parameter_variable_fakefile_s, print.set->notable);
-    fl_print_format(" or the %[%r%], depending on the operation.%r", print.to, print.set->notable, fake_make_parameter_variable_settings_s, print.set->notable, f_string_eol_s);
-
-    fl_print_format("  A section name from the fakefile that does not conflict with an operation name may be specified when performing the %[%r%] operation.%r", print.to, print.set->notable, fake_other_operation_make_s, print.set->notable, f_string_eol_s);
-
-    f_file_stream_flush(print.to);
-    f_file_stream_unlock(print.to);
-
-    return F_none;
-  }
-#endif // _di_fake_print_help_
-
-#ifndef _di_fake_print_simple_
-  void fake_print_simple(fake_setting_t * const setting, const fl_print_t print, const f_string_t message) {
-
-    if (!setting) return;
-
-    fll_print_format("%S.%r", print.to, message, f_string_eol_s);
-  }
-#endif // _di_fake_print_simple_
-
-#ifndef _di_fake_print_simple_variable_
-  void fake_print_simple_variable(fake_setting_t * const setting, const fl_print_t print, const f_string_t message, const f_string_static_t variable) {
-
-    if (!setting) return;
-
-    fll_print_format("%S'%[%Q%]'.%r", print.to, message, print.set->notable, variable, print.set->notable, f_string_eol_s);
-  }
-#endif // _di_fake_print_simple_variable_
-
-#ifndef _di_fake_print_wrapped_variable_
-  void fake_print_wrapped_variable(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t variable, const f_string_t after) {
-
-    if (!setting) return;
-
-    fll_print_format("%S'%[%Q%]'%S.%r", print.to, before, print.set->notable, variable, print.set->notable, after, f_string_eol_s);
-  }
-#endif // _di_fake_print_wrapped_variable_
-
-#ifndef _di_fake_print_wrapped_variables_
-  void fake_print_wrapped_variables(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t first, const f_string_t between, const f_string_static_t second, const f_string_t after) {
-
-    if (!setting) return;
-
-    f_file_stream_lock(print.to);
-
-    fl_print_format("%S'", print.to, before);
-    fl_print_format("%[%Q%]", print.to, print.notable, first, print.notable);
-    fl_print_format("'%S'", print.to, between);
-    fl_print_format("%[%Q%]", print.to, print.notable, second, print.notable);
-    fl_print_format("'%S.%r", print.to, after, f_string_eol_s);
-
-    f_file_stream_unlock(print.to);
-  }
-#endif // _di_fake_print_wrapped_variables_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
diff --git a/level_3/fake/c/main/print.h b/level_3/fake/c/main/print.h
deleted file mode 100644 (file)
index eae2aa7..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-/**
- * FLL - Level 3
- *
- * Project: UTF8
- * API Version: 0.7
- * Licenses: lgpl-2.1-or-later
- *
- * Provides print functionality.
- *
- * This is auto-included and should not need to be explicitly included.
- */
-#ifndef _fake_print_h
-#define _fake_print_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Print a message about building.
- *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
- * @param print
- *   The output structure to print to.
- * @param build_arguments
- *   (optional) The build arguments.
- * @param setting_build
- *   The build setting data.
- *
- * @return
- *   F_none on success.
- *   F_output_not on success, but no printing is performed.
- *
- * @see f_file_stream_lock()
- * @see f_file_stream_unlock()
- * @see fl_print_format()
- */
-#ifndef _di_fake_print_building_
-  extern f_status_t fake_print_building(fake_setting_t * const setting, const fl_print_t print, const f_string_statics_t * const build_arguments, fake_build_setting_t * const setting_build);
-#endif // _di_fake_print_building_
-
-/**
- * Print a message about generating skeleton.
- *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
- * @param print
- *   The output structure to print to.
- *
- * @return
- *   F_none on success.
- *   F_output_not on success, but no printing is performed.
- *
- * @see fake_print_simple()
- */
-#ifndef _di_fake_print_generating_skeleton_
-  extern f_status_t fake_print_generating_skeleton(fake_setting_t * const setting, const fl_print_t print);
-#endif // _di_fake_print_generating_skeleton_
-
-/**
- * Print help.
- *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
- * @param print
- *   The output structure to print to.
- *
- * @return
- *   F_none on success.
- *   F_output_not on success, but no printing is performed.
- *
- *   F_output_not (with error bit) if setting is NULL.
- *
- * @see f_file_stream_flush()
- * @see f_file_stream_lock()
- * @see f_file_stream_unlock()
- * @see f_print_dynamic_raw()
- * @see fl_print_format()
- * @see fll_program_print_help_header()
- * @see fll_program_print_help_option()
- * @see fll_program_print_help_option_other()
- * @see fll_program_print_help_option_standard()
- * @see fll_program_print_help_usage()
- */
-#ifndef _di_fake_print_help_
-  extern f_status_t fake_print_help(fake_setting_t * const setting, const fl_print_t print);
-#endif // _di_fake_print_help_
-
-/**
- * Print simple message.
- *
- * This is primarily used by numerous print functions to reduce code.
- * This is not used for any print functions that has complex format structures.
- *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
- * @param print
- *   The output structure to print to.
- * @param message
- *   The message to print.
- *
- * @see fll_print_format()
- */
-#ifndef _di_fake_print_simple_
-  extern void fake_print_simple(fake_setting_t * const setting, const fl_print_t print, const f_string_t message);
-#endif // _di_fake_print_simple_
-
-/**
- * Print simple verbose message with a value.
- *
- * This is primarily used by numerous print functions to reduce code.
- * This is not used for any print functions that has complex format structures.
- *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
- * @param print
- *   The output structure to print to.
- * @param message
- *   The message to print.
- * @param variable
- *   The string representing the variable.
- *
- * @see fll_print_format()
- */
-#ifndef _di_fake_print_simple_variable_
-  extern void fake_print_simple_variable(fake_setting_t * const setting, const fl_print_t print, const f_string_t message, const f_string_static_t variable);
-#endif // _di_fake_print_simple_variable_
-
-/**
- * Print wrapped message with a value.
- *
- * This is primarily used by numerous print functions to reduce code.
- * This is not used for any print functions that has complex format structures.
- *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
- * @param print
- *   The output structure to print to.
- * @param before
- *   The string being printed before the variable.
- *   Likely should have a space added at the end of the string.
- *   Set to NULL to disable.
- * @param variable
- *   The string representing the variable.
- * @param after
- *   The string being printed after the variable.
- *   Likely should have a space added at the start of the string.
- *   Set to NULL to disable.
- *
- * @see fll_print_format()
- */
-#ifndef _di_fake_print_wrapped_variable_
-  extern void fake_print_wrapped_variable(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t variable, const f_string_t after);
-#endif // _di_fake_print_wrapped_variable_
-
-/**
- * Print a wrapped message with a before string, a middle strng, an after string, and two string variables.
- *
- * This is primarily used by numerous print functions to reduce code.
- * This is not used for any print functions that has complex format structures.
- *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
- * @param print
- *   The output structure to print to.
- * @param before
- *   The string being printed before the variable.
- *   Likely should have a space added at the end of the string.
- * @param first
- *   The string representing the first variable.
- * @param between
- *   The string being printed before the variable.
- *   Likely should have a space added at the start and end of the string.
- * @param second
- *   The string representing the second variable.
- * @param after
- *   The string being printed after the variable.
- *   Likely should have a space added at the start of the string.
- *
- * @see f_file_stream_lock()
- * @see f_file_stream_unlock()
- * @see fl_print_format()
- */
-#ifndef _di_fake_print_wrapped_variables_
-  extern void fake_print_wrapped_variables(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t first, const f_string_t between, const f_string_static_t second, const f_string_t after);
-#endif // _di_fake_print_wrapped_variables_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // _fake_print_h
diff --git a/level_3/fake/c/main/print/common.c b/level_3/fake/c/main/print/common.c
new file mode 100644 (file)
index 0000000..ae6ef1a
--- /dev/null
@@ -0,0 +1,53 @@
+#include "../fake.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fake_print_common_simple_
+  void fake_print_common_simple(fl_print_t * const print, const f_string_t message) {
+
+    if (!print) return;
+
+    fll_print_format("%S.%r", print->to, message, f_string_eol_s);
+  }
+#endif // _di_fake_print_common_simple_
+
+#ifndef _di_fake_print_common_simple_variable_
+  void fake_print_common_simple_variable(fl_print_t * const print, const f_string_t message, const f_string_static_t variable) {
+
+    if (!print) return;
+
+    fll_print_format("%S'%[%Q%]'.%r", print->to, message, print->set->notable, variable, print->set->notable, f_string_eol_s);
+  }
+#endif // _di_fake_print_common_simple_variable_
+
+#ifndef _di_fake_print_common_wrapped_variable_
+  void fake_print_common_wrapped_variable(fl_print_t * const print, const f_string_t before, const f_string_static_t variable, const f_string_t after) {
+
+    if (!print) return;
+
+    fll_print_format("%S'%[%Q%]'%S.%r", print->to, before, print->set->notable, variable, print->set->notable, after, f_string_eol_s);
+  }
+#endif // _di_fake_print_common_wrapped_variable_
+
+#ifndef _di_fake_print_common_wrapped_variables_
+  void fake_print_common_wrapped_variables(fl_print_t * const print, const f_string_t before, const f_string_static_t first, const f_string_t between, const f_string_static_t second, const f_string_t after) {
+
+    if (!print) return;
+
+    f_file_stream_lock(print->to);
+
+    fl_print_format("%S'", print->to, before);
+    fl_print_format("%[%Q%]", print->to, print->notable, first, print->notable);
+    fl_print_format("'%S'", print->to, between);
+    fl_print_format("%[%Q%]", print->to, print->notable, second, print->notable);
+    fl_print_format("'%S.%r", print->to, after, f_string_eol_s);
+
+    f_file_stream_unlock(print->to);
+  }
+#endif // _di_fake_print_common_wrapped_variables_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_3/fake/c/main/print/common.h b/level_3/fake/c/main/print/common.h
new file mode 100644 (file)
index 0000000..2214b54
--- /dev/null
@@ -0,0 +1,130 @@
+/**
+ * FLL - Level 3
+ *
+ * Project: Featureless Make
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Provides print common functionality.
+ *
+ * This is auto-included and should not need to be explicitly included.
+ */
+#ifndef _fake_print_common_h
+#define _fake_print_common_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Print simple message.
+ *
+ * This is primarily used by numerous print functions to reduce code.
+ * This is not used for any print functions that has complex format structures.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ * @param message
+ *   The message to print.
+ *
+ * @see fll_print_format()
+ */
+#ifndef _di_fake_print_common_simple_
+  extern void fake_print_common_simple(fl_print_t * const print, const f_string_t message);
+#endif // _di_fake_print_common_simple_
+
+/**
+ * Print simple verbose message with a value.
+ *
+ * This is primarily used by numerous print functions to reduce code.
+ * This is not used for any print functions that has complex format structures.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ * @param message
+ *   The message to print.
+ * @param variable
+ *   The string representing the variable.
+ *
+ * @see fll_print_format()
+ */
+#ifndef _di_fake_print_common_simple_variable_
+  extern void fake_print_common_simple_variable(fl_print_t * const print, const f_string_t message, const f_string_static_t variable);
+#endif // _di_fake_print_common_simple_variable_
+
+/**
+ * Print wrapped message with a value.
+ *
+ * This is primarily used by numerous print functions to reduce code.
+ * This is not used for any print functions that has complex format structures.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ * @param before
+ *   The string being printed before the variable.
+ *   Likely should have a space added at the end of the string.
+ *   Set to NULL to disable.
+ * @param variable
+ *   The string representing the variable.
+ * @param after
+ *   The string being printed after the variable.
+ *   Likely should have a space added at the start of the string.
+ *   Set to NULL to disable.
+ *
+ * @see fll_print_format()
+ */
+#ifndef _di_fake_print_common_wrapped_variable_
+  extern void fake_print_common_wrapped_variable(fl_print_t * const print, const f_string_t before, const f_string_static_t variable, const f_string_t after);
+#endif // _di_fake_print_common_wrapped_variable_
+
+/**
+ * Print a wrapped message with a before string, a middle strng, an after string, and two string variables.
+ *
+ * This is primarily used by numerous print functions to reduce code.
+ * This is not used for any print functions that has complex format structures.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ * @param before
+ *   The string being printed before the variable.
+ *   Likely should have a space added at the end of the string.
+ * @param first
+ *   The string representing the first variable.
+ * @param between
+ *   The string being printed before the variable.
+ *   Likely should have a space added at the start and end of the string.
+ * @param second
+ *   The string representing the second variable.
+ * @param after
+ *   The string being printed after the variable.
+ *   Likely should have a space added at the start of the string.
+ *
+ * @see f_file_stream_lock()
+ * @see f_file_stream_unlock()
+ * @see fl_print_format()
+ */
+#ifndef _di_fake_print_common_wrapped_variables_
+  extern void fake_print_common_wrapped_variables(fl_print_t * const print, const f_string_t before, const f_string_static_t first, const f_string_t between, const f_string_static_t second, const f_string_t after);
+#endif // _di_fake_print_common_wrapped_variables_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _fake_print_common_h
index 9148d5d1b5c538d693675fb7baae5bad7ef7cab7..ae288334779fde7b3e9ae55b90f7cd17e7a568b5 100644 (file)
@@ -5,133 +5,152 @@ extern "C" {
 #endif
 
 #ifndef _di_fake_print_context_important_simple_
-  void fake_print_context_important_simple(fake_setting_t * const setting, const fl_print_t print, const f_string_t message) {
+  void fake_print_context_important_simple(fl_print_t * const print, const f_string_t message) {
 
-    const fl_print_t custom = macro_fl_print_t_initialize(print.to, print.verbosity, 0, f_string_empty_s, f_string_empty_s, print.set->important, print.set->notable, print.set, 0);
+    if (!print) return;
 
-    fake_print_context_simple(setting, custom, message);
+    // Swap the color context, whatever it may be, with the important context.
+    fl_print_t important = macro_fl_print_t_initialize(print->to, print->verbosity, print->flag, f_string_empty_s, f_string_empty_s, print->set->important, print->set->notable, print->set, print->custom);
+
+    fake_print_context_simple(&important, message);
+
+    print->flag = important.flag;
   }
 #endif // _di_fake_print_context_important_simple_
 
+#ifndef _di_fake_print_context_important_simple_variable_
+  void fake_print_context_important_simple_variable(fl_print_t * const print, const f_string_t before, const f_string_static_t variable, const f_string_t after) {
+
+    if (!print) return;
+
+    // Swap the color context, whatever it may be, with the important context.
+    fl_print_t important = macro_fl_print_t_initialize(print->to, print->verbosity, print->flag, f_string_empty_s, f_string_empty_s, print->set->important, print->set->notable, print->set, print->custom);
+
+    fake_print_context_simple_variable(&important, before, variable, after);
+
+    print->flag = important.flag;
+  }
+#endif // _di_fake_print_context_important_simple_variable_
+
 #ifndef _di_fake_print_context_simple_
-  void fake_print_context_simple(fake_setting_t * const setting, const fl_print_t print, const f_string_t message) {
+  void fake_print_context_simple(fl_print_t * const print, const f_string_t message) {
 
-    if (!setting) return;
+    if (!print) return;
 
-    fll_print_format("%[%Q%S.%]%r", print.to, print.context, print.prefix, message, print.context, f_string_eol_s);
+    fll_print_format("%[%Q%S.%]%r", print->to, print->context, print->prefix, message, print->context, f_string_eol_s);
   }
 #endif // _di_fake_print_context_simple_
 
 #ifndef _di_fake_print_context_simple_variable_
-  void fake_print_context_simple_variable(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t variable, const f_string_t after) {
+  void fake_print_context_simple_variable(fl_print_t * const print, const f_string_t before, const f_string_static_t variable, const f_string_t after) {
 
-    if (!setting) return;
+    if (!print) return;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%Q%S'%]", print.to, print.context, print.prefix, before, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, variable, print.notable);
-    fl_print_format("%['%S.%]%r", print.to, print.context, after, print.context, f_string_eol_s);
+    fl_print_format("%[%Q%S'%]", print->to, print->context, print->prefix, before, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, variable, print->notable);
+    fl_print_format("%['%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
   }
 #endif // _di_fake_print_context_simple_variable_
 
 #ifndef _di_fake_print_context_wrapped_number_
-  void fake_print_context_wrapped_number(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_number_unsigned_t number, const f_string_t after) {
+  void fake_print_context_wrapped_number(fl_print_t * const print, const f_string_t before, const f_number_unsigned_t number, const f_string_t after) {
 
-    if (!setting) return;
+    if (!print) return;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%Q%S'%]", print.to, print.context, print.prefix, before, print.context);
-    fl_print_format("%[%un%]", print.to, print.notable, number, print.notable);
-    fl_print_format("%['%S.%]%r", print.to, print.context, after, print.context, f_string_eol_s);
+    fl_print_format("%[%Q%S'%]", print->to, print->context, print->prefix, before, print->context);
+    fl_print_format("%[%un%]", print->to, print->notable, number, print->notable);
+    fl_print_format("%['%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
   }
 #endif // _di_fake_print_context_wrapped_number_
 
 #ifndef _di_fake_print_context_wrapped_parameter_
-  void fake_print_context_wrapped_parameter(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t symbol, const f_string_static_t name, const f_string_t after) {
+  void fake_print_context_wrapped_parameter(fl_print_t * const print, const f_string_t before, const f_string_static_t symbol, const f_string_static_t name, const f_string_t after) {
 
-    if (!setting) return;
+    if (!print) return;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%Q%S'%]", print.to, print.context, print.prefix, before, print.context);
-    fl_print_format("%[%Q%Q%]", print.to, print.notable, symbol, name, print.notable);
-    fl_print_format("%['%S.%]%r", print.to, print.context, after, print.context, f_string_eol_s);
+    fl_print_format("%[%Q%S'%]", print->to, print->context, print->prefix, before, print->context);
+    fl_print_format("%[%Q%Q%]", print->to, print->notable, symbol, name, print->notable);
+    fl_print_format("%['%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
   }
 #endif // _di_fake_print_context_wrapped_parameter_
 
 #ifndef _di_fake_print_context_wrapped_parameter_value_
-  void fake_print_context_wrapped_parameter_value(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t symbol, const f_string_static_t name, const f_string_t between, const f_string_static_t value, const f_string_t after) {
+  void fake_print_context_wrapped_parameter_value(fl_print_t * const print, const f_string_t before, const f_string_static_t symbol, const f_string_static_t name, const f_string_t between, const f_string_static_t value, const f_string_t after) {
 
-    if (!setting) return;
+    if (!print) return;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%Q%S'%]", print.to, print.context, print.prefix, before, print.context);
-    fl_print_format("%[%Q%Q%]", print.to, print.notable, symbol, name, print.notable);
-    fl_print_format("%['%S'%]%r", print.to, print.context, between, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, value, print.notable);
-    fl_print_format("%['%S.%]%r", print.to, print.context, after, print.context, f_string_eol_s);
+    fl_print_format("%[%Q%S'%]", print->to, print->context, print->prefix, before, print->context);
+    fl_print_format("%[%Q%Q%]", print->to, print->notable, symbol, name, print->notable);
+    fl_print_format("%['%S'%]%r", print->to, print->context, between, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, value, print->notable);
+    fl_print_format("%['%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
   }
 #endif // _di_fake_print_context_wrapped_parameter_value_
 
 #ifndef _di_fake_print_context_wrapped_parameters_
-  void fake_print_context_wrapped_parameters(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t symbol_1, const f_string_static_t name_1, const f_string_t between_1, const f_string_static_t symbol_2, const f_string_static_t name_2, const f_string_t between_2, const f_string_static_t symbol_3, const f_string_static_t name_3, const f_string_t after) {
+  void fake_print_context_wrapped_parameters(fl_print_t * const print, const f_string_t before, const f_string_static_t symbol_1, const f_string_static_t name_1, const f_string_t between_1, const f_string_static_t symbol_2, const f_string_static_t name_2, const f_string_t between_2, const f_string_static_t symbol_3, const f_string_static_t name_3, const f_string_t after) {
 
-    if (!setting) return;
+    if (!print) return;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%Q%S'%]", print.to, print.context, print.prefix, before, print.context);
-    fl_print_format("%[%Q%Q%]", print.to, print.notable, symbol_1, name_1, print.notable);
-    fl_print_format("%['%S'%]%r", print.to, print.context, between_1, print.context);
-    fl_print_format("%[%Q%Q%]", print.to, print.notable, symbol_2, name_2, print.notable);
-    fl_print_format("%['%S'%]%r", print.to, print.context, between_2, print.context);
-    fl_print_format("%[%Q%Q%]", print.to, print.notable, symbol_3, name_3, print.notable);
-    fl_print_format("%['%S.%]%r", print.to, print.context, after, print.context, f_string_eol_s);
+    fl_print_format("%[%Q%S'%]", print->to, print->context, print->prefix, before, print->context);
+    fl_print_format("%[%Q%Q%]", print->to, print->notable, symbol_1, name_1, print->notable);
+    fl_print_format("%['%S'%]%r", print->to, print->context, between_1, print->context);
+    fl_print_format("%[%Q%Q%]", print->to, print->notable, symbol_2, name_2, print->notable);
+    fl_print_format("%['%S'%]%r", print->to, print->context, between_2, print->context);
+    fl_print_format("%[%Q%Q%]", print->to, print->notable, symbol_3, name_3, print->notable);
+    fl_print_format("%['%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
   }
 #endif // _di_fake_print_context_wrapped_parameters_
 
 #ifndef _di_fake_print_context_wrapped_variable_
-  void fake_print_context_wrapped_variable(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t variable, const f_string_t after) {
+  void fake_print_context_wrapped_variable(fl_print_t * const print, const f_string_t before, const f_string_static_t variable, const f_string_t after) {
 
-    if (!setting) return;
+    if (!print) return;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%Q%S'%]", print.to, print.context, print.prefix, before, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, variable, print.notable);
-    fl_print_format("%['%S.%]%r", print.to, print.context, after, print.context, f_string_eol_s);
+    fl_print_format("%[%Q%S'%]", print->to, print->context, print->prefix, before, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, variable, print->notable);
+    fl_print_format("%['%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
   }
 #endif // _di_fake_print_context_wrapped_variable_
 
 #ifndef _di_fake_print_context_wrapped_variables_
-  void fake_print_context_wrapped_variables(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t first, const f_string_t between, const f_string_static_t second, const f_string_t after) {
+  void fake_print_context_wrapped_variables(fl_print_t * const print, const f_string_t before, const f_string_static_t first, const f_string_t between, const f_string_static_t second, const f_string_t after) {
 
-    if (!setting) return;
+    if (!print) return;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%Q%S'%]", print.to, print.context, print.prefix, before, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, first, print.notable);
-    fl_print_format("%['%S'%]", print.to, print.context, between, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, second, print.notable);
-    fl_print_format("%['%S.%]%r", print.to, print.context, after, print.context, f_string_eol_s);
+    fl_print_format("%[%Q%S'%]", print->to, print->context, print->prefix, before, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, first, print->notable);
+    fl_print_format("%['%S'%]", print->to, print->context, between, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, second, print->notable);
+    fl_print_format("%['%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
   }
 #endif // _di_fake_print_context_wrapped_variables_
 
index ec5a2cb88a12861fc2cd8c5fcbdb039ddc4414ee..c3eb52784a574d5b3ac6800d640eac6b18f3dcf0 100644 (file)
@@ -22,35 +22,64 @@ extern "C" {
  * This is primarily used by numerous print functions to reduce code.
  * This is not used for any print functions that has complex format structures.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param message
  *   The string to print.
  *
  * @see fake_print_context_simple()
  */
 #ifndef _di_fake_print_context_important_simple_
-  extern void fake_print_context_important_simple(fake_setting_t * const setting, const fl_print_t print, const f_string_t message);
+  extern void fake_print_context_important_simple(fl_print_t * const print, const f_string_t message);
 #endif // _di_fake_print_context_important_simple_
 
 /**
- * Print a simple context message with prefix and a single string message.
+ * Print a variable context message with a before string, an after string, and a string variable with context set to important but without prefix and suffix.
  *
  * This is primarily used by numerous print functions to reduce code.
  * This is not used for any print functions that has complex format structures.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ * @param before
+ *   The string being printed before the variable.
+ *   Likely should have a space added at the end of the string.
+ *   Set to NULL to disable.
+ * @param variable
+ *   The string representing the variable.
+ * @param after
+ *   The string being printed after the variable.
+ *   Likely should have a space added at the start of the string.
+ *   Set to NULL to disable.
+ *
+ * @see f_file_stream_lock()
+ * @see f_file_stream_unlock()
+ * @see fl_print_format()
+ */
+#ifndef _di_fake_print_context_important_simple_variable_
+  extern void fake_print_context_important_simple_variable(fl_print_t * const print, const f_string_t before, const f_string_static_t variable, const f_string_t after);
+#endif // _di_fake_print_context_important_simple_variable_
+
+/**
+ * Print a simple context message with prefix and a single string message.
+ *
+ * This is primarily used by numerous print functions to reduce code.
+ * This is not used for any print functions that has complex format structures.
  *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param message
  *   The string to print.
  *
@@ -59,7 +88,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_context_simple_
-  extern void fake_print_context_simple(fake_setting_t * const setting, const fl_print_t print, const f_string_t message);
+  extern void fake_print_context_simple(fl_print_t * const print, const f_string_t message);
 #endif // _di_fake_print_context_simple_
 
 /**
@@ -68,13 +97,12 @@ extern "C" {
  * This is primarily used by numerous print functions to reduce code.
  * This is not used for any print functions that has complex format structures.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param before
  *   The string being printed before the variable.
  *   Likely should have a space added at the end of the string.
@@ -91,7 +119,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_context_simple_variable_
-  extern void fake_print_context_simple_variable(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t variable, const f_string_t after);
+  extern void fake_print_context_simple_variable(fl_print_t * const print, const f_string_t before, const f_string_static_t variable, const f_string_t after);
 #endif // _di_fake_print_context_simple_variable_
 
 /**
@@ -100,13 +128,12 @@ extern "C" {
  * This is primarily used by numerous print functions to reduce code.
  * This is not used for any print functions that has complex format structures.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param before
  *   The string being printed before the variable.
  *   Likely should have a space added at the end of the string.
@@ -123,7 +150,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_context_wrapped_number_
-  extern void fake_print_context_wrapped_number(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_number_unsigned_t number, const f_string_t after);
+  extern void fake_print_context_wrapped_number(fl_print_t * const print, const f_string_t before, const f_number_unsigned_t number, const f_string_t after);
 #endif // _di_fake_print_context_wrapped_number_
 
 /**
@@ -132,13 +159,12 @@ extern "C" {
  * This is primarily used by numerous print functions to reduce code.
  * This is not used for any print functions that has complex format structures.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param before
  *   The string being printed before the variable.
  *   Likely should have a space added at the end of the string.
@@ -158,7 +184,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_context_wrapped_parameter_
-  extern void fake_print_context_wrapped_parameter(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t symbol, const f_string_static_t name, const f_string_t after);
+  extern void fake_print_context_wrapped_parameter(fl_print_t * const print, const f_string_t before, const f_string_static_t symbol, const f_string_static_t name, const f_string_t after);
 #endif // _di_fake_print_context_wrapped_parameter_
 
 /**
@@ -167,13 +193,12 @@ extern "C" {
  * This is primarily used by numerous print functions to reduce code.
  * This is not used for any print functions that has complex format structures.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param before
  *   The string being printed before the variable.
  *   Likely should have a space added at the end of the string.
@@ -197,7 +222,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_context_wrapped_parameter_value_
-  extern void fake_print_context_wrapped_parameter_value(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t symbol, const f_string_static_t name, const f_string_t between, const f_string_static_t value, const f_string_t after);
+  extern void fake_print_context_wrapped_parameter_value(fl_print_t * const print, const f_string_t before, const f_string_static_t symbol, const f_string_static_t name, const f_string_t between, const f_string_static_t value, const f_string_t after);
 #endif // _di_fake_print_context_wrapped_parameter_value_
 
 /**
@@ -206,13 +231,12 @@ extern "C" {
  * This is primarily used by numerous print functions to reduce code.
  * This is not used for any print functions that has complex format structures.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param before
  *   The string being printed before the variable.
  *   Likely should have a space added at the end of the string.
@@ -250,7 +274,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_context_wrapped_parameter_
-  extern void fake_print_context_wrapped_parameters(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t symbol_1, const f_string_static_t name_1, const f_string_t between_1, const f_string_static_t symbol_2, const f_string_static_t name_2, const f_string_t between_2, const f_string_static_t symbol_3, const f_string_static_t name_3, const f_string_t after);
+  extern void fake_print_context_wrapped_parameters(fl_print_t * const print, const f_string_t before, const f_string_static_t symbol_1, const f_string_static_t name_1, const f_string_t between_1, const f_string_static_t symbol_2, const f_string_static_t name_2, const f_string_t between_2, const f_string_static_t symbol_3, const f_string_static_t name_3, const f_string_t after);
 #endif // _di_fake_print_context_wrapped_parameter_
 
 /**
@@ -259,13 +283,12 @@ extern "C" {
  * This is primarily used by numerous print functions to reduce code.
  * This is not used for any print functions that has complex format structures.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param before
  *   The string being printed before the variable.
  *   Likely should have a space added at the end of the string.
@@ -282,7 +305,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_context_wrapped_variable_
-  extern void fake_print_context_wrapped_variable(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t variable, const f_string_t after);
+  extern void fake_print_context_wrapped_variable(fl_print_t * const print, const f_string_t before, const f_string_static_t variable, const f_string_t after);
 #endif // _di_fake_print_context_wrapped_variable_
 
 /**
@@ -291,13 +314,12 @@ extern "C" {
  * This is primarily used by numerous print functions to reduce code.
  * This is not used for any print functions that has complex format structures.
  *
- * @param setting
- *   The main program settings.
- *   (Must be of type fake_setting_t.)
- *
- *   This does not alter setting.state.status.
  * @param print
  *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param before
  *   The string being printed before the variable.
  *   Likely should have a space added at the end of the string.
@@ -317,7 +339,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_context_wrapped_variables_
-  extern void fake_print_context_wrapped_variables(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t first, const f_string_t between, const f_string_static_t second, const f_string_t after);
+  extern void fake_print_context_wrapped_variables(fl_print_t * const print, const f_string_t before, const f_string_static_t first, const f_string_t between, const f_string_static_t second, const f_string_t after);
 #endif // _di_fake_print_context_wrapped_variables_
 
 #ifdef __cplusplus
index a44e33772bb808f820450bb889725eda0a652b42..a3d232d58460baa0b25c660152d6076747229e38 100644 (file)
@@ -7,169 +7,170 @@ extern "C" {
 #ifndef _di_fake_print_error_
   f_status_t fake_print_error(fl_print_t * const print, const f_string_t function) {
 
-    if (!print) return F_status_set_error(F_output_not);
+    if (!print || !print->custom) return F_status_set_error(F_output_not);
     if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_setting_t * const setting = (fake_setting_t *) print->custom;
+    fake_main_t * const main = (fake_main_t *) print->custom;
 
-    if (setting) {
-      fll_error_print(*print, F_status_set_fine(setting->state.status), function, fll_error_file_flag_fallback_e);
-    }
+    fll_error_print(*print, F_status_set_fine(main->setting.state.status), function, fll_error_file_flag_fallback_e);
 
     return F_none;
   }
 #endif // _di_fake_print_error_
 
 #ifndef _di_fake_print_error_argument_empty_
-  f_status_t fake_print_error_argument_empty(fake_setting_t * const setting, const fl_print_t print, const f_array_length_t index) {
+  f_status_t fake_print_error_argument_empty(fl_print_t * const print, const f_array_length_t index) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity == f_console_verbosity_quiet_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not;
 
-    fake_print_context_wrapped_number(setting, print, "The ", (f_number_unsigned_t) index, " argument must not be an empty string");
+    fake_print_context_wrapped_number(print, "The ", (f_number_unsigned_t) index, " argument must not be an empty string");
 
     return F_none;
   }
 #endif // _di_fake_print_error_argument_empty_
 
 #ifndef _di_fake_print_error_build_operation_file_
-  f_status_t fake_print_error_build_operation_file(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const bool fallback) {
+  f_status_t fake_print_error_build_operation_file(fl_print_t * const print, const f_string_t function, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const bool fallback) {
+
+    if (!print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    if (!setting) return F_status_set_error(F_output_not);
+    fake_main_t * const main = (fake_main_t *) print->custom;
 
-    if (F_status_set_fine(setting->state.status) == F_file_found_not) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        f_file_stream_lock(print.to);
+    if (F_status_set_fine(main->setting.state.status) == F_file_found_not) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        f_file_stream_lock(print->to);
 
-        fl_print_format("%[%QFailed to find '%]", print.to, print.context, print.prefix, print.context);
-        fl_print_format("%[%Q%]", print.to, print.notable, source, print.notable);
-        fl_print_format("%[' ", print.to, print.context);
+        fl_print_format("%[%QFailed to find '%]", print->to, print->context, print->prefix, print->context);
+        fl_print_format("%[%Q%]", print->to, print->notable, source, print->notable);
+        fl_print_format("%[' ", print->to, print->context);
 
-        fake_print_error_build_operation_file_partial(setting, print, operation, source, destination, how);
+        fake_print_error_build_operation_file_partial(print, operation, source, destination, how);
 
-        fl_print_format(".%]%r", print.to, print.context, f_string_eol_s);
+        fl_print_format(".%]%r", print->to, print->context, f_string_eol_s);
 
-        f_file_stream_unlock(print.to);
+        f_file_stream_unlock(print->to);
       }
 
       return F_false;
     }
 
-    if (F_status_set_fine(setting->state.status) == F_parameter) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        f_file_stream_lock(print.to);
+    if (F_status_set_fine(main->setting.state.status) == F_parameter) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        f_file_stream_lock(print->to);
 
-        fl_print_format("%[%QInvalid parameter when calling '%]", print.to, print.context, print.prefix, print.context);
-        fl_print_format("%[%Q%]", print.to, print.notable, function, print.notable);
-        fl_print_format("%[() ", print.to, print.context);
+        fl_print_format("%[%QInvalid parameter when calling '%]", print->to, print->context, print->prefix, print->context);
+        fl_print_format("%[%Q%]", print->to, print->notable, function, print->notable);
+        fl_print_format("%[() ", print->to, print->context);
 
-        fake_print_error_build_operation_file_partial(setting, print, operation, source, destination, how);
+        fake_print_error_build_operation_file_partial(print, operation, source, destination, how);
 
-        fl_print_format(".%]%r", print.to, print.context, f_string_eol_s);
+        fl_print_format(".%]%r", print->to, print->context, f_string_eol_s);
 
-        f_file_stream_unlock(print.to);
+        f_file_stream_unlock(print->to);
       }
 
       return F_false;
     }
 
-    if (F_status_set_fine(setting->state.status) == F_name) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        f_file_stream_lock(print.to);
+    if (F_status_set_fine(main->setting.state.status) == F_name) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        f_file_stream_lock(print->to);
 
-        fl_print_format("%[%QInvalid name for '%]", print.to, print.context, print.prefix, print.context);
+        fl_print_format("%[%QInvalid name for '%]", print->to, print->context, print->prefix, print->context);
 
         if (source.used) {
-          fl_print_format("%[%Q%]", print.to, print.notable, source, print.notable);
+          fl_print_format("%[%Q%]", print->to, print->notable, source, print->notable);
         }
 
         if (destination.used) {
-          fl_print_format("%[' or '%]", print.to, print.context, print.context);
-          fl_print_format("%[%Q%]", print.to, print.notable, destination, print.notable);
+          fl_print_format("%[' or '%]", print->to, print->context, print->context);
+          fl_print_format("%[%Q%]", print->to, print->notable, destination, print->notable);
         }
 
-        fl_print_format("%['.%]%r", print.to, print.context, print.context, f_string_eol_s);
+        fl_print_format("%['.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-        f_file_stream_unlock(print.to);
+        f_file_stream_unlock(print->to);
       }
 
       return F_false;
     }
 
-    if (F_status_set_fine(setting->state.status) == F_memory_not) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        fake_print_error_build_operation_file_full(setting, print, "Unable to allocate memory, ", operation, source, destination, how, 0);
+    if (F_status_set_fine(main->setting.state.status) == F_memory_not) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        fake_print_error_build_operation_file_full(print, "Unable to allocate memory, ", operation, source, destination, how, 0);
       }
 
       return F_false;
     }
 
-    if (F_status_set_fine(setting->state.status) == F_number_overflow) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        fake_print_error_build_operation_file_full(setting, print, "Overflow ", operation, source, destination, how, 0);
+    if (F_status_set_fine(main->setting.state.status) == F_number_overflow) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        fake_print_error_build_operation_file_full(print, "Overflow ", operation, source, destination, how, 0);
       }
 
       return F_false;
     }
 
-    if (F_status_set_fine(setting->state.status) == F_directory) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        fake_print_error_build_operation_file_full(setting, print, "Invalid directory ", operation, source, destination, how, 0);
+    if (F_status_set_fine(main->setting.state.status) == F_directory) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        fake_print_error_build_operation_file_full(print, "Invalid directory ", operation, source, destination, how, 0);
       }
 
       return F_false;
     }
 
-    if (F_status_set_fine(setting->state.status) == F_access_denied) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        fake_print_error_build_operation_file_full(setting, print, "Access denied ", operation, source, destination, how, 0);
+    if (F_status_set_fine(main->setting.state.status) == F_access_denied) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        fake_print_error_build_operation_file_full(print, "Access denied ", operation, source, destination, how, 0);
       }
 
       return F_false;
     }
 
-    if (F_status_set_fine(setting->state.status) == F_loop) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        fake_print_error_build_operation_file_full(setting, print, "Loop ", operation, source, destination, how, 0);
+    if (F_status_set_fine(main->setting.state.status) == F_loop) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        fake_print_error_build_operation_file_full(print, "Loop ", operation, source, destination, how, 0);
       }
 
       return F_false;
     }
 
-    if (F_status_set_fine(setting->state.status) == F_prohibited) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        fake_print_error_build_operation_file_full(setting, print, "Prohibited by system ", operation, source, destination, how, 0);
+    if (F_status_set_fine(main->setting.state.status) == F_prohibited) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        fake_print_error_build_operation_file_full(print, "Prohibited by system ", operation, source, destination, how, 0);
       }
 
       return F_false;
     }
 
-    if (F_status_set_fine(setting->state.status) == F_directory_found_not) {
-      fake_print_error_build_operation_file_full(setting, print, "Failed ", operation, source, destination, how, "due to an invalid directory in the path");
+    if (F_status_set_fine(main->setting.state.status) == F_directory_found_not) {
+      fake_print_error_build_operation_file_full(print, "Failed ", operation, source, destination, how, "due to an invalid directory in the path");
 
       return F_false;
     }
 
-    if (F_status_set_fine(setting->state.status) == F_failure) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        fake_print_error_build_operation_file_full(setting, print, "Failed ", operation, source, destination, how, 0);
+    if (F_status_set_fine(main->setting.state.status) == F_failure) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        fake_print_error_build_operation_file_full(print, "Failed ", operation, source, destination, how, 0);
       }
 
       return F_false;
     }
 
-    if (fll_error_print(print, F_status_set_fine(setting->state.status), function, fll_error_file_flag_none_e) == F_known_not && fallback && print.verbosity > f_console_verbosity_quiet_e) {
-      f_file_stream_lock(print.to);
+    if (fll_error_print(*print, F_status_set_fine(main->setting.state.status), function, fll_error_file_flag_none_e) == F_known_not && fallback && print->verbosity > f_console_verbosity_quiet_e) {
+      f_file_stream_lock(print->to);
 
-      fl_print_format("%[UNKNOWN %Q(%]", print.to, print.context, print.prefix, print.context);
-      fl_print_format("%[%ui%]", print.to, print.notable, F_status_set_fine(setting->state.status), print.notable);
-      fl_print_format("%[) occurred ", print.to, print.context);
+      fl_print_format("%[UNKNOWN %Q(%]", print->to, print->context, print->prefix, print->context);
+      fl_print_format("%[%ui%]", print->to, print->notable, F_status_set_fine(main->setting.state.status), print->notable);
+      fl_print_format("%[) occurred ", print->to, print->context);
 
-      fake_print_error_build_operation_file_partial(setting, print, operation, source, destination, how);
+      fake_print_error_build_operation_file_partial(print, operation, source, destination, how);
 
-      fl_print_format(".%]%r", print.to, print.context, f_string_eol_s);
+      fl_print_format(".%]%r", print->to, print->context, f_string_eol_s);
 
-      f_file_stream_unlock(print.to);
+      f_file_stream_unlock(print->to);
     }
 
     return F_true;
@@ -177,207 +178,215 @@ extern "C" {
 #endif // _di_fake_print_error_build_operation_file_
 
 #ifndef _di_fake_print_error_build_operation_file_full_
-  f_status_t fake_print_error_build_operation_file_full(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const f_string_t after) {
+  f_status_t fake_print_error_build_operation_file_full(fl_print_t * const print, const f_string_t before, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const f_string_t after) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%Q%S", print.to, print.context, print.prefix, before);
+    fl_print_format("%[%Q%S", print->to, print->context, print->prefix, before);
 
     if (source.used) {
-      fake_print_error_build_operation_file_partial(setting, print, operation, source, destination, how);
+      fake_print_error_build_operation_file_partial(print, operation, source, destination, how);
     }
     else {
-      fl_print_format("%[", print.to, print.context);
+      fl_print_format("%[", print->to, print->context);
     }
 
-    fl_print_format("%S.%]%r", print.to, print.context, after, print.context, f_string_eol_s);
+    fl_print_format("%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_print_error_build_operation_file_full_
 
 #ifndef _di_fake_print_error_build_operation_file_partial_
-  void fake_print_error_build_operation_file_partial(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how) {
+  void fake_print_error_build_operation_file_partial(fl_print_t * const print, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how) {
 
-    if (!setting) return;
-    if (print.verbosity < f_console_verbosity_error_e || !source.used) return;
+    if (print->verbosity < f_console_verbosity_error_e || !source.used) return;
 
-    fl_print_format("%[while trying to %Q '%]", print.to, print.context, operation, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, source, print.notable);
+    fl_print_format("%[while trying to %Q '%]", print->to, print->context, operation, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, source, print->notable);
 
     if (destination.used) {
-      fl_print_format("%[' %Q '%]", print.to, print.context, how, print.context);
-      fl_print_format("%[%Q%]", print.to, print.notable, destination, print.notable);
+      fl_print_format("%[' %Q '%]", print->to, print->context, how, print->context);
+      fl_print_format("%[%Q%]", print->to, print->notable, destination, print->notable);
     }
 
-    fl_print_format("%['", print.to, print.context, print.context);
+    fl_print_format("%['", print->to, print->context, print->context);
   }
 #endif // _di_fake_print_error_build_operation_file_partial_
 
 #ifndef _di_fake_print_error_directory_create_parent_missing_
-  f_status_t fake_print_error_directory_create_parent_missing(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_print_error_directory_create_parent_missing(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The directory ", path, " could not be created, a parent directory is missing or invalid");
+    fake_print_context_wrapped_variable(print, "The directory ", path, " could not be created, a parent directory is missing or invalid");
 
     return F_none;
   }
 #endif // _di_fake_print_error_directory_create_parent_missing_
 
 #ifndef _di_fake_print_error_execute_program_not_found_
-  f_status_t fake_print_error_execute_program_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t program) {
+  f_status_t fake_print_error_execute_program_not_found(fl_print_t * const print, const f_string_static_t program) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_simple_variable(setting, print, "Failed to find program ", program, " for executing");
+    fake_print_context_simple_variable(print, "Failed to find program ", program, " for executing");
 
     return F_none;
   }
 #endif // _di_fake_print_error_execute_program_not_found_
 
 #ifndef _di_fake_print_error_failure_operation_
-  f_status_t fake_print_error_failure_operation(fake_setting_t * const setting, const fl_print_t print, const uint8_t operation) {
+  f_status_t fake_print_error_failure_operation(fl_print_t * const print, const uint8_t operation) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe operation '%]%[", print.to, print.context, print.prefix, print.context, print.notable);
+    fl_print_format("%[%QThe operation '%]%[", print->to, print->context, print->prefix, print->context, print->notable);
 
     if (operation == fake_operation_build_e) {
-      f_print_dynamic(fake_other_operation_build_s, print.to);
+      f_print_dynamic(fake_other_operation_build_s, print->to);
     }
     else if (operation == fake_operation_clean_e) {
-      f_print_dynamic(fake_other_operation_clean_s, print.to);
+      f_print_dynamic(fake_other_operation_clean_s, print->to);
     }
     else if (operation == fake_operation_make_e) {
-      f_print_dynamic(fake_other_operation_make_s, print.to);
+      f_print_dynamic(fake_other_operation_make_s, print->to);
     }
     else if (operation == fake_operation_skeleton_e) {
-      f_print_dynamic(fake_other_operation_skeleton_s, print.to);
+      f_print_dynamic(fake_other_operation_skeleton_s, print->to);
     }
 
-    fl_print_format("%]%[' failed.%]%r", print.to, print.notable, print.context, print.context, f_string_eol_s);
+    fl_print_format("%]%[' failed.%]%r", print->to, print->notable, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_print_error_failure_operation_
 
 #ifndef _di_fake_print_error_failure_script_
-  f_status_t fake_print_error_failure_script(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t script) {
+  f_status_t fake_print_error_failure_script(fl_print_t * const print, const f_string_static_t script) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "Failed to execute script ", script, "");
+    fake_print_context_wrapped_variable(print, "Failed to execute script ", script, "");
 
     return F_none;
   }
 #endif // _di_fake_print_error_failure_script_
 
 #ifndef _di_fake_print_error_fallback_
-  f_status_t fake_print_error_fallback(fake_setting_t * const setting, const fl_print_t print, const f_string_t function) {
+  f_status_t fake_print_error_fallback(fl_print_t * const print, const f_string_t function) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print || !print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    if (fll_error_print(print, F_status_set_fine(setting->state.status), function, fll_error_file_flag_none_e) == F_known_not) return F_false;
+    fake_main_t * const main = (fake_main_t *) print->custom;
+
+    if (fll_error_print(*print, F_status_set_fine(main->setting.state.status), function, fll_error_file_flag_none_e) == F_known_not) return F_false;
 
     return F_true;
   }
 #endif // _di_fake_print_error_fallback_
 
 #ifndef _di_fake_print_error_file_
-  f_status_t fake_print_error_file(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) {
+  f_status_t fake_print_error_file(fl_print_t * const print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) {
+
+    if (!print || !print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    fake_main_t * const main = (fake_main_t *) print->custom;
 
-    fll_error_file_print(print, F_status_set_fine(setting->state.status), function, fll_error_file_flag_fallback_e, name, operation, type);
+    fll_error_file_print(*print, F_status_set_fine(main->setting.state.status), function, fll_error_file_flag_fallback_e, name, operation, type);
 
     return F_none;
   }
 #endif // _di_fake_print_error_file_
 
 #ifndef _di_fake_print_error_file_create_parent_missing_
-  f_status_t fake_print_error_file_create_parent_missing(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_print_error_file_create_parent_missing(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The file ", path, " could not be created, a parent directory is missing or invalid");
+    fake_print_context_wrapped_variable(print, "The file ", path, " could not be created, a parent directory is missing or invalid");
 
     return F_none;
   }
 #endif // _di_fake_print_error_file_create_parent_missing_
 
 #ifndef _di_fake_print_error_file_simple_
-  f_status_t fake_print_error_file_simple(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) {
+  f_status_t fake_print_error_file_simple(fl_print_t * const print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) {
+
+    if (!print || !print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    fake_main_t * const main = (fake_main_t *) print->custom;
 
-    fll_error_file_print(print, F_status_set_fine(setting->state.status), function, fll_error_file_flag_simple_e, name, operation, type);
+    fll_error_file_print(*print, F_status_set_fine(main->setting.state.status), function, fll_error_file_flag_simple_e, name, operation, type);
 
     return F_none;
   }
 #endif // _di_fake_print_error_file_simple_
 
 #ifndef _di_fake_print_error_fss_
-  f_status_t fake_print_error_fss(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t path_file, const f_string_range_t range, const bool fallback) {
+  f_status_t fake_print_error_fss(fl_print_t * const print, const f_string_t function, const f_string_static_t path_file, const f_string_range_t range, const bool fallback) {
 
-    if (!setting) return F_status_set_error(F_output_not);
+    if (!print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    if (setting->state.status == F_file_found_not) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        fake_print_error_fss_message(setting, print, 0, "Occurred on invalid UTF-8 character at stop position (at ", range.start, " of the setting file ", path_file, ")");
+    fake_main_t * const main = (fake_main_t *) print->custom;
+
+    if (main->setting.state.status == F_file_found_not) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        fake_print_error_fss_message(print, 0, "Occurred on invalid UTF-8 character at stop position (at ", range.start, " of the setting file ", path_file, ")");
       }
 
       return F_false;
     }
 
-    if (setting->state.status == F_complete_not_utf || setting->state.status == F_complete_not_utf_eos || setting->state.status == F_complete_not_utf_stop) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        f_file_stream_lock(print.to);
+    if (main->setting.state.status == F_complete_not_utf || main->setting.state.status == F_complete_not_utf_eos || main->setting.state.status == F_complete_not_utf_stop) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        f_file_stream_lock(print->to);
 
-        fl_print_format("%[%QOccurred on invalid UTF-8 character at %s (at '%]", print.to, print.context, print.prefix, setting->state.status == F_complete_not_utf_eos ? "end of string" : "stop point of string", print.context);
-        fl_print_format("%[%un%]", print.to, print.notable, range.start, print.notable);
-        fl_print_format("%[ of the setting file '%]", print.to, print.context, print.context);
-        fl_print_format("%[%Q%]", print.to, print.notable, path_file, print.notable);
-        fl_print_format("%[').%]%r", print.to, print.context, print.context, f_string_eol_s);
+        fl_print_format("%[%QOccurred on invalid UTF-8 character at %s (at '%]", print->to, print->context, print->prefix, main->setting.state.status == F_complete_not_utf_eos ? "end of string" : "stop point of string", print->context);
+        fl_print_format("%[%un%]", print->to, print->notable, range.start, print->notable);
+        fl_print_format("%[ of the setting file '%]", print->to, print->context, print->context);
+        fl_print_format("%[%Q%]", print->to, print->notable, path_file, print->notable);
+        fl_print_format("%[').%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-        f_file_stream_unlock(print.to);
+        f_file_stream_unlock(print->to);
       }
 
       return F_false;
     }
 
-    if (setting->state.status == F_complete_not_utf_stop) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
-        fake_print_error_fss_message(setting, print, 0, "Occurred on invalid UTF-8 character at stop point of string (at ", range.start, " of the setting file ", path_file, ")");
+    if (main->setting.state.status == F_complete_not_utf_stop) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
+        fake_print_error_fss_message(print, 0, "Occurred on invalid UTF-8 character at stop point of string (at ", range.start, " of the setting file ", path_file, ")");
       }
 
       return F_false;
     }
 
-    if (fll_error_print(print, setting->state.status, function, fll_error_file_flag_none_e) == F_known_not && fallback) {
-      if (print.verbosity > f_console_verbosity_quiet_e) {
+    if (fll_error_print(*print, main->setting.state.status, function, fll_error_file_flag_none_e) == F_known_not && fallback) {
+      if (print->verbosity > f_console_verbosity_quiet_e) {
         f_string_static_t function_s = f_string_static_t_initialize;
         function_s.string = function;
         function_s.used = strlen(function);
 
-        fake_print_error_fss_message(setting, print, "UNKNOWN ", 0, (f_number_unsigned_t) setting->state.status, ") in function ", function_s, "()");
+        fake_print_error_fss_message(print, "UNKNOWN ", 0, (f_number_unsigned_t) main->setting.state.status, ") in function ", function_s, "()");
       }
     }
 
@@ -386,145 +395,149 @@ extern "C" {
 #endif // _di_fake_print_error_fss_
 
 #ifndef _di_fake_print_error_fss_message_
-  f_status_t fake_print_error_fss_message(fake_setting_t * const setting, const fl_print_t print, const f_string_t prefix, const f_string_t before, const f_number_unsigned_t number, const f_string_t middle, const f_string_static_t variable, const f_string_t after) {
+  f_status_t fake_print_error_fss_message(fl_print_t * const print, const f_string_t prefix, const f_string_t before, const f_number_unsigned_t number, const f_string_t middle, const f_string_static_t variable, const f_string_t after) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%S%Q%S(%]", print.to, print.context, prefix, print.prefix, before, print.context);
-    fl_print_format("%[%un%]", print.to, print.notable, number, print.notable);
-    fl_print_format("%[)%S'%]", print.to, print.context, middle, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, variable, print.notable);
-    fl_print_format("%[%S.%]%r", print.to, print.context, after, print.context, f_string_eol_s);
+    fl_print_format("%[%S%Q%S(%]", print->to, print->context, prefix, print->prefix, before, print->context);
+    fl_print_format("%[%un%]", print->to, print->notable, number, print->notable);
+    fl_print_format("%[)%S'%]", print->to, print->context, middle, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, variable, print->notable);
+    fl_print_format("%[%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_print_error_fss_message_
 
 #ifndef _di_fake_print_error_group_not_found_
-  f_status_t fake_print_error_group_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t group) {
+  f_status_t fake_print_error_group_not_found(fl_print_t * const print, const f_string_static_t group) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The group ", group, " is not found");
+    fake_print_context_wrapped_variable(print, "The group ", group, " is not found");
 
     return F_none;
   }
 #endif // _di_fake_print_error_group_not_found_
 
 #ifndef _di_fake_print_error_mode_invalid_
-  f_status_t fake_print_error_mode_invalid(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t mode) {
+  f_status_t fake_print_error_mode_invalid(fl_print_t * const print, const f_string_static_t mode) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The mode ", mode, " is invalid");
+    fake_print_context_wrapped_variable(print, "The mode ", mode, " is invalid");
 
     return F_none;
   }
 #endif // _di_fake_print_error_mode_invalid_
 
 #ifndef _di_fake_print_error_number_too_large_
-  f_status_t fake_print_error_number_too_large(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t number) {
+  f_status_t fake_print_error_number_too_large(fl_print_t * const print, const f_string_static_t number) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The number ", number, " is too large");
+    fake_print_context_wrapped_variable(print, "The number ", number, " is too large");
 
     return F_none;
   }
 #endif // _di_fake_print_error_number_too_large_
 
 #ifndef _di_fake_print_error_operation_failed_
-  f_status_t fake_print_error_operation_failed(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name) {
+  f_status_t fake_print_error_operation_failed(fl_print_t * const print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name) {
+
+    if (!print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    fake_main_t * const main = (fake_main_t *) print->custom;
 
     f_array_length_t line = 1;
     f_state_t state = f_state_t_initialize;
 
-    f_fss_count_lines(buffer, operation_name.start, &line, &setting->state);
+    f_fss_count_lines(buffer, operation_name.start, &line, &main->setting.state);
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe section operation '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%/Q%]", print.to, print.notable, buffer, operation_name, print.notable);
-    fl_print_format("%[' from section '%]", print.to, print.context, print.context);
-    fl_print_format("%[%/Q%]", print.to, print.notable, buffer, section_name, print.notable);
-    fl_print_format("%[' on line%] ", print.to, print.context, print.context);
-    fl_print_format("%[%un%]", print.to, print.notable, line, print.notable);
-    fl_print_format(" %[failed.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe section operation '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%/Q%]", print->to, print->notable, buffer, operation_name, print->notable);
+    fl_print_format("%[' from section '%]", print->to, print->context, print->context);
+    fl_print_format("%[%/Q%]", print->to, print->notable, buffer, section_name, print->notable);
+    fl_print_format("%[' on line%] ", print->to, print->context, print->context);
+    fl_print_format("%[%un%]", print->to, print->notable, line, print->notable);
+    fl_print_format(" %[failed.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_print_error_operation_failed_
 
 #ifndef _di_fake_print_error_operation_link_argument_unknown_
-  f_status_t fake_print_error_operation_link_argument_unknown(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t argument) {
+  f_status_t fake_print_error_operation_link_argument_unknown(fl_print_t * const print, const f_string_static_t argument) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe argument '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, argument, print.notable);
-    fl_print_format("%[' is not not valid and may only be one of either '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_make_operation_argument_force_s, print.notable);
-    fl_print_format("%[' or '%]", print.to, print.context, print.context);
-    fl_print_format("%[%r%]", print.to, print.notable, fake_make_operation_argument_strict_s, print.notable);
-    fl_print_format("%['.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe argument '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, argument, print->notable);
+    fl_print_format("%[' is not not valid and may only be one of either '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_make_operation_argument_force_s, print->notable);
+    fl_print_format("%[' or '%]", print->to, print->context, print->context);
+    fl_print_format("%[%r%]", print->to, print->notable, fake_make_operation_argument_strict_s, print->notable);
+    fl_print_format("%['.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_print_error_operation_link_argument_unknown_
 
 #ifndef _di_fake_print_error_operation_link_point_exists_
-  f_status_t fake_print_error_operation_link_point_exists(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t argument) {
+  f_status_t fake_print_error_operation_link_point_exists(fl_print_t * const print, const f_string_static_t argument) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The point file ", argument, " already exists");
+    fake_print_context_wrapped_variable(print, "The point file ", argument, " already exists");
 
     return F_none;
   }
 #endif // _di_fake_print_error_operation_link_point_exists_
 
 #ifndef _di_fake_print_error_operation_link_target_exists_not_
-  f_status_t fake_print_error_operation_link_target_exists_not(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t argument) {
+  f_status_t fake_print_error_operation_link_target_exists_not(fl_print_t * const print, const f_string_static_t argument) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The target file ", argument, " does not exist");
+    fake_print_context_wrapped_variable(print, "The target file ", argument, " does not exist");
 
     return F_none;
   }
 #endif // _di_fake_print_error_operation_link_target_exists_not_
 
 #ifndef _di_fake_print_error_operation_path_outside_
-  f_status_t fake_print_error_operation_path_outside(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t path) {
+  f_status_t fake_print_error_operation_path_outside(fl_print_t * const print, const f_string_t function, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    if (F_status_set_fine(setting->state.status) == F_false) {
-      fake_print_context_wrapped_variable(setting, print, "The path ", path, " is outside the project root");
+    fake_main_t * const main = (fake_main_t *) print->custom;
+
+    if (F_status_set_fine(main->setting.state.status) == F_false) {
+      fake_print_context_wrapped_variable(print, "The path ", path, " is outside the project root");
     }
     else {
-      fake_print_error_file(setting, print, function, path, fake_common_file_path_determine_real_s, fll_error_file_type_file_e);
+      fake_print_error_file(print, function, path, fake_common_file_path_determine_real_s, fll_error_file_type_file_e);
     }
 
     return F_none;
@@ -532,29 +545,31 @@ extern "C" {
 #endif // _di_fake_print_error_operation_path_outside_
 
 #ifndef _di_fake_print_error_operation_path_stack_max_
-  f_status_t fake_print_error_operation_path_stack_max(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t path) {
+  f_status_t fake_print_error_operation_path_stack_max(fl_print_t * const print, const f_string_t function, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    if (setting->state.status == F_array_too_large) {
-      f_file_stream_lock(print.to);
+    fake_main_t * const main = (fake_main_t *) print->custom;
 
-      fl_print_format("%[%QMaximum stack size reached while processing path '%]", print.to, print.context, print.prefix, print.context);
-      fl_print_format("%[%Q%]", print.to, print.notable, path, print.notable);
-      fl_print_format("%['", print.to, print.context);
+    if (main->setting.state.status == F_array_too_large) {
+      f_file_stream_lock(print->to);
+
+      fl_print_format("%[%QMaximum stack size reached while processing path '%]", print->to, print->context, print->prefix, print->context);
+      fl_print_format("%[%Q%]", print->to, print->notable, path, print->notable);
+      fl_print_format("%['", print->to, print->context);
 
       if (function) {
-        fl_print_format(" while calling%] %[%S%]", print.to, print.context, print.notable, function, print.notable);
-        fl_print_format("%[()", print.to, print.context);
+        fl_print_format(" while calling%] %[%S%]", print->to, print->context, print->notable, function, print->notable);
+        fl_print_format("%[()", print->to, print->context);
       }
 
-      fl_print_format(".%]%r", print.to, print.context, f_string_eol_s);
+      fl_print_format(".%]%r", print->to, print->context, f_string_eol_s);
 
-      f_file_stream_unlock(print.to);
+      f_file_stream_unlock(print->to);
     }
     else {
-      fake_print_error_file(setting, print, function, path, fake_common_file_path_change_to_s, fll_error_file_type_directory_e);
+      fake_print_error_file(print, function, path, fake_common_file_path_change_to_s, fll_error_file_type_directory_e);
     }
 
     return F_none;
@@ -562,160 +577,164 @@ extern "C" {
 #endif // _di_fake_print_error_operation_path_stack_max_
 
 #ifndef _di_fake_print_error_operation_stack_max_
-  f_status_t fake_print_error_operation_stack_max(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name, const f_array_length_t stack_max) {
+  f_status_t fake_print_error_operation_stack_max(fl_print_t * const print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name, const f_array_length_t stack_max) {
+
+    if (!print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    fake_main_t * const main = (fake_main_t *) print->custom;
 
     f_array_length_t line = 1;
     f_state_t state = f_state_t_initialize;
 
-    f_fss_count_lines(buffer, operation_name.start, &line, &setting->state);
+    f_fss_count_lines(buffer, operation_name.start, &line, &main->setting.state);
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe section operation '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%/Q%]", print.to, print.notable, buffer, operation_name, print.notable);
-    fl_print_format("%[' from section '%]", print.to, print.context, buffer, print.context);
-    fl_print_format("%[%/Q%]", print.to, print.notable, buffer, section_name, print.notable);
-    fl_print_format("%[' on line%] ", print.to, print.context, print.context);
-    fl_print_format("%[%ul%]", print.to, print.notable, line, print.notable);
-    fl_print_format("%[' cannot be processed because the max stack depth of%] ", print.to, print.context, print.context);
-    fl_print_format("%[%ul%]", print.to, print.notable, stack_max, print.notable);
-    fl_print_format(" %[has been reached.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe section operation '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%/Q%]", print->to, print->notable, buffer, operation_name, print->notable);
+    fl_print_format("%[' from section '%]", print->to, print->context, buffer, print->context);
+    fl_print_format("%[%/Q%]", print->to, print->notable, buffer, section_name, print->notable);
+    fl_print_format("%[' on line%] ", print->to, print->context, print->context);
+    fl_print_format("%[%ul%]", print->to, print->notable, line, print->notable);
+    fl_print_format("%[' cannot be processed because the max stack depth of%] ", print->to, print->context, print->context);
+    fl_print_format("%[%ul%]", print->to, print->notable, stack_max, print->notable);
+    fl_print_format(" %[has been reached.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_print_error_operation_stack_max_
 
 #ifndef _di_fake_print_error_operation_unknown_
-  f_status_t fake_print_error_operation_unknown(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name) {
+  f_status_t fake_print_error_operation_unknown(fl_print_t * const print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
+
+    fake_main_t * const main = (fake_main_t *) print->custom;
 
     f_array_length_t line = 1;
     f_state_t state = f_state_t_initialize;
 
-    f_fss_count_lines(buffer, operation_name.start, &line, &setting->state);
+    f_fss_count_lines(buffer, operation_name.start, &line, &main->setting.state);
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe section operation '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%/Q%]", print.to, print.notable, buffer, operation_name, print.notable);
-    fl_print_format("%[' from section '%]", print.to, print.context, buffer, print.context);
-    fl_print_format("%[%/Q%]", print.to, print.notable, buffer, section_name, print.notable);
-    fl_print_format("%[' on line%] ", print.to, print.context, print.context);
-    fl_print_format("%[%ul%]", print.to, print.notable, line, print.notable);
-    fl_print_format(" %[is not a known operation name.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe section operation '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%/Q%]", print->to, print->notable, buffer, operation_name, print->notable);
+    fl_print_format("%[' from section '%]", print->to, print->context, buffer, print->context);
+    fl_print_format("%[%/Q%]", print->to, print->notable, buffer, section_name, print->notable);
+    fl_print_format("%[' on line%] ", print->to, print->context, print->context);
+    fl_print_format("%[%ul%]", print->to, print->notable, line, print->notable);
+    fl_print_format(" %[is not a known operation name.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_print_error_operation_unknown_
 
 #ifndef _di_fake_print_error_parameter_not_empty_
-  f_status_t fake_print_error_parameter_not_empty(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value) {
+  f_status_t fake_print_error_parameter_not_empty(fl_print_t * const print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity == f_console_verbosity_quiet_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not;
 
-    fake_print_context_wrapped_parameter(setting, print, "The ", symbol, name, " parameter must not be empty and must not contain only white space");
+    fake_print_context_wrapped_parameter(print, "The ", symbol, name, " parameter must not be empty and must not contain only white space");
 
     return F_none;
   }
 #endif // _di_fake_print_error_parameter_not_empty_
 
 #ifndef _di_fake_print_error_parameter_directory_not_found_path_
-  f_status_t fake_print_error_parameter_directory_not_found_path(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value) {
+  f_status_t fake_print_error_parameter_directory_not_found_path(fl_print_t * const print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity == f_console_verbosity_quiet_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not;
 
-    fake_print_context_wrapped_parameter_value(setting, print, "The value of the directory parameter ", symbol, name, " has a path of ", value, " that is not found.");
+    fake_print_context_wrapped_parameter_value(print, "The value of the directory parameter ", symbol, name, " has a path of ", value, " that is not found.");
 
     return F_none;
   }
 #endif // _di_fake_print_error_parameter_directory_not_found_path_
 
 #ifndef _di_fake_print_error_parameter_not_word_
-  f_status_t fake_print_error_parameter_not_word(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value) {
+  f_status_t fake_print_error_parameter_not_word(fl_print_t * const print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity == f_console_verbosity_quiet_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity == f_console_verbosity_quiet_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[%QThe '%]", print.to, print.context, print.prefix, print.context);
-    fl_print_format("%[%Q%Q%]", print.to, print.notable, symbol, name, print.notable);
-    fl_print_format("%[' parameter value '%]", print.to, print.context, print.context);
-    fl_print_format("%[%Q%]", print.to, print.notable, value, print.notable);
-    fl_print_format("%[' contains non-word, non-dash, and non-plus characters.%]%r", print.to, print.context, print.context, f_string_eol_s);
+    fl_print_format("%[%QThe '%]", print->to, print->context, print->prefix, print->context);
+    fl_print_format("%[%Q%Q%]", print->to, print->notable, symbol, name, print->notable);
+    fl_print_format("%[' parameter value '%]", print->to, print->context, print->context);
+    fl_print_format("%[%Q%]", print->to, print->notable, value, print->notable);
+    fl_print_format("%[' contains non-word, non-dash, and non-plus characters.%]%r", print->to, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_unlock(print.to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_print_error_parameter_not_word_
 
 #ifndef _di_fake_print_error_parameter_operation_not_with_
-  f_status_t fake_print_error_parameter_operation_not_with(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t operation_1, const f_string_static_t operation_2) {
+  f_status_t fake_print_error_parameter_operation_not_with(fl_print_t * const print, const f_string_static_t operation_1, const f_string_static_t operation_2) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variables(setting, print, "The operation ", operation_1, " cannot be specified with the operation ", operation_2, 0);
+    fake_print_context_wrapped_variables(print, "The operation ", operation_1, " cannot be specified with the operation ", operation_2, 0);
 
     return F_none;
   }
 #endif // _di_fake_print_error_parameter_operation_not_with_
 
 #ifndef _di_fake_print_error_parameter_too_many_
-  f_status_t fake_print_error_parameter_too_many(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t symbol, const f_string_static_t parameter) {
+  f_status_t fake_print_error_parameter_too_many(fl_print_t * const print, const f_string_static_t symbol, const f_string_static_t parameter) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_parameter(setting, print, "The parameter ", symbol, parameter, " is specified too many times");
+    fake_print_context_wrapped_parameter(print, "The parameter ", symbol, parameter, " is specified too many times");
 
     return F_none;
   }
 #endif // _di_fake_print_error_parameter_too_many_
 
 #ifndef _di_fake_print_error_requires_more_arguments_
-  f_status_t fake_print_error_requires_more_arguments(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_print_error_requires_more_arguments(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_simple(setting, print, "Requires more arguments");
+    fake_print_context_simple(print, "Requires more arguments");
 
     return F_none;
   }
 #endif // _di_fake_print_error_requires_more_arguments_
 
 #ifndef _di_fake_print_error_too_many_arguments_
-  f_status_t fake_print_error_too_many_arguments(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_print_error_too_many_arguments(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_simple(setting, print, "Has too many arguments");
+    fake_print_context_simple(print, "Has too many arguments");
 
     return F_none;
   }
 #endif // _di_fake_print_error_too_many_arguments_
 
 #ifndef _di_fake_print_error_user_not_found_
-  f_status_t fake_print_error_user_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t user) {
+  f_status_t fake_print_error_user_not_found(fl_print_t * const print, const f_string_static_t user) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_error_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The user ", user, " is not found");
+    fake_print_context_wrapped_variable(print, "The user ", user, " is not found");
 
     return F_none;
   }
index c700fc3c9c5ef586e5e51847ec95bb3ef0a493ab..7d9dbe4b73d79f47f3df40d564fcd3f24a841c88 100644 (file)
@@ -24,9 +24,9 @@ extern "C" {
  * @param print
  *   Designates the how and where to print.
  *
- *   This expects print.custom to be fake_setting_t.
+ *   This requires print.custom to be fake_main_t.
  *
- *   This does not alter print.custom.state.status.
+ *   This does not alter print.custom.setting.state.status.
  * @param function
  *   The function name.
  *
@@ -65,7 +65,7 @@ extern "C" {
  * @see fake_print_context_wrapped_number()
  */
 #ifndef _di_fake_print_error_argument_empty_
-  extern f_status_t fake_print_error_argument_empty(fake_setting_t * const setting, const fl_print_t print, const f_array_length_t index);
+  extern f_status_t fake_print_error_argument_empty(fl_print_t * const print, const f_array_length_t index);
 #endif // _di_fake_print_error_argument_empty_
 
 /**
@@ -103,7 +103,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_error_build_operation_file_
-  extern f_status_t fake_print_error_build_operation_file(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const bool fallback);
+  extern f_status_t fake_print_error_build_operation_file(fl_print_t * const print, const f_string_t function, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const bool fallback);
 #endif // _di_fake_print_error_build_operation_file_
 
 /**
@@ -146,7 +146,7 @@ extern "C" {
  * @see fake_print_error_build_operation_file_partial()
  */
 #ifndef _di_fake_print_error_build_operation_file_full_
-  extern f_status_t fake_print_error_build_operation_file_full(fake_setting_t * const setting, const fl_print_t print, const f_string_t before, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const f_string_t after);
+  extern f_status_t fake_print_error_build_operation_file_full(fl_print_t * const print, const f_string_t before, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const f_string_t after);
 #endif // _di_fake_print_error_build_operation_file_full_
 
 /**
@@ -175,7 +175,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_error_build_operation_file_partial_
-  extern void fake_print_error_build_operation_file_partial(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how);
+  extern void fake_print_error_build_operation_file_partial(fl_print_t * const print, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how);
 #endif // _di_fake_print_error_build_operation_file_partial_
 
 /**
@@ -199,7 +199,7 @@ extern "C" {
  * @see fake_print_context_wrapped_variable()
  */
 #ifndef _di_fake_print_error_file_create_parent_missing_
-  extern f_status_t fake_print_error_file_create_parent_missing(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_print_error_file_create_parent_missing(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_print_error_file_create_parent_missing_
 
 /**
@@ -225,7 +225,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_error_failure_operation_
-  extern f_status_t fake_print_error_failure_operation(fake_setting_t * const setting, const fl_print_t print, const uint8_t operation);
+  extern f_status_t fake_print_error_failure_operation(fl_print_t * const print, const uint8_t operation);
 #endif // _di_fake_print_error_failure_operation_
 
 /**
@@ -249,7 +249,7 @@ extern "C" {
  * @see fake_print_context_wrapped_variable()
  */
 #ifndef _di_fake_print_error_failure_script_
-  extern f_status_t fake_print_error_failure_script(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t script);
+  extern f_status_t fake_print_error_failure_script(fl_print_t * const print, const f_string_static_t script);
 #endif // _di_fake_print_error_failure_script_
 
 /**
@@ -274,7 +274,7 @@ extern "C" {
  * @see fll_error_file_print()
  */
 #ifndef _di_fake_print_error_fallback_
-  extern f_status_t fake_print_error_fallback(fake_setting_t * const setting, const fl_print_t print, const f_string_t function);
+  extern f_status_t fake_print_error_fallback(fl_print_t * const print, const f_string_t function);
 #endif // _di_fake_print_error_fallback_
 
 /**
@@ -302,7 +302,7 @@ extern "C" {
  * @see fll_error_file_print()
  */
 #ifndef _di_fake_print_error_file_
-  extern f_status_t fake_print_error_file(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
+  extern f_status_t fake_print_error_file(fl_print_t * const print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
 #endif // _di_fake_print_error_file_
 
 /**
@@ -326,7 +326,7 @@ extern "C" {
  * @see fake_print_context_wrapped_variable()
  */
 #ifndef _di_fake_print_error_directory_create_parent_missing_
-  extern f_status_t fake_print_error_directory_create_parent_missing(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_print_error_directory_create_parent_missing(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_print_error_directory_create_parent_missing_
 
 /**
@@ -350,7 +350,7 @@ extern "C" {
  * @see fake_print_context_simple_variable()
  */
 #ifndef _di_fake_print_error_execute_program_not_found_
-  extern f_status_t fake_print_error_execute_program_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t program);
+  extern f_status_t fake_print_error_execute_program_not_found(fl_print_t * const print, const f_string_static_t program);
 #endif // _di_fake_print_error_execute_program_not_found_
 
 /**
@@ -380,7 +380,7 @@ extern "C" {
  * @see fll_error_file_print()
  */
 #ifndef _di_fake_print_error_file_simple_
-  extern f_status_t fake_print_error_file_simple(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
+  extern f_status_t fake_print_error_file_simple(fl_print_t * const print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
 #endif // _di_fake_print_error_file_simple_
 
 /**
@@ -415,7 +415,7 @@ extern "C" {
  * @see fake_print_error_fss_message()
  */
 #ifndef _di_fake_print_error_fss_
-  extern f_status_t fake_print_error_fss(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t path_file, const f_string_range_t range, const bool fallback);
+  extern f_status_t fake_print_error_fss(fl_print_t * const print, const f_string_t function, const f_string_static_t path_file, const f_string_range_t range, const bool fallback);
 #endif // _di_fake_print_error_fss_
 
 /**
@@ -450,7 +450,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_error_fss_message_
-  extern f_status_t fake_print_error_fss_message(fake_setting_t * const setting, const fl_print_t print, const f_string_t prefix, const f_string_t before, const f_number_unsigned_t number, const f_string_t middle, const f_string_static_t variable, const f_string_t after);
+  extern f_status_t fake_print_error_fss_message(fl_print_t * const print, const f_string_t prefix, const f_string_t before, const f_number_unsigned_t number, const f_string_t middle, const f_string_static_t variable, const f_string_t after);
 #endif // _di_fake_print_error_fss_message_
 
 /**
@@ -474,7 +474,7 @@ extern "C" {
  * @see fake_print_context_wrapped_variable()
  */
 #ifndef _di_fake_print_error_group_not_found_
-  extern f_status_t fake_print_error_group_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t group);
+  extern f_status_t fake_print_error_group_not_found(fl_print_t * const print, const f_string_static_t group);
 #endif // _di_fake_print_error_group_not_found_
 
 /**
@@ -498,7 +498,7 @@ extern "C" {
  * @see fake_print_context_wrapped_variable()
  */
 #ifndef _di_fake_print_error_mode_invalid_
-  extern f_status_t fake_print_error_mode_invalid(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t mode);
+  extern f_status_t fake_print_error_mode_invalid(fl_print_t * const print, const f_string_static_t mode);
 #endif // _di_fake_print_error_mode_invalid_
 
 /**
@@ -522,7 +522,7 @@ extern "C" {
  * @see fake_print_context_wrapped_variable()
  */
 #ifndef _di_fake_print_error_number_too_large_
-  extern f_status_t fake_print_error_number_too_large(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t number);
+  extern f_status_t fake_print_error_number_too_large(fl_print_t * const print, const f_string_static_t number);
 #endif // _di_fake_print_error_number_too_large_
 
 /**
@@ -550,7 +550,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_error_operation_failed_
-  extern f_status_t fake_print_error_operation_failed(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name);
+  extern f_status_t fake_print_error_operation_failed(fl_print_t * const print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name);
 #endif // _di_fake_print_error_operation_failed_
 
 /**
@@ -574,7 +574,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_error_operation_link_argument_unknown_
-  extern f_status_t fake_print_error_operation_link_argument_unknown(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t argument);
+  extern f_status_t fake_print_error_operation_link_argument_unknown(fl_print_t * const print, const f_string_static_t argument);
 #endif // _di_fake_print_error_operation_link_argument_unknown_
 
 /**
@@ -598,7 +598,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_error_operation_link_point_exists_
-  extern f_status_t fake_print_error_operation_link_point_exists(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t argument);
+  extern f_status_t fake_print_error_operation_link_point_exists(fl_print_t * const print, const f_string_static_t argument);
 #endif // _di_fake_print_error_operation_link_point_exists_
 
 /**
@@ -621,10 +621,10 @@ extern "C" {
  * @see f_file_stream_unlock()
  * @see fl_print_format()
  *
- * @see fake_print_wrapped_variable()
+ * @see fake_print_common_wrapped_variable()
  */
 #ifndef _di_fake_print_error_operation_link_target_exists_not_
-  extern f_status_t fake_print_error_operation_link_target_exists_not(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t argument);
+  extern f_status_t fake_print_error_operation_link_target_exists_not(fl_print_t * const print, const f_string_static_t argument);
 #endif // _di_fake_print_error_operation_link_target_exists_not_
 
 /**
@@ -651,7 +651,7 @@ extern "C" {
  * @see fll_error_file_print()
  */
 #ifndef _di_fake_print_error_operation_path_outside_
-  extern f_status_t fake_print_error_operation_path_outside(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t path);
+  extern f_status_t fake_print_error_operation_path_outside(fl_print_t * const print, const f_string_t function, const f_string_static_t path);
 #endif // _fake_print_error_operation_path_outside_
 
 /**
@@ -679,7 +679,7 @@ extern "C" {
  * @see fll_error_file_print()
  */
 #ifndef _di_fake_print_error_operation_path_stack_max_
-  extern f_status_t fake_print_error_operation_path_stack_max(fake_setting_t * const setting, const fl_print_t print, const f_string_t function, const f_string_static_t path);
+  extern f_status_t fake_print_error_operation_path_stack_max(fl_print_t * const print, const f_string_t function, const f_string_static_t path);
 #endif // _di_fake_print_error_operation_path_stack_max_
 
 /**
@@ -709,7 +709,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_error_operation_stack_max_
-  extern f_status_t fake_print_error_operation_stack_max(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name, const f_array_length_t stack_max);
+  extern f_status_t fake_print_error_operation_stack_max(fl_print_t * const print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name, const f_array_length_t stack_max);
 #endif // _di_fake_print_error_operation_stack_max_
 
 /**
@@ -737,7 +737,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_error_operation_unknown_
-  extern f_status_t fake_print_error_operation_unknown(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name);
+  extern f_status_t fake_print_error_operation_unknown(fl_print_t * const print, const f_string_static_t buffer, const f_string_range_t section_name, const f_string_range_t operation_name);
 #endif // _di_fake_print_error_operation_unknown_
 
 /**
@@ -765,7 +765,7 @@ extern "C" {
  * @see fake_print_context_wrapped_parameter()
  */
 #ifndef _di_fake_print_error_parameter_not_empty_
-  extern f_status_t fake_print_error_parameter_not_empty(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value);
+  extern f_status_t fake_print_error_parameter_not_empty(fl_print_t * const print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value);
 #endif // _di_fake_print_error_parameter_not_empty_
 
 /**
@@ -793,7 +793,7 @@ extern "C" {
  * @see fake_print_context_wrapped_parameter_value()
  */
 #ifndef _di_fake_print_error_parameter_directory_not_found_path_
-  extern f_status_t fake_print_error_parameter_directory_not_found_path(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value);
+  extern f_status_t fake_print_error_parameter_directory_not_found_path(fl_print_t * const print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value);
 #endif // _di_fake_print_error_parameter_directory_not_found_path_
 
 /**
@@ -823,7 +823,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_error_parameter_not_word_
-  extern f_status_t fake_print_error_parameter_not_word(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value);
+  extern f_status_t fake_print_error_parameter_not_word(fl_print_t * const print, const f_string_static_t symbol, const f_string_static_t name, const f_string_static_t value);
 #endif // _di_fake_print_error_parameter_not_word_
 
 /**
@@ -849,7 +849,7 @@ extern "C" {
  * @see fake_print_context_wrapped_variables()
  */
 #ifndef _di_fake_print_error_parameter_operation_not_with_
-  extern f_status_t fake_print_error_parameter_operation_not_with(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t operation_1, const f_string_static_t operation_2);
+  extern f_status_t fake_print_error_parameter_operation_not_with(fl_print_t * const print, const f_string_static_t operation_1, const f_string_static_t operation_2);
 #endif // _di_fake_print_error_parameter_operation_not_with_
 
 /**
@@ -869,7 +869,7 @@ extern "C" {
  * @see fake_print_context_wrapped_parameter()
  */
 #ifndef _di_fake_print_error_parameter_too_many_
-  extern f_status_t fake_print_error_parameter_too_many(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t symbol, const f_string_static_t parameter);
+  extern f_status_t fake_print_error_parameter_too_many(fl_print_t * const print, const f_string_static_t symbol, const f_string_static_t parameter);
 #endif // _di_fake_print_error_parameter_too_many_
 
 /**
@@ -887,7 +887,7 @@ extern "C" {
  * @see fake_print_context_simple()
  */
 #ifndef _di_fake_print_error_requires_more_arguments_
-  extern f_status_t fake_print_error_requires_more_arguments(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_print_error_requires_more_arguments(fl_print_t * const print);
 #endif // _di_fake_print_error_requires_more_arguments_
 
 /**
@@ -905,7 +905,7 @@ extern "C" {
  * @see fake_print_context_simple()
  */
 #ifndef _di_fake_print_error_too_many_arguments_
-  extern f_status_t fake_print_error_too_many_arguments(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_print_error_too_many_arguments(fl_print_t * const print);
 #endif // _di_fake_print_error_too_many_arguments_
 
 /**
@@ -929,7 +929,7 @@ extern "C" {
  * @see fake_print_context_wrapped_variable()
  */
 #ifndef _di_fake_print_error_user_not_found_
-  extern f_status_t fake_print_error_user_not_found(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t user);
+  extern f_status_t fake_print_error_user_not_found(fl_print_t * const print, const f_string_static_t user);
 #endif // _di_fake_print_error_user_not_found_
 
 #ifdef __cplusplus
diff --git a/level_3/fake/c/main/print/message.c b/level_3/fake/c/main/print/message.c
new file mode 100644 (file)
index 0000000..272a87e
--- /dev/null
@@ -0,0 +1,163 @@
+#include "../fake.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_fake_print_message_building_
+  f_status_t fake_print_message_building(fl_print_t * const print, const f_string_statics_t * const build_arguments, fake_build_setting_t * const setting_build) {
+
+    if (!print || !print->custom || !setting_build) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
+
+    fake_main_t * const main = (fake_main_t *) print->custom;
+
+    f_file_stream_lock(print->to);
+
+    fl_print_format("%r%[Building%] ", print->to, f_string_eol_s, print->set->important, print->set->important);
+    fl_print_format("%[%Q%]", print->to, print->set->notable, setting_build->build_name, print->set->notable);
+    fl_print_format("%[ using '%]", print->to, print->set->important, print->set->important);
+    fl_print_format("%[%Q%]", print->to, print->set->notable, main->setting.settings, print->set->notable);
+
+    fl_print_format("%[' with modes '%]", print->to, print->set->important, print->set->important);
+
+    f_string_statics_t modes_custom = f_string_statics_t_initialize;
+    modes_custom.used = build_arguments && build_arguments->used > 1 ? build_arguments->used - 1 : 0;
+    modes_custom.size = 0;
+
+    f_string_static_t modes_custom_array[modes_custom.used];
+    modes_custom.array = modes_custom_array;
+
+    for (f_array_length_t i = 0; i < modes_custom.used; ++i) {
+      modes_custom.array[i] = build_arguments->array[i + 1];
+    } // for
+
+    // Custom modes are always used if provided, otherwise if any mode is specified, the entire defaults is replaced.
+    const f_string_statics_t * const modes = modes_custom.used
+      ? &modes_custom
+      : main->setting.modes.used
+        ? &main->setting.modes
+        : &setting_build->modes_default;
+
+    for (f_array_length_t i = 0; i < modes->used; ) {
+
+      fl_print_format("%[%Q%]", print->to, print->set->notable, modes->array[i], print->set->notable);
+
+      if (++i < modes->used) {
+        fl_print_format("%[', '%]", print->to, print->set->important, print->set->important);
+      }
+    } // for
+
+    fl_print_format("%['.%]%r", print->to, print->set->important, print->set->important, f_string_eol_s);
+
+    f_file_stream_unlock(print->to);
+
+    return F_none;
+  }
+#endif // _di_fake_print_message_building_
+
+#ifndef _di_fake_print_message_delete_all_files_
+  f_status_t fake_print_message_delete_all_files(fl_print_t * const print) {
+
+    if (!print || !print->custom) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
+
+    fake_main_t * const main = (fake_main_t *) print->custom;
+
+    fake_print_context_important_simple_variable(print, "Deleting all files within build directory ", main->setting.build, 0);
+
+    return F_none;
+  }
+#endif // _di_fake_print_message_delete_all_files_
+
+#ifndef _di_fake_print_message_generating_skeleton_
+  f_status_t fake_print_message_generating_skeleton(fl_print_t * const print) {
+
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
+
+    fake_print_common_simple(print, "Generating skeleton structure");
+
+    return F_none;
+  }
+#endif // _di_fake_print_message_generating_skeleton_
+
+#ifndef _di_fake_print_message_help_
+  f_status_t fake_print_message_help(fl_print_t * const print) {
+
+    if (!print) return F_status_set_error(F_output_not);
+
+    f_file_stream_lock(print->to);
+
+    fll_program_print_help_header(*print, fake_program_name_long_s, fake_program_version_s);
+
+    fll_program_print_help_option_standard(*print);
+
+    f_print_dynamic_raw(f_string_eol_s, print->to);
+
+    fll_program_print_help_option(*print, fake_short_define_s, fake_long_define_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "  Append an additional define after defines from settings file.");
+    fll_program_print_help_option(*print, fake_short_fakefile_s, fake_long_fakefile_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Use this fakefile.");
+    fll_program_print_help_option(*print, fake_short_mode_s, fake_long_mode_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "    Use this mode when processing the build settings.");
+    fll_program_print_help_option(*print, fake_short_process_s, fake_long_process_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, " Process name for storing build states.");
+    fll_program_print_help_option(*print, fake_short_settings_s, fake_long_settings_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Use this settings file.");
+
+    f_print_dynamic_raw(f_string_eol_s, print->to);
+
+    fll_program_print_help_option(*print, fake_short_build_s, fake_long_build_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "    Specify a custom build directory.");
+    fll_program_print_help_option(*print, fake_short_data_s, fake_long_data_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "     Specify a custom path to the data files.");
+    fll_program_print_help_option(*print, fake_short_documents_s, fake_long_documents_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "Specify a custom path to the documents files.");
+    fll_program_print_help_option(*print, fake_short_licenses_s, fake_long_licenses_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, " Specify a custom path to the licenses files.");
+    fll_program_print_help_option(*print, fake_short_sources_s, fake_long_sources_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "  Specify a custom path to the source files.");
+    fll_program_print_help_option(*print, fake_short_work_s, fake_long_work_s, f_console_symbol_short_normal_s, f_console_symbol_long_normal_s, "     Use includes/libraries/programs from this directory instead of system.");
+
+    fl_print_format("%r%r %[Special Options:%] ", print->to, f_string_eol_s, f_string_eol_s, print->set->important, print->set->important);
+
+    fll_program_print_help_option_long(*print, fake_long_documents_disabled_s, f_console_symbol_long_normal_s, "   Forcibly do not build documents files.");
+    fll_program_print_help_option_long(*print, fake_long_documents_enabled_s, f_console_symbol_long_normal_s, "    Forcibly do build documents files.");
+    fll_program_print_help_option_long(*print, fake_long_shared_disabled_s, f_console_symbol_long_normal_s, "Forcibly do not build shared files.");
+    fll_program_print_help_option_long(*print, fake_long_shared_enabled_s, f_console_symbol_long_normal_s, " Forcibly do build shared files.");
+    fll_program_print_help_option_long(*print, fake_long_static_disabled_s, f_console_symbol_long_normal_s, "Forcibly do not build static files.");
+    fll_program_print_help_option_long(*print, fake_long_static_enabled_s, f_console_symbol_long_normal_s, " Forcibly do build static files.");
+
+    fl_print_format("%r%r %[Operations:%] ", print->to, f_string_eol_s, f_string_eol_s, print->set->important, print->set->important);
+
+    fll_program_print_help_option_other(*print, fake_other_operation_build_s, "   Build or compile the code based on build settings file.");
+    fll_program_print_help_option_other(*print, fake_other_operation_clean_s, "   Delete all build files.");
+    fll_program_print_help_option_other(*print, fake_other_operation_make_s, "    Build or compile the code based on fakefile (default).");
+    fll_program_print_help_option_other(*print, fake_other_operation_skeleton_s, "Build a skeleton directory structure.");
+
+    f_print_dynamic_raw(f_string_eol_s, print->to);
+    f_print_dynamic_raw(f_string_eol_s, print->to);
+
+    fll_program_print_help_usage(*print, fake_program_name_s, fake_program_help_parameters_s);
+
+    fl_print_format("%r  When performing the %[%r%] operation, the", print->to, f_string_eol_s, print->set->notable, fake_other_operation_build_s, print->set->notable);
+    fl_print_format(" %[%r%r%] parameter specifies a name (limited to alpha-numeric, underscore, and dash) to be used in addition to the global.%r", print->to, print->set->notable, f_console_symbol_long_normal_s, fake_long_mode_s, print->set->notable, f_string_eol_s);
+
+    fl_print_format("  For example, when a %[%r%]", print->to, print->set->notable, fake_make_parameter_variable_mode_s, print->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').%r%r", print->to, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  When specifying the %[%r%] or the %[%r%]", print->to, print->set->notable, fake_make_parameter_variable_fakefile_s, print->set->notable, print->set->notable, fake_make_parameter_variable_settings_s, print->set->notable);
+    fl_print_format(" parameters, the project root is seached first and then the build data director is searched when the given file does not contain a directory separator.%r", print->to, f_string_eol_s);
+
+    fl_print_format("  For example, with '%[%r%r my_fakefile%]' the fakefile at", print->to, print->set->notable, f_console_symbol_long_normal_s, fake_long_fakefile_s, print->set->notable);
+    fl_print_format(" '%[./my_fakefile%]' is used if found, but if it is not found then", print->to, print->set->notable, print->set->notable);
+    fl_print_format(" '%[./%r%rmy_fakefile%]' is used if found.%r", print->to, print->set->notable, fake_default_data_s, fake_default_build_s, print->set->notable, f_string_eol_s);
+    fl_print_format("  For example, with '%[%r%r ./my_fakefile%]' the fakefile at", print->to, print->set->notable, f_console_symbol_long_normal_s, fake_long_fakefile_s, print->set->notable);
+    fl_print_format(" '%[./my_fakefile%]' is used if found, but if it is not found then no other paths are attempted.%r%r", print->to, print->set->notable, print->set->notable, f_string_eol_s, f_string_eol_s);
+
+    fl_print_format("  When piping data to this program, the piped data is treated as if it were prepended to the %[%r%]", print->to, print->set->notable, fake_make_parameter_variable_fakefile_s, print->set->notable);
+    fl_print_format(" or the %[%r%], depending on the operation.%r", print->to, print->set->notable, fake_make_parameter_variable_settings_s, print->set->notable, f_string_eol_s);
+
+    fl_print_format("  A section name from the fakefile that does not conflict with an operation name may be specified when performing the %[%r%] operation.%r", print->to, print->set->notable, fake_other_operation_make_s, print->set->notable, f_string_eol_s);
+
+    f_file_stream_flush(print->to);
+    f_file_stream_unlock(print->to);
+
+    return F_none;
+  }
+#endif // _di_fake_print_message_help_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_3/fake/c/main/print/message.h b/level_3/fake/c/main/print/message.h
new file mode 100644 (file)
index 0000000..554d23d
--- /dev/null
@@ -0,0 +1,121 @@
+/**
+ * FLL - Level 3
+ *
+ * Project: Featureless Make
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Provides print message functionality.
+ *
+ * This is auto-included and should not need to be explicitly included.
+ */
+#ifndef _fake_print_message_h
+#define _fake_print_message_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * Print a message about building.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ * @param build_arguments
+ *   (optional) The build arguments.
+ * @param setting_build
+ *   The build setting data.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ *
+ * @see f_file_stream_lock()
+ * @see f_file_stream_unlock()
+ * @see fl_print_format()
+ */
+#ifndef _di_fake_print_message_building_
+  extern f_status_t fake_print_message_building(fl_print_t * const print, const f_string_statics_t * const build_arguments, fake_build_setting_t * const setting_build);
+#endif // _di_fake_print_message_building_
+
+/**
+ * Print a message about deleting all files.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ *
+ * @see fake_print_common_simple_variable()
+ */
+#ifndef _di_fake_print_message_delete_all_files_
+  extern f_status_t fake_print_message_delete_all_files(fl_print_t * const print);
+#endif // _di_fake_print_message_delete_all_files_
+
+/**
+ * Print a message about generating skeleton.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ *
+ * @see fake_print_common_simple()
+ */
+#ifndef _di_fake_print_message_generating_skeleton_
+  extern f_status_t fake_print_message_generating_skeleton(fl_print_t * const print);
+#endif // _di_fake_print_message_generating_skeleton_
+
+/**
+ * Print help.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ *
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ *
+ *   F_output_not (with error bit) if setting is NULL.
+ *
+ * @see f_file_stream_flush()
+ * @see f_file_stream_lock()
+ * @see f_file_stream_unlock()
+ * @see f_print_dynamic_raw()
+ * @see fl_print_format()
+ * @see fll_program_print_help_header()
+ * @see fll_program_print_help_option()
+ * @see fll_program_print_help_option_other()
+ * @see fll_program_print_help_option_standard()
+ * @see fll_program_print_help_usage()
+ */
+#ifndef _di_fake_print_message_help_
+  extern f_status_t fake_print_message_help(fl_print_t * const print);
+#endif // _di_fake_print_message_help_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _fake_print_message_h
index f3d737283fefcf41a8006da37b5e6a49912a474d..d641533c344c63716f09359d49f79a2cf535b4b4 100644 (file)
@@ -5,49 +5,49 @@ extern "C" {
 #endif
 
 #ifndef _di_fake_print_operation_all_complete_
-  f_status_t fake_print_operation_all_complete(fake_setting_t * const setting, const fl_print_t print) {
+  f_status_t fake_print_operation_all_complete(fl_print_t * const print) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%rAll operations complete.%r", print.to, f_string_eol_s, f_string_eol_s);
+    fl_print_format("%rAll operations complete.%r", print->to, f_string_eol_s, f_string_eol_s);
 
-    f_file_stream_flush(print.to);
-    f_file_stream_unlock(print.to);
+    f_file_stream_flush(print->to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
 #endif // _di_fake_print_operation_all_complete_
 
 #ifndef _di_fake_print_operation_cancelled_
-  f_status_t fake_print_operation_cancelled(fake_setting_t * const setting, const fl_print_t print, const uint8_t operation) {
+  f_status_t fake_print_operation_cancelled(fl_print_t * const print, const uint8_t operation) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_normal_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_normal_e) return F_output_not;
 
-    f_file_stream_lock(print.to);
+    f_file_stream_lock(print->to);
 
-    fl_print_format("%[The operation '%]%[", print.to, print.context, print.context, print.notable);
+    fl_print_format("%[The operation '%]%[", print->to, print->context, print->context, print->notable);
 
     if (operation == fake_operation_build_e) {
-      f_print_dynamic(fake_other_operation_build_s, print.to);
+      f_print_dynamic(fake_other_operation_build_s, print->to);
     }
     else if (operation == fake_operation_clean_e) {
-      f_print_dynamic(fake_other_operation_clean_s, print.to);
+      f_print_dynamic(fake_other_operation_clean_s, print->to);
     }
     else if (operation == fake_operation_make_e) {
-      f_print_dynamic(fake_other_operation_make_s, print.to);
+      f_print_dynamic(fake_other_operation_make_s, print->to);
     }
     else if (operation == fake_operation_skeleton_e) {
-      f_print_dynamic(fake_other_operation_skeleton_s, print.to);
+      f_print_dynamic(fake_other_operation_skeleton_s, print->to);
     }
 
-    fl_print_format("%]%[' is cancelled.%]%r", print.to, print.notable, print.context, print.context, f_string_eol_s);
+    fl_print_format("%]%[' is cancelled.%]%r", print->to, print->notable, print->context, print->context, f_string_eol_s);
 
-    f_file_stream_flush(print.to);
-    f_file_stream_unlock(print.to);
+    f_file_stream_flush(print->to);
+    f_file_stream_unlock(print->to);
 
     return F_none;
   }
index 73223ca9f673a1e2ce5b8dfdb6d133cb6f066669..e51430d0b354f2322882719e3047ecbe0bdb6b7b 100644 (file)
@@ -19,12 +19,12 @@ extern "C" {
 /**
  * Print message for when all operates successfully complete.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  *
  * @return
  *   F_none on success.
@@ -38,18 +38,18 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_operation_all_complete_
-  extern f_status_t fake_print_operation_all_complete(fake_setting_t * const setting, const fl_print_t print);
+  extern f_status_t fake_print_operation_all_complete(fl_print_t * const print);
 #endif // _di_fake_print_operation_all_complete_
 
 /**
  * Print message for when the operation is cancelled.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param operation
  *   The identifier of the operation that failed.
  *
@@ -66,7 +66,7 @@ extern "C" {
  * @see fl_print_format()
  */
 #ifndef _di_fake_print_operation_cancelled_
-  extern f_status_t fake_print_operation_cancelled(fake_setting_t * const setting, const fl_print_t print, const uint8_t operation);
+  extern f_status_t fake_print_operation_cancelled(fl_print_t * const print, const uint8_t operation);
 #endif // _di_fake_print_operation_cancelled_
 
 #ifdef __cplusplus
index 4b0b3146504dcd65004fa74a6081cf6c3c4d12a5..4d76b2d08b76dfad6ce33072e21cd5fbb9f760f5 100644 (file)
 extern "C" {
 #endif
 
-#ifndef _di_fake_print_verbose_clone_
-  void fake_print_verbose_clone(const f_string_static_t source, const f_string_static_t destination, void * const void_recurse) {
-
-    if (!void_recurse) return;
-
-    f_directory_recurse_t * const recurse = (f_directory_recurse_t * const) void_recurse;
-
-    if (!recurse->state.custom) {
-      recurse->state.status = F_output_not;
-
-      return;
-    }
-
-    fake_data_t * const data = (fake_data_t *) recurse->state.custom;
-
-    if (data->program->message.verbosity < f_console_verbosity_verbose_e) {
-      recurse->state.status = F_output_not;
-
-      return;
-    }
-
-    fake_print_wrapped_variables(data->setting, data->program->message, "Cloned ", source, " to ", destination, 0);
-  }
-#endif // _di_fake_print_verbose_clone_
-
-#ifndef _di_fake_print_verbose_copy_
-  void fake_print_verbose_copy(const f_string_static_t source, const f_string_static_t destination, void * const void_recurse) {
-
-    if (!void_recurse) return;
-
-    f_directory_recurse_t * const recurse = (f_directory_recurse_t * const) void_recurse;
-
-    if (!recurse->state.custom) {
-      recurse->state.status = F_output_not;
-
-      return;
-    }
-
-    fake_data_t * const data = (fake_data_t *) recurse->state.custom;
-
-    if (data->program->message.verbosity < f_console_verbosity_verbose_e) {
-      recurse->state.status = F_output_not;
-
-      return;
-    }
-
-    fake_print_wrapped_variables(data->setting, data->program->message, "Copied ", source, " to ", destination, 0);
-  }
-#endif // _di_fake_print_verbose_copy_
-
 #ifndef _di_fake_print_verbose_create_directory_
-  void fake_print_verbose_create_directory(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  void fake_print_verbose_create_directory(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return;
-    if (print.verbosity < f_console_verbosity_verbose_e) return;
+    if (!print) return;
+    if (print->verbosity < f_console_verbosity_verbose_e) return;
 
-    fake_print_simple_variable(setting, print, "Created directory ", path);
+    fake_print_common_simple_variable(print, "Created directory ", path);
   }
 #endif // _di_fake_print_verbose_create_directory_
 
 #ifndef _di_fake_print_verbose_create_file_
-  f_status_t fake_print_verbose_create_file(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_print_verbose_create_file(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_simple_variable(setting, print, "Created file ", path);
+    fake_print_common_simple_variable(print, "Created file ", path);
 
     return F_none;
   }
 #endif // _di_fake_print_verbose_create_file_
 
 #ifndef _di_fake_print_verbose_directory_exists_
-  f_status_t fake_print_verbose_directory_exists(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_print_verbose_directory_exists(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_wrapped_variable(setting, print, "Directory ", path, " already exists");
+    fake_print_common_wrapped_variable(print, "Directory ", path, " already exists");
 
     return F_none;
   }
 #endif // _di_fake_print_verbose_directory_exists_
 
 #ifndef _di_fake_print_verbose_file_exists_
-  f_status_t fake_print_verbose_file_exists(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_print_verbose_file_exists(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_wrapped_variable(setting, print, "File ", path, " already exists");
+    fake_print_common_wrapped_variable(print, "File ", path, " already exists");
   }
 #endif // _di_fake_print_verbose_file_exists_
 
 #ifndef _di_fake_print_verbose_file_exists_as_link_
-  f_status_t fake_print_verbose_file_exists_as_link(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_print_verbose_file_exists_as_link(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_wrapped_variable(setting, print, "File ", path, " already exists (as a symbolic link)");
+    fake_print_common_wrapped_variable(print, "File ", path, " already exists (as a symbolic link)");
   }
 #endif // _di_fake_print_verbose_file_exists_as_link_
 
 #ifndef _di_fake_print_verbose_file_exists_not_regular_or_link_
-  f_status_t fake_print_verbose_file_exists_not_regular_or_link(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_print_verbose_file_exists_not_regular_or_link(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_wrapped_variable(setting, print, "File ", path, " already exists but is not a regular file (or a symbolic link)");
+    fake_print_common_wrapped_variable(print, "File ", path, " already exists but is not a regular file (or a symbolic link)");
   }
 #endif // _di_fake_print_verbose_file_exists_not_regular_or_link_
 
 #ifndef _di_fake_print_verbose_file_pre_populated_
-  f_status_t fake_print_verbose_file_pre_populated(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_print_verbose_file_pre_populated(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_simple_variable(setting, print, "Pre-populated file ", path);
+    fake_print_common_simple_variable(print, "Pre-populated file ", path);
   }
 #endif // _di_fake_print_verbose_file_pre_populated_
 
-#ifndef _di_fake_print_verbose_move_
-  void fake_print_verbose_move(const f_string_static_t source, const f_string_static_t destination, void * const void_recurse) {
+#ifndef _di_fake_print_verbose_recursive_clone_
+  void fake_print_verbose_recursive_clone(const f_string_static_t source, const f_string_static_t destination, void * const void_recurse) {
+
+    if (!void_recurse) return;
+
+    f_directory_recurse_t * const recurse = (f_directory_recurse_t * const) void_recurse;
+
+    if (!recurse->state.custom) {
+      recurse->state.status = F_output_not;
+
+      return;
+    }
+
+    fake_main_t * const main = (fake_main_t *) recurse->state.custom;
+
+    if (main->program.message.verbosity < f_console_verbosity_verbose_e) {
+      recurse->state.status = F_output_not;
+
+      return;
+    }
+
+    fake_print_common_wrapped_variables(&main->program.message, "Cloned ", source, " to ", destination, 0);
+  }
+#endif // _di_fake_print_verbose_recursive_clone_
+
+#ifndef _di_fake_print_verbose_recursive_copy_
+  void fake_print_verbose_recursive_copy(const f_string_static_t source, const f_string_static_t destination, void * const void_recurse) {
+
+    if (!void_recurse) return;
+
+    f_directory_recurse_t * const recurse = (f_directory_recurse_t * const) void_recurse;
+
+    if (!recurse->state.custom) {
+      recurse->state.status = F_output_not;
+
+      return;
+    }
+
+    fake_main_t * const main = (fake_main_t *) recurse->state.custom;
+
+    if (main->program.message.verbosity < f_console_verbosity_verbose_e) {
+      recurse->state.status = F_output_not;
+
+      return;
+    }
+
+    fake_print_common_wrapped_variables(&main->program.message, "Copied ", source, " to ", destination, 0);
+  }
+#endif // _di_fake_print_verbose_recursive_copy_
+
+#ifndef _di_fake_print_verbose_recursive_move_
+  void fake_print_verbose_recursive_move(const f_string_static_t source, const f_string_static_t destination, void * const void_recurse) {
 
     if (!void_recurse) return;
 
@@ -141,17 +141,17 @@ extern "C" {
       return;
     }
 
-    fake_data_t * const data = (fake_data_t *) recurse->state.custom;
+    fake_main_t * const main = (fake_main_t *) recurse->state.custom;
 
-    if (data->program->message.verbosity < f_console_verbosity_verbose_e) {
+    if (main->program.message.verbosity < f_console_verbosity_verbose_e) {
       recurse->state.status = F_output_not;
 
       return;
     }
 
-    fake_print_wrapped_variables(data->setting, data->program->message, "Moved ", source, " to ", destination, 0);
+    fake_print_common_wrapped_variables(&main->program.message, "Moved ", source, " to ", destination, 0);
   }
-#endif // _di_fake_print_verbose_move_
+#endif // _di_fake_print_verbose_recursive_move_
 
 #ifdef __cplusplus
 } // extern "C"
index 45d1877d6b4f14022c4321533ac4caee5da81ffe..1a7dc6a6433d46bebb2702ee8707eb46511d38aa 100644 (file)
@@ -17,78 +17,32 @@ extern "C" {
 #endif
 
 /**
- * Helper function for performing a verbose print for a file clone operation.
- *
- * This is intended to be passed as a callback to f_directory_recurse_t.verbose.
- * The f_directory_recurse_t.state.custom must be the fake_data_t.
- *
- * @param source
- *   The source string.
- * @param destination
- *   The destination string.
- * @param recurse
- *   The recurse.state.custom must be a structure of type fake_data_t.
- *
- *   This alters recurse.state.status:
- *     F_none on success.
- *     F_output_not on success, but no printing is performed.
- *
- * @see fll_print_format()
- */
-#ifndef _di_fake_print_verbose_clone_
-  extern void fake_print_verbose_clone(const f_string_static_t source, const f_string_static_t destination, void * const recurse);
-#endif // _di_fake_print_verbose_clone_
-
-/**
- * Helper function for performing a verbose print for a file copy operation.
- *
- * This is intended to be passed as a callback to f_directory_recurse_t.verbose.
- * The f_directory_recurse_t.state.custom must be the fake_data_t.
- *
- * @param source
- *   The source string.
- * @param destination
- *   The destination string.
- * @param recurse
- *   The recurse.state.custom must be a structure of type fake_data_t.
- *
- *   This alters recurse.state.status:
- *     F_none on success.
- *     F_output_not on success, but no printing is performed.
- *
- * @see fll_print_format()
- */
-#ifndef _di_fake_print_verbose_copy_
-  extern void fake_print_verbose_copy(const f_string_static_t source, const f_string_static_t destination, void * const recurse);
-#endif // _di_fake_print_verbose_copy_
-
-/**
  * Print verbose message about creating a directory.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The name of the file.
  *
- * @see fake_print_simple_variable()
+ * @see fake_print_common_simple_variable()
  */
 #ifndef _di_fake_print_verbose_create_directory_
-  extern void fake_print_verbose_create_directory(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern void fake_print_verbose_create_directory(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_print_verbose_create_directory_
 
 /**
  * Print verbose message about creating a file.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The name of the file.
  *
@@ -98,21 +52,21 @@ extern "C" {
  *
  *   F_output_not (with error bit) if setting is NULL.
  *
- * @see fake_print_simple_variable()
+ * @see fake_print_common_simple_variable()
  */
 #ifndef _di_fake_print_verbose_create_file_
-  extern f_status_t fake_print_verbose_create_file(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_print_verbose_create_file(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_print_verbose_create_file_
 
 /**
  * Print a verbose message for when a directory already exists.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The name of the directory.
  *
@@ -122,21 +76,21 @@ extern "C" {
  *
  *   F_output_not (with error bit) if setting is NULL.
  *
- * @see fake_print_wrapped_variable()
+ * @see fake_print_common_wrapped_variable()
  */
 #ifndef _di_fake_print_verbose_directory_exists_
-  extern f_status_t fake_print_verbose_directory_exists(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_print_verbose_directory_exists(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_print_verbose_directory_exists_
 
 /**
  * Print a verbose message for when a file already exists.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The name of the file or directory.
  *
@@ -146,21 +100,21 @@ extern "C" {
  *
  *   F_output_not (with error bit) if setting is NULL.
  *
- * @see fake_print_wrapped_variable()
+ * @see fake_print_common_wrapped_variable()
  */
 #ifndef _di_fake_print_verbose_file_exists_
-  extern f_status_t fake_print_verbose_file_exists(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_print_verbose_file_exists(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_print_verbose_file_exists_
 
 /**
  * Print a verbose message for when a file already exists as a symbolic link.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The name of the file or directory.
  *
@@ -170,21 +124,21 @@ extern "C" {
  *
  *   F_output_not (with error bit) if setting is NULL.
  *
- * @see fake_print_wrapped_variable()
+ * @see fake_print_common_wrapped_variable()
  */
 #ifndef _di_fake_print_verbose_file_exists_as_link_
-  extern f_status_t fake_print_verbose_file_exists_as_link(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_print_verbose_file_exists_as_link(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_print_verbose_file_exists_as_link_
 
 /**
  * Print a verbose message for when a file already exists but is not a regular file or a symbolic link.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The name of the file or directory.
  *
@@ -194,21 +148,21 @@ extern "C" {
  *
  *   F_output_not (with error bit) if setting is NULL.
  *
- * @see fake_print_wrapped_variable()
+ * @see fake_print_common_wrapped_variable()
  */
 #ifndef _di_fake_print_verbose_file_exists_not_regular_or_link_
-  extern f_status_t fake_print_verbose_file_exists_not_regular_or_link(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_print_verbose_file_exists_not_regular_or_link(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_print_verbose_file_exists_not_regular_or_link_
 
 /**
  * Print a verbose message for when a file is pre-populated.
  *
- * @param setting
- *   The main program settings.
- *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The name of the file or directory.
  *
@@ -218,13 +172,59 @@ extern "C" {
  *
  *   F_output_not (with error bit) if setting is NULL.
  *
- * @see fake_print_simple_variable()
+ * @see fake_print_common_simple_variable()
  */
 #ifndef _di_fake_print_verbose_file_pre_populated_
-  extern f_status_t fake_print_verbose_file_pre_populated(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_print_verbose_file_pre_populated(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_print_verbose_file_pre_populated_
 
 /**
+ * Helper function for performing a verbose print for a file clone operation.
+ *
+ * This is intended to be passed as a callback to f_directory_recurse_t.verbose.
+ * The f_directory_recurse_t.state.custom must be the fake_data_t.
+ *
+ * @param source
+ *   The source string.
+ * @param destination
+ *   The destination string.
+ * @param recurse
+ *   This requires recurse.state.custom to be fake_main_t.
+ *
+ *   This alters recurse.state.status:
+ *     F_none on success.
+ *     F_output_not on success, but no printing is performed.
+ *
+ * @see fll_print_format()
+ */
+#ifndef _di_fake_print_verbose_recursive_clone_
+  extern void fake_print_verbose_recursive_clone(const f_string_static_t source, const f_string_static_t destination, void * const recurse);
+#endif // _di_fake_print_verbose_recursive_clone_
+
+/**
+ * Helper function for performing a verbose print for a file copy operation.
+ *
+ * This is intended to be passed as a callback to f_directory_recurse_t.verbose.
+ * The f_directory_recurse_t.state.custom must be the fake_data_t.
+ *
+ * @param source
+ *   The source string.
+ * @param destination
+ *   The destination string.
+ * @param recurse
+ *   This requires recurse.state.custom to be fake_main_t.
+ *
+ *   This alters recurse.state.status:
+ *     F_none on success.
+ *     F_output_not on success, but no printing is performed.
+ *
+ * @see fll_print_format()
+ */
+#ifndef _di_fake_print_verbose_recursive_copy_
+  extern void fake_print_verbose_recursive_copy(const f_string_static_t source, const f_string_static_t destination, void * const recurse);
+#endif // _di_fake_print_verbose_recursive_copy_
+
+/**
 * Print a verbose message for when a file is moved.
  *
  * This is intended to be passed as a callback to f_directory_recurse_t.verbose.
@@ -235,7 +235,7 @@ extern "C" {
  * @param destination
  *   The destination string.
  * @param recurse
- *   The recurse.state.custom must be a structure of type fake_data_t.
+ *   This requires recurse.state.custom to be fake_main_t.
  *
  *   This alters recurse.state.status:
  *     F_none on success.
@@ -243,9 +243,9 @@ extern "C" {
  *
  * @see fll_print_format()
  */
-#ifndef _di_fake_print_verbose_move_
-  extern void fake_print_verbose_move(const f_string_static_t source, const f_string_static_t destination, void * const recurse);
-#endif // _di_fake_print_verbose_move_
+#ifndef _di_fake_print_verbose_recursive_move_
+  extern void fake_print_verbose_recursive_move(const f_string_static_t source, const f_string_static_t destination, void * const recurse);
+#endif // _di_fake_print_verbose_recursive_move_
 
 #ifdef __cplusplus
 } // extern "C"
index 761f4033164123c779437fdb258d7c4b6a91cd42..341d3c2db21c3e877b10fb57b4aef91fdbe5f3c5 100644 (file)
@@ -4,13 +4,25 @@
 extern "C" {
 #endif
 
+#ifndef _di_fake_print_warning_build_directory_not_directory_
+  f_status_t fake_print_warning_build_directory_not_directory(fl_print_t * const print, f_string_static_t path) {
+
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
+
+    fake_print_context_wrapped_variable(print, "The build directory ", path, " exists but is not a directory");
+
+    return F_none;
+  }
+#endif // _di_fake_print_warning_build_directory_not_directory_
+
 #ifndef _di_fake_print_warning_path_exists_not_directory_
-  f_status_t fake_print_warning_path_exists_not_directory(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path) {
+  f_status_t fake_print_warning_path_exists_not_directory(fl_print_t * const print, const f_string_static_t path) {
 
-    if (!setting) return F_status_set_error(F_output_not);
-    if (print.verbosity < f_console_verbosity_verbose_e) return F_output_not;
+    if (!print) return F_status_set_error(F_output_not);
+    if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
 
-    fake_print_context_wrapped_variable(setting, print, "The path ", path, " exists but is not a directory");
+    fake_print_context_wrapped_variable(print, "The path ", path, " exists but is not a directory");
 
     return F_none;
   }
index c55a3105dcf8165824ceb0cef61f26136c6bd7e5..080f9bd8634007588a530f6ded1e73a8b7fa04d6 100644 (file)
@@ -17,14 +17,38 @@ extern "C" {
 #endif
 
 /**
- * Print warning message about path existing but is not a directory.
+ * Print warning message about the build directory not being found.
+ *
+ * @param print
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
+ * @param path
+ *   The path of the build directory.
  *
- * @param setting
- *   The main program settings.
+ * @return
+ *   F_none on success.
+ *   F_output_not on success, but no printing is performed.
+ *
+ *   F_output_not (with error bit) if setting is NULL.
+ *
+ * @see fake_print_context_wrapped_variable()
+ */
+#ifndef _di_fake_print_warning_build_directory_not_directory_
+  extern f_status_t fake_print_warning_build_directory_not_directory(fl_print_t * const print, f_string_static_t path);
+#endif // _di_fake_print_warning_build_directory_not_directory_
+
+/**
+ * Print warning message about path existing but is not a directory.
  *
- *   This does not alter setting.state.status.
  * @param print
- *   Designates the how and where to print.
+ *   The output structure to print to.
+ *
+ *   This requires print.custom to be fake_main_t.
+ *
+ *   This does not alter print.custom.setting.state.status.
  * @param path
  *   The name of the file or directory.
  *
@@ -37,7 +61,7 @@ extern "C" {
  * @see fake_print_context_wrapped_variable()
  */
 #ifndef _di_fake_print_warning_path_exists_not_directory_
-  extern f_status_t fake_print_warning_path_exists_not_directory(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t path);
+  extern f_status_t fake_print_warning_path_exists_not_directory(fl_print_t * const print, const f_string_static_t path);
 #endif // _di_fake_print_warning_path_exists_not_directory_
 
 #ifdef __cplusplus
index f02c450a907e2336fa034e7cb6d5821562959e88..95b446e44528eff616e780dd7d512cf6477ddabf 100644 (file)
@@ -7,13 +7,13 @@ extern "C" {
 #ifndef _di_fake_skeleton_operate_
   void fake_skeleton_operate(fake_data_t * const data) {
 
-    if (!data || !data->program || !data->setting) return;
+    if (!data || !data->main) return;
 
-    if (data->program->message.verbosity != f_console_verbosity_quiet_e && data->program->message.verbosity != f_console_verbosity_error_e) {
-      fake_print_generating_skeleton(data->setting, data->program->message);
+    if (data->main->program.message.verbosity != f_console_verbosity_quiet_e && data->main->program.message.verbosity != f_console_verbosity_error_e) {
+      fake_print_message_generating_skeleton(&data->main->program.message);
 
-      if (data->program->message.verbosity >= f_console_verbosity_verbose_e) {
-        fll_print_dynamic(f_string_eol_s, data->program->message.to);
+      if (data->main->program.message.verbosity >= f_console_verbosity_verbose_e) {
+        fll_print_dynamic(f_string_eol_s, data->main->program.message.to);
       }
     }
 
@@ -50,19 +50,19 @@ extern "C" {
 
       const f_string_static_t path[] = {
         data->path_build,
-        data->setting->data,
+        data->main->setting.data,
         data->path_data_build,
         data->path_data_documentation,
         data->path_data_settings,
         data->path_documents,
         data->path_licenses,
-        data->setting->sources,
+        data->main->setting.sources,
         sources,
         sources_bash,
         sources_c,
         sources_cpp,
         sources_script,
-        data->setting->work,
+        data->main->setting.work,
         data->path_work_includes,
         data->path_work_libraries,
         data->path_work_libraries_script,
@@ -79,149 +79,149 @@ extern "C" {
 
         fake_skeleton_operate_directory_create(data, path[i]);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error(&data->program->error, macro_fake_f(fake_skeleton_operate_directory_create));
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error(&data->main->program.error, macro_fake_f(fake_skeleton_operate_directory_create));
 
           return;
         }
       } // for
 
-      if (data->program->message.verbosity >= f_console_verbosity_verbose_e) {
-        fll_print_dynamic(f_string_eol_s, data->program->message.to);
+      if (data->main->program.message.verbosity >= f_console_verbosity_verbose_e) {
+        fll_print_dynamic(f_string_eol_s, data->main->program.message.to);
       }
     }
 
     fake_skeleton_operate_file_create(data, data->file_data_build_defines, F_false, fake_make_skeleton_content_defines_s);
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
     fake_skeleton_operate_file_create(data, data->file_data_build_dependencies, F_false, fake_make_skeleton_content_dependencies_s);
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
     fake_skeleton_operate_file_create(data, data->file_data_build_process_post, F_true, fake_make_skeleton_content_process_post_s);
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
     fake_skeleton_operate_file_create(data, data->file_data_build_process_pre, F_true, fake_make_skeleton_content_process_pre_s);
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
     fake_skeleton_operate_file_create(data, data->file_data_build_settings, F_false, fake_make_skeleton_content_settings_s);
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
     fake_skeleton_operate_file_create(data, data->file_documents_readme, F_false, f_string_empty_s);
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
     fake_skeleton_operate_file_create(data, data->file_data_build_fakefile, F_false, fake_make_skeleton_content_fakefile_s);
-    if (F_status_is_error(data->setting->state.status)) return;
+    if (F_status_is_error(data->main->setting.state.status)) return;
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
   }
 #endif // _di_fake_skeleton_operate_
 
 #ifndef _di_fake_skeleton_operate_directory_create_
   void fake_skeleton_operate_directory_create(fake_data_t * const data, const f_string_static_t path) {
 
-    if (!data || !data->program || !data->setting || !path.used) return;
+    if (!data || !data->main || !path.used) return;
 
-    data->setting->state.status = f_directory_exists(path);
+    data->main->setting.state.status = f_directory_exists(path);
 
-    if (data->setting->state.status == F_true) {
-      fake_print_verbose_directory_exists(data->setting, data->program->message, path);
+    if (data->main->setting.state.status == F_true) {
+      fake_print_verbose_directory_exists(&data->main->program.message, path);
 
-      data->setting->state.status = F_none;
+      data->main->setting.state.status = F_none;
 
       return;
     }
 
-    if (data->setting->state.status == F_false) {
-      fake_print_warning_path_exists_not_directory(data->setting, data->program->warning, path);
+    if (data->main->setting.state.status == F_false) {
+      fake_print_warning_path_exists_not_directory(&data->main->program.warning, path);
 
-      data->setting->state.status = F_status_set_warning(F_failure);
+      data->main->setting.state.status = F_status_set_warning(F_failure);
 
       return;
     }
 
-    if (data->setting->state.status == F_file_found_not) {
-      data->setting->state.status = f_directory_create(path, F_file_mode_all_rwx_d);
+    if (data->main->setting.state.status == F_file_found_not) {
+      data->main->setting.state.status = f_directory_create(path, F_file_mode_all_rwx_d);
 
-      if (F_status_is_error(data->setting->state.status)) {
-        if (F_status_set_fine(data->setting->state.status) == F_file_found_not) {
-          fake_print_error_directory_create_parent_missing(data->setting, data->program->error, path);
+      if (F_status_is_error(data->main->setting.state.status)) {
+        if (F_status_set_fine(data->main->setting.state.status) == F_file_found_not) {
+          fake_print_error_directory_create_parent_missing(&data->main->program.error, path);
         }
         else {
-          fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_directory_create), path, f_file_operation_create_s, fll_error_file_type_directory_e);
+          fake_print_error_file(&data->main->program.error, macro_fake_f(f_directory_create), path, f_file_operation_create_s, fll_error_file_type_directory_e);
         }
 
         return;
       }
 
-      fake_print_verbose_create_directory(data->setting, data->program->message, path);
+      fake_print_verbose_create_directory(&data->main->program.message, path);
     }
-    else if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_directory_exists), path, f_file_operation_create_s, fll_error_file_type_directory_e);
+    else if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error_file(&data->main->program.error, macro_fake_f(f_directory_exists), path, f_file_operation_create_s, fll_error_file_type_directory_e);
 
       return;
     }
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
   }
 #endif // _di_fake_skeleton_operate_directory_create_
 
 #ifndef _di_fake_skeleton_operate_file_create_
   void fake_skeleton_operate_file_create(fake_data_t * const data, const f_string_static_t path, const bool executable, const f_string_static_t content) {
 
-    if (!data || !data->program || !data->setting || !path.used) return;
+    if (!data || !data->main || !path.used) return;
 
-    data->setting->state.status = f_file_is(path, F_file_type_regular_d, F_false);
+    data->main->setting.state.status = f_file_is(path, F_file_type_regular_d, F_false);
 
-    if (data->setting->state.status == F_true) {
-      fake_print_verbose_file_exists(data->setting, data->program->message, path);
+    if (data->main->setting.state.status == F_true) {
+      fake_print_verbose_file_exists(&data->main->program.message, path);
 
-      data->setting->state.status = F_none;
+      data->main->setting.state.status = F_none;
 
       return;
     }
 
     // symbolic links might also be fine.
-    if (data->setting->state.status == F_false) {
-      data->setting->state.status = f_file_is(path, F_file_type_link_d, F_false);
+    if (data->main->setting.state.status == F_false) {
+      data->main->setting.state.status = f_file_is(path, F_file_type_link_d, F_false);
 
-      if (data->setting->state.status == F_true) {
-        fake_print_verbose_file_exists_as_link(data->setting, data->program->message, path);
+      if (data->main->setting.state.status == F_true) {
+        fake_print_verbose_file_exists_as_link(&data->main->program.message, path);
 
-        data->setting->state.status = F_none;
+        data->main->setting.state.status = F_none;
 
         return;
       }
     }
 
-    if (data->setting->state.status == F_false) {
-      fake_print_verbose_file_exists_not_regular_or_link(data->setting, data->program->message, path);
+    if (data->main->setting.state.status == F_false) {
+      fake_print_verbose_file_exists_not_regular_or_link(&data->main->program.message, path);
 
-      data->setting->state.status = F_status_set_warning(F_none);
+      data->main->setting.state.status = F_status_set_warning(F_none);
 
       return;
     }
 
-    if (F_status_set_fine(data->setting->state.status) == F_file_found_not) {
+    if (F_status_set_fine(data->main->setting.state.status) == F_file_found_not) {
       mode_t mode = F_file_mode_all_rw_d;
 
       if (executable) {
         mode = F_file_mode_all_rwx_d;
       }
 
-      data->setting->state.status = f_file_create(path, mode, F_true);
+      data->main->setting.state.status = f_file_create(path, mode, F_true);
 
-      if (F_status_is_error(data->setting->state.status)) {
-        if (F_status_set_fine(data->setting->state.status) == F_file_found_not) {
-          fake_print_error_file_create_parent_missing(data->setting, data->program->error, path);
+      if (F_status_is_error(data->main->setting.state.status)) {
+        if (F_status_set_fine(data->main->setting.state.status) == F_file_found_not) {
+          fake_print_error_file_create_parent_missing(&data->main->program.error, path);
         }
         else {
-          fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_create), path, f_file_operation_create_s, fll_error_file_type_file_e);
+          fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_create), path, f_file_operation_create_s, fll_error_file_type_file_e);
         }
 
         return;
       }
 
-      fake_print_verbose_create_file(data->setting, data->program->message, path);
+      fake_print_verbose_create_file(&data->main->program.message, path);
 
       if (content.used) {
         f_file_t file = f_file_t_initialize;
@@ -229,18 +229,18 @@ extern "C" {
         file.flag = F_file_flag_append_wo_d;
         file.size_write = content.used;
 
-        data->setting->state.status = f_file_open(path, 0, &file);
+        data->main->setting.state.status = f_file_open(path, 0, &file);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_open), path, fake_common_file_populate_pre_s, fll_error_file_type_file_e);
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_open), path, fake_common_file_populate_pre_s, fll_error_file_type_file_e);
 
           return;
         }
 
-        data->setting->state.status = f_file_write(file, content, 0);
+        data->main->setting.state.status = f_file_write(file, content, 0);
 
-        if (F_status_is_error(data->setting->state.status)) {
-          fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_write), path, fake_common_file_populate_pre_s, fll_error_file_type_file_e);
+        if (F_status_is_error(data->main->setting.state.status)) {
+          fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_write), path, fake_common_file_populate_pre_s, fll_error_file_type_file_e);
 
           f_file_stream_flush(file);
           f_file_stream_close(&file);
@@ -248,19 +248,19 @@ extern "C" {
           return;
         }
 
-        fake_print_verbose_file_pre_populated(data->setting, data->program->message, path);
+        fake_print_verbose_file_pre_populated(&data->main->program.message, path);
 
         f_file_stream_flush(file);
         f_file_stream_close(&file);
       }
     }
-    else if (F_status_is_error(data->setting->state.status)) {
-      fake_print_error_file(data->setting, data->program->error, macro_fake_f(f_file_is), path, f_file_operation_create_s, fll_error_file_type_file_e);
+    else if (F_status_is_error(data->main->setting.state.status)) {
+      fake_print_error_file(&data->main->program.error, macro_fake_f(f_file_is), path, f_file_operation_create_s, fll_error_file_type_file_e);
 
       return;
     }
 
-    data->setting->state.status = F_none;
+    data->main->setting.state.status = F_none;
   }
 #endif // _di_fake_skeleton_operate_file_create_
 
@@ -269,7 +269,7 @@ extern "C" {
 
     if (!data || !partial || !source) return;
 
-    source->used = data->setting->sources.used + partial->used;
+    source->used = data->main->setting.sources.used + partial->used;
   }
 #endif // _di_fake_skeleton_path_source_length_
 
@@ -280,8 +280,8 @@ extern "C" {
 
     source->used = 0;
 
-    memcpy(source->string, data->setting->sources.string, sizeof(f_char_t) * data->setting->sources.used);
-    source->used += data->setting->sources.used;
+    memcpy(source->string, data->main->setting.sources.string, sizeof(f_char_t) * data->main->setting.sources.used);
+    source->used += data->main->setting.sources.used;
 
     memcpy(source->string + source->used, partial->string, sizeof(f_char_t) * partial->used);
     source->used += partial->used;
index 0ee3393cdfbcfd59768231c4ce21f049449a30d8..ae51481dc8d7528d44dd5d3be4b441835a37e97d 100644 (file)
@@ -22,7 +22,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_interrupt (with error bit) on interrupt signal received.
@@ -43,7 +43,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_failure (with warning bit) on path exists but is not a directory.
@@ -66,7 +66,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This alters data.setting.state.status:
+ *   This alters data.main->setting.state.status:
  *     F_none on success.
  *
  *     F_none (with warning bit) on file exists but is not a regular or a link.
@@ -98,7 +98,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This does not alter data.setting.state.status.
+ *   This does not alter data.main->setting.state.status.
  * @param partial
  *   The partial path string, such as "bash".
  * @param source
@@ -117,7 +117,7 @@ extern "C" {
  * @param data
  *   The program data.
  *
- *   This does not alter data.setting.state.status.
+ *   This does not alter data.main->setting.state.status.
  * @param partial
  *   The partial path string, such as "bash".
  * @param source
index d1c755e9854cb51252b4bb356ddebc3ec8f0d3eb..6512ba83c6923b5d55a12993f8a98ec933c3a3da 100644 (file)
@@ -27,19 +27,19 @@ build_libraries-individual -lf_account -lf_capability -lf_color -lf_console -lf_
 build_libraries-level -lfll_2 -lfll_1 -lfll_0
 build_libraries-monolithic -lfll
 
-build_sources_library main/build.c main/clean.c main/common.c main/fake.c main/make.c main/print.c main/print/context.c main/print/error.c main/print/operation.c main/print/warning.c main/print/verbose.c main/skeleton.c
-build_sources_library main/build/enumeration.c main/build/library.c main/build/load.c main/build/object.c main/build/objects.c main/build/print.c main/build/print/compile.c main/build/print/error.c main/build/print/verbose.c main/build/print/warning.c main/build/program.c main/build/skeleton.c main/build/string.c
+build_sources_library main/build.c main/clean.c main/common.c main/fake.c main/make.c main/print/common.c main/print/context.c main/print/error.c main/print/message.c main/print/operation.c main/print/warning.c main/print/verbose.c main/skeleton.c
+build_sources_library main/build/enumeration.c main/build/library.c main/build/load.c main/build/object.c main/build/objects.c main/build/print/compile.c main/build/print/error.c main/build/print/message.c main/build/print/verbose.c main/build/print/warning.c main/build/program.c main/build/skeleton.c main/build/string.c
 build_sources_library main/common/define.c main/common/enumeration.c main/common/print.c main/common/string.c main/common/type.c
 build_sources_library main/fake/path_generate.c
-build_sources_library main/make/load_fakefile.c main/make/load_parameters.c main/make/operate_block.c main/make/operate.c main/make/operate_process.c main/make/operate_process_type.c main/make/operate_validate.c main/make/operate_validate_type.c main/make/print.c main/make/print/error.c main/make/print/verbose.c main/make/print/warning.c
+build_sources_library main/make/load_fakefile.c main/make/load_parameters.c main/make/operate_block.c main/make/operate.c main/make/operate_process.c main/make/operate_process_type.c main/make/operate_validate.c main/make/operate_validate_type.c main/make/print/error.c main/make/print/message.c main/make/print/verbose.c main/make/print/warning.c
 
 build_sources_program main/main.c
 
-build_sources_headers main/build.h main/clean.h main/common.h main/fake.h main/make.h main/print.h main/print/context.h main/print/error.h main/print/operation.h main/print/warning.h main/print/verbose.h main/skeleton.h
-build_sources_headers main/build/enumeration.h main/build/library.h main/build/load.h main/build/object.h main/build/objects.h main/build/print.h main/build/print/compile.h main/build/print/error.h main/build/print/verbose.h main/build/print/warning.h main/build/program.h main/build/skeleton.h main/build/string.h
+build_sources_headers main/build.h main/clean.h main/common.h main/fake.h main/make.h main/print/common.h main/print/context.h main/print/error.h main/print/message.h main/print/operation.h main/print/warning.h main/print/verbose.h main/skeleton.h
+build_sources_headers main/build/enumeration.h main/build/library.h main/build/load.h main/build/object.h main/build/objects.h main/build/print/compile.h main/build/print/error.h main/build/print/message.h main/build/print/verbose.h main/build/print/warning.h main/build/program.h main/build/skeleton.h main/build/string.h
 build_sources_headers main/common/define.h main/common/enumeration.h main/common/print.h main/common/string.h main/common/type.h
 build_sources_headers main/fake/path_generate.h
-build_sources_headers main/make/load_fakefile.h main/make/load_parameters.h main/make/operate_block.h main/make/operate.h main/make/operate_process.h main/make/operate_process_type.h main/make/operate_validate.h main/make/operate_validate_type.h main/make/print.h main/make/print/error.h main/make/print/verbose.h main/make/print/warning.h
+build_sources_headers main/make/load_fakefile.h main/make/load_parameters.h main/make/operate_block.h main/make/operate.h main/make/operate_process.h main/make/operate_process_type.h main/make/operate_validate.h main/make/operate_validate_type.h main/make/print/error.h main/make/print/message.h main/make/print/verbose.h main/make/print/warning.h
 
 build_sources_documentation man