From c3e5ece4654283486a86c9296cfb0fd4b7be7e95 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Thu, 23 Feb 2023 23:37:34 -0600 Subject: [PATCH] Progress: Continue Featureless Make, focusing on printing. Update the header description comments. I thought I was almost done but I noticed that I overlooked an entire directory tree. --- build/stand_alone/fake.settings | 2 +- level_3/fake/c/main/build.h | 4 + level_3/fake/c/main/build/library.h | 4 + level_3/fake/c/main/build/load.c | 184 ++-------------- level_3/fake/c/main/build/load.h | 4 + level_3/fake/c/main/build/object.h | 4 + level_3/fake/c/main/build/objects.h | 4 + level_3/fake/c/main/build/print-error.c | 31 +++ level_3/fake/c/main/build/print-error.h | 75 +++++++ level_3/fake/c/main/build/print-verbose.h | 4 + level_3/fake/c/main/build/print-warning.c | 142 +++++++++++++ level_3/fake/c/main/build/print-warning.h | 197 ++++++++++++++++++ level_3/fake/c/main/build/print.h | 4 + level_3/fake/c/main/build/program.h | 4 + level_3/fake/c/main/build/skeleton.h | 4 + level_3/fake/c/main/clean.h | 4 + level_3/fake/c/main/clean/print.h | 4 + level_3/fake/c/main/common.h | 2 +- level_3/fake/c/main/common/define.h | 2 +- level_3/fake/c/main/common/enumeration.h | 2 +- level_3/fake/c/main/common/print.h | 2 +- level_3/fake/c/main/common/string.h | 2 +- level_3/fake/c/main/common/type.h | 2 +- level_3/fake/c/main/fake.h | 38 ++-- level_3/fake/c/main/fake/path_generate.h | 4 +- level_3/fake/c/main/make.h | 4 + level_3/fake/c/main/make/load_fakefile.c | 26 +-- level_3/fake/c/main/make/load_fakefile.h | 4 + level_3/fake/c/main/make/load_parameters.h | 4 + level_3/fake/c/main/make/operate.h | 4 + level_3/fake/c/main/make/operate_block.h | 4 + level_3/fake/c/main/make/operate_process.h | 4 + .../fake/c/main/make/operate_process_type.h | 4 + level_3/fake/c/main/make/operate_validate.h | 4 + .../fake/c/main/make/operate_validate_type.h | 4 + level_3/fake/c/main/make/print-error.h | 4 + level_3/fake/c/main/make/print-verbose.h | 4 + level_3/fake/c/main/make/print-warning.c | 24 +-- level_3/fake/c/main/make/print-warning.h | 28 +-- level_3/fake/c/main/make/print.h | 4 + level_3/fake/c/main/print-error.h | 2 +- level_3/fake/c/main/print.c | 21 ++ level_3/fake/c/main/print.h | 62 +++++- level_3/fake/c/main/skeleton.h | 4 + level_3/fake/data/build/settings | 6 +- 45 files changed, 721 insertions(+), 229 deletions(-) create mode 100644 level_3/fake/c/main/build/print-warning.c create mode 100644 level_3/fake/c/main/build/print-warning.h diff --git a/build/stand_alone/fake.settings b/build/stand_alone/fake.settings index 3e6e20893..d77939f68 100644 --- a/build/stand_alone/fake.settings +++ b/build/stand_alone/fake.settings @@ -68,7 +68,7 @@ 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-error.c program/fake/main/print-warning.c program/fake/main/skeleton.c -build_sources_program 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-error.c program/fake/main/build/print-verbose.c program/fake/main/build/program.c program/fake/main/build/skeleton.c +build_sources_program 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-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 build_sources_program program/fake/main/clean/print.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 diff --git a/level_3/fake/c/main/build.h b/level_3/fake/c/main/build.h index c51a008d9..f0599bff6 100644 --- a/level_3/fake/c/main/build.h +++ b/level_3/fake/c/main/build.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides build functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_build_h #define _PRIVATE_build_h diff --git a/level_3/fake/c/main/build/library.h b/level_3/fake/c/main/build/library.h index cde67f321..6c775d2f6 100644 --- a/level_3/fake/c/main/build/library.h +++ b/level_3/fake/c/main/build/library.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides build library functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_build_library_h #define _PRIVATE_build_library_h diff --git a/level_3/fake/c/main/build/load.c b/level_3/fake/c/main/build/load.c index 1506104e1..e16da2581 100644 --- a/level_3/fake/c/main/build/load.c +++ b/level_3/fake/c/main/build/load.c @@ -1,6 +1,8 @@ #include "../fake.h" #include "../print.h" #include "load.h" +#include "print-error.h" +#include "print-warning.h" #ifdef __cplusplus extern "C" { @@ -198,15 +200,7 @@ extern "C" { for (uint8_t i = 0; i < 1; ++i) { if (!settings[i]->used) { - f_file_stream_lock(data->main->error.to); - - fl_print_format("%r%[%QThe setting '%]", data->main->error.to, f_string_eol_s, data->main->error.context, data->main->error.prefix, data->main->error.context); - fl_print_format("%[%Q%]", data->main->error.to, data->main->error.notable, names[i], data->main->error.notable); - fl_print_format("%[' is required but is not specified in the settings file '%]", data->main->error.to, data->main->error.context, data->main->error.context); - fl_print_format("%[%Q%]", data->main->error.to, data->main->error.notable, path_file, data->main->error.notable); - fl_print_format("%['.%]%r", data->main->error.to, data->main->error.context, data->main->error.context, f_string_eol_s); - - f_file_stream_unlock(data->main->error.to); + fake_build_print_error_missing_required_setting(data->setting, data->main->warning, names[i], path_file); failed = F_true; } @@ -593,17 +587,7 @@ extern "C" { } // for if (found == F_false) { - if (data->main->error.verbosity > f_console_verbosity_quiet_e) { - f_file_stream_lock(data->main->error.to); - - fl_print_format("%r%[%QThe specified mode '%]", data->main->error.to, f_string_eol_s, data->main->error.context, data->main->error.prefix, data->main->error.context); - fl_print_format("%[%Q%]", data->main->error.to, data->main->error.notable, modes->array[i], data->main->error.notable); - fl_print_format("%[' is not a valid mode, according to '%]", data->main->error.to, data->main->error.context, data->main->error.context); - fl_print_format("%[%Q%]", data->main->error.to, data->main->error.notable, path_file, data->main->error.notable); - fl_print_format("%['.%]%r", data->main->error.to, data->main->error.context, data->main->error.context, f_string_eol_s); - - f_file_stream_unlock(data->main->error.to); - } + fake_build_print_error_mode_invalid(data->setting, data->main->warning, modes->array[i], path_file); error_printed = F_true; *status = F_status_set_error(F_parameter); @@ -687,15 +671,7 @@ extern "C" { if (F_status_is_error(*status)) { if (*status == F_status_set_error(F_string_too_large)) { - if (data->main->error.verbosity > f_console_verbosity_quiet_e) { - f_file_stream_unlock(data->main->error.to); - - fl_print_format("%r%[%QA setting in the file '%]", data->main->error.to, f_string_eol_s, data->main->error.context, data->main->error.prefix, data->main->error.context); - fl_print_format("%[%Q%]", data->main->error.to, data->main->error.notable, path_file, data->main->error.notable); - fl_print_format("%[' is too long.%]%r", data->main->error.to, data->main->error.context, data->main->error.context, f_string_eol_s); - - f_file_stream_unlock(data->main->error.to); - } + fake_build_print_error_setting_too_long(data->setting, data->main->warning, path_file); } else if (!error_printed) { fake_print_error(data->setting, data->main->error, *status, function); @@ -1030,7 +1006,7 @@ extern "C" { 0, // search_exclusive 0, // search_shared 0, // search_static - fake_build_version_micro_e, // version_file + fake_build_version_micro_e, // version_file 0, // version_major 0, // version_major_prefix 0, // version_micro @@ -1039,7 +1015,7 @@ extern "C" { 0, // version_minor_prefix 0, // version_nano 0, // version_nano_prefix - fake_build_version_major_e, // version_target + fake_build_version_major_e, // version_target }; const f_string_static_t settings_single_version_default_name[] = { @@ -1047,13 +1023,13 @@ extern "C" { f_string_empty_s, // build_indexer f_string_empty_s, // build_language f_string_empty_s, // build_name - f_string_empty_s, // build_script - f_string_empty_s, // build_shared + fake_common_setting_bool_yes_s, // build_script + fake_common_setting_bool_yes_s, // build_shared f_string_empty_s, // build_sources_object f_string_empty_s, // build_sources_object_shared f_string_empty_s, // build_sources_object_static - f_string_empty_s, // build_static - f_string_empty_s, // has_path_standard + fake_common_setting_bool_yes_s, // build_static + fake_common_setting_bool_yes_s, // has_path_standard f_string_empty_s, // path_headers f_string_empty_s, // path_language f_string_empty_s, // path_library_script @@ -1067,12 +1043,12 @@ extern "C" { f_string_empty_s, // path_program_static f_string_empty_s, // path_sources f_string_empty_s, // path_sources_object - f_string_empty_s, // preserve_path_headers + fake_common_setting_bool_yes_s, // preserve_path_headers f_string_empty_s, // process_post f_string_empty_s, // process_pre - f_string_empty_s, // search_exclusive - f_string_empty_s, // search_shared - f_string_empty_s, // search_static + fake_common_setting_bool_yes_s, // search_exclusive + fake_common_setting_bool_yes_s, // search_shared + fake_common_setting_bool_yes_s, // search_static fake_build_version_micro_s, // version_file f_string_empty_s, // version_major f_string_empty_s, // version_major_prefix @@ -1156,23 +1132,7 @@ extern "C" { else { *settings_single_bool[i] = F_true; - if (data->main->warning.verbosity >= f_console_verbosity_verbose_e) { - f_file_stream_lock(data->main->warning.to); - - fl_print_format("%r%[%QThe setting '%]", data->main->warning.to, f_string_eol_s, data->main->warning.context, data->main->warning.prefix, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, settings_single_name[i], data->main->warning.notable); - fl_print_format("%[' in the file '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%Q%]", data->main->warning.to, data->main->warning.notable, path_file, data->main->warning.notable); - fl_print_format("%[' may be either '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_common_setting_bool_yes_s, data->main->warning.notable); - fl_print_format("%[' or '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_common_setting_bool_no_s, data->main->warning.notable); - fl_print_format("%[', defaulting to '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_common_setting_bool_yes_s, data->main->warning.notable); - fl_print_format("%['.%]%r", data->main->warning.to, data->main->warning.context, data->main->warning.context, f_string_eol_s); - - f_file_stream_unlock(data->main->warning.to); - } + fake_build_print_warning_setting_boolean_may_only_be(data->setting, data->main->warning, settings_single_name[i], path_file, settings_single_version_default_name[i]); } } else if (settings_single_type[i] == 4) { @@ -1188,25 +1148,7 @@ extern "C" { else { *settings_single_language[i] = fake_build_language_c_e; - if (data->main->warning.verbosity >= f_console_verbosity_verbose_e) { - f_file_stream_lock(data->main->warning.to); - - fl_print_format("%r%[%QThe setting '%]", data->main->warning.to, f_string_eol_s, data->main->warning.context, data->main->warning.prefix, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, settings_single_name[i], data->main->warning.notable); - fl_print_format("%[' in the file '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%Q%]", data->main->warning.to, data->main->warning.notable, path_file, data->main->warning.notable); - fl_print_format("%[' may only be one of '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_language_bash_s, data->main->warning.notable); - fl_print_format("%[', '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_language_c_s, data->main->warning.notable); - fl_print_format("%[', or '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_language_cpp_s, data->main->warning.notable); - fl_print_format("%[', defaulting to '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_language_c_s, data->main->warning.notable); - fl_print_format("%['.%]%r", data->main->warning.to, data->main->warning.context, data->main->warning.context, f_string_eol_s); - - f_file_stream_unlock(data->main->warning.to); - } + fake_build_print_warning_setting_language_may_only_be(data->setting, data->main->warning, settings_single_name[i], path_file, fake_build_language_c_s); } } else if (settings_single_type[i] == 5) { @@ -1225,27 +1167,7 @@ extern "C" { else { *settings_single_version[i] = settings_single_version_default[i]; - if (data->main->warning.verbosity >= f_console_verbosity_verbose_e) { - f_file_stream_lock(data->main->warning.to); - - fl_print_format("%r%[%QThe setting '%]", data->main->warning.to, f_string_eol_s, data->main->warning.context, data->main->warning.prefix, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, settings_single_name[i], data->main->warning.notable); - fl_print_format("%[' in the file '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%Q%]", data->main->warning.to, data->main->warning.notable, path_file, data->main->warning.notable); - fl_print_format("%[' may only be one of '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_version_major_s, data->main->warning.notable); - fl_print_format("%[', '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_version_minor_s, data->main->warning.notable); - fl_print_format("%[', '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_version_micro_s, data->main->warning.notable); - fl_print_format("%[', or '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_version_nano_s, data->main->warning.notable); - fl_print_format("%[', defaulting to '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, settings_single_version_default_name[i], data->main->warning.notable); - fl_print_format("%['.%]%r", data->main->warning.to, data->main->warning.context, data->main->warning.context, f_string_eol_s); - - f_file_stream_unlock(data->main->warning.to); - } + fake_build_print_warning_setting_version_may_only_be(data->setting, data->main->warning, settings_single_name[i], path_file, settings_single_version_default_name[i]); } } else if (settings_single_destination[i]) { @@ -1286,37 +1208,13 @@ extern "C" { if (checks && !setting->version_file) { setting->version_file = fake_build_version_micro_e; - if (data->main->warning.verbosity >= f_console_verbosity_verbose_e) { - f_file_stream_lock(data->main->warning.to); - - fl_print_format("%r%[%QThe setting '%]", data->main->warning.to, f_string_eol_s, data->main->warning.context, data->main->warning.prefix, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_setting_name_version_file_s, data->main->warning.notable); - fl_print_format("%[' in the file '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%Q%]", data->main->warning.to, data->main->warning.notable, path_file, data->main->warning.notable); - fl_print_format("%[' is required, defaulting to '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_version_micro_s, data->main->warning.notable); - fl_print_format("%['.%]%r", data->main->warning.to, data->main->warning.context, data->main->warning.context, f_string_eol_s); - - f_file_stream_unlock(data->main->warning.to); - } + fake_build_print_warning_setting_required_default_to(data->setting, data->main->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; - if (data->main->warning.verbosity >= f_console_verbosity_verbose_e) { - f_file_stream_lock(data->main->warning.to); - - fl_print_format("%r%[%QThe setting '%]", data->main->warning.to, f_string_eol_s, data->main->warning.context, data->main->warning.prefix, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_setting_name_version_target_s, data->main->warning.notable); - fl_print_format("%[' in the file '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%Q%]", data->main->warning.to, data->main->warning.notable, path_file, data->main->warning.notable); - fl_print_format("%[' is required, defaulting to '%]", data->main->warning.to, data->main->warning.context, data->main->warning.context); - fl_print_format("%[%r%]", data->main->warning.to, data->main->warning.notable, fake_build_version_major_s, data->main->warning.notable); - fl_print_format("%['.%]%r", data->main->warning.to, data->main->warning.context, data->main->warning.context, f_string_eol_s); - - f_file_stream_unlock(data->main->warning.to); - } + fake_build_print_warning_setting_required_default_to(data->setting, data->main->warning, fake_build_setting_name_version_target_s, path_file, fake_build_version_major_s); } } } @@ -1390,19 +1288,7 @@ extern "C" { setting->search_shared = F_false; } - if (data->main->error.verbosity > f_console_verbosity_quiet_e) { - f_file_stream_lock(data->main->error.to); - - fl_print_format("%r%[%QThe parameters '%]", data->main->error.to, f_string_eol_s, data->main->error.context, data->main->error.prefix, data->main->error.context); - fl_print_format("%[%r%r%]", data->main->error.to, data->main->error.notable, f_console_symbol_long_normal_s, fake_long_shared_disabled_s, data->main->error.notable); - fl_print_format("%[' and '%]", data->main->error.to, data->main->error.context, data->main->error.context); - fl_print_format("%[%r%r%]", data->main->error.to, data->main->error.notable, f_console_symbol_long_normal_s, fake_long_shared_enabled_s, data->main->error.notable); - fl_print_format("%[' contradict, defaulting to '%]", data->main->error.to, data->main->error.context, data->main->error.context); - fl_print_format("%[%r%r%]", data->main->error.to, data->main->error.notable, f_console_symbol_long_normal_s, setting->build_shared ? fake_long_shared_enabled_s : fake_long_shared_disabled_s, data->main->error.notable); - fl_print_format("%['.%]%r", data->main->error.to, data->main->error.context, data->main->error.context, f_string_eol_s); - - f_file_stream_unlock(data->main->error.to); - } + fake_build_print_warning_parameters_contradict(data->setting, data->main->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; @@ -1425,19 +1311,7 @@ extern "C" { setting->search_static = F_false; } - if (data->main->error.verbosity >= f_console_verbosity_verbose_e) { - f_file_stream_lock(data->main->error.to); - - fl_print_format("%r%[%QThe parameters '%]", data->main->error.to, f_string_eol_s, data->main->error.context, data->main->error.prefix, data->main->error.context); - fl_print_format("%[%r%r%]", data->main->error.to, data->main->error.notable, f_console_symbol_long_normal_s, fake_long_static_disabled_s, data->main->error.notable); - fl_print_format("%[' and '%]", data->main->error.to, data->main->error.context, data->main->error.context); - fl_print_format("%[%r%r%]", data->main->error.to, data->main->error.notable, f_console_symbol_long_normal_s, fake_long_static_enabled_s, data->main->error.notable); - fl_print_format("%[' contradict, defaulting to '%]", data->main->error.to, data->main->error.context, data->main->error.context); - fl_print_format("%[%r%r%]", data->main->error.to, data->main->error.notable, f_console_symbol_long_normal_s, setting->build_static ? fake_long_static_enabled_s : fake_long_static_disabled_s, data->main->error.notable); - fl_print_format("%['.%]%r", data->main->error.to, data->main->error.context, data->main->error.context, f_string_eol_s); - - f_file_stream_unlock(data->main->error.to); - } + fake_build_print_warning_parameters_contradict(data->setting, data->main->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; @@ -1451,19 +1325,7 @@ extern "C" { 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) { - if (data->main->error.verbosity > f_console_verbosity_quiet_e) { - f_file_stream_lock(data->main->error.to); - - fl_print_format("%r%[%QThe build settings '%]", data->main->error.to, f_string_eol_s, data->main->error.context, data->main->error.prefix, data->main->error.context); - fl_print_format("%[%r%]", data->main->error.to, data->main->error.notable, fake_build_setting_name_build_shared_s, data->main->error.notable); - fl_print_format("%[' and '%]", data->main->error.to, data->main->error.context, data->main->error.context); - fl_print_format("%[%r%]", data->main->error.to, data->main->error.notable, fake_build_setting_name_build_static_s, data->main->error.notable); - fl_print_format("%[' cannot both be false when using the language '%]", data->main->error.to, data->main->error.context, data->main->error.context); - fl_print_format("%[%r%]", data->main->error.to, data->main->error.notable, setting->build_language == fake_build_language_c_e ? fake_build_language_c_s : fake_build_language_cpp_s, data->main->error.notable); - fl_print_format("%['.%]%r", data->main->error.to, data->main->error.context, data->main->error.context, f_string_eol_s); - - f_file_stream_unlock(data->main->error.to); - } + fake_build_print_warning_setting_both_cannot_when_language(data->setting, data->main->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); *status = F_status_set_error(F_failure); } diff --git a/level_3/fake/c/main/build/load.h b/level_3/fake/c/main/build/load.h index 03377ef42..0cea8ca57 100644 --- a/level_3/fake/c/main/build/load.h +++ b/level_3/fake/c/main/build/load.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides build load functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_build_load_h #define _PRIVATE_build_load_h diff --git a/level_3/fake/c/main/build/object.h b/level_3/fake/c/main/build/object.h index 3fc58b669..569a968a2 100644 --- a/level_3/fake/c/main/build/object.h +++ b/level_3/fake/c/main/build/object.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides build object functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_build_object_h #define _PRIVATE_build_object_h diff --git a/level_3/fake/c/main/build/objects.h b/level_3/fake/c/main/build/objects.h index c4f5ac549..a7eb6bdea 100644 --- a/level_3/fake/c/main/build/objects.h +++ b/level_3/fake/c/main/build/objects.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides build objects functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_build_objects_h #define _PRIVATE_build_objects_h diff --git a/level_3/fake/c/main/build/print-error.c b/level_3/fake/c/main/build/print-error.c index 5950a43e7..3174c80ad 100644 --- a/level_3/fake/c/main/build/print-error.c +++ b/level_3/fake/c/main/build/print-error.c @@ -27,6 +27,37 @@ extern "C" { } #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) { + + if (!setting || 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); + + 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) { + + fake_print_context_wrapped_variables(setting, 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) { + + if (!setting || 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"); + + return F_none; + } +#endif // _di_fake_build_print_error_setting_too_long_ + #ifdef __cplusplus } // extern "C" #endif diff --git a/level_3/fake/c/main/build/print-error.h b/level_3/fake/c/main/build/print-error.h index a1903fe79..cebac9564 100644 --- a/level_3/fake/c/main/build/print-error.h +++ b/level_3/fake/c/main/build/print-error.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides build error print functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_build_print_error_h #define _PRIVATE_build_print_error_h @@ -56,6 +60,77 @@ extern "C" { 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); #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.status. + * @param print + * Designates the how and where to print. + * @param name + * The name of the missing setting. + * @param path + * The path to the file. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + * + * @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); +#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.status. + * @param print + * Designates the how and where to print. + * @param mode + * The invalid mode. + * @param path + * The path to the file. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + * + * @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); +#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. + * + * @param setting + * The main program settings. + * + * This does not alter setting.status. + * @param print + * Designates the how and where to print. + * @param path + * The path that cannot be created. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + * + * @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); +#endif // _di_fake_build_print_error_setting_too_long_ + #ifdef __cplusplus } // extern "C" #endif diff --git a/level_3/fake/c/main/build/print-verbose.h b/level_3/fake/c/main/build/print-verbose.h index 1acdf10f6..cafaeeb48 100644 --- a/level_3/fake/c/main/build/print-verbose.h +++ b/level_3/fake/c/main/build/print-verbose.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides build verbose print functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_build_print_verbose_h #define _PRIVATE_build_print_verbose_h diff --git a/level_3/fake/c/main/build/print-warning.c b/level_3/fake/c/main/build/print-warning.c new file mode 100644 index 000000000..ca7ea5c72 --- /dev/null +++ b/level_3/fake/c/main/build/print-warning.c @@ -0,0 +1,142 @@ +#include "../fake.h" +#include "print-warning.h" + +#ifdef __cplusplus +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) { + + if (!setting || 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); + + 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) { + + if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + fl_print_format("%r%[%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); + + 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) { + + if (!setting || 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); + + 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) { + + if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + fl_print_format("%[%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); + + 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) { + + if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + fl_print_format("%[%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); + + 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 || print.verbosity < f_console_verbosity_verbose_e) return F_output_not; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + fl_print_format("%[%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; + } +#endif // _di_fake_build_print_warning_setting_version_may_only_be_ + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_3/fake/c/main/build/print-warning.h b/level_3/fake/c/main/build/print-warning.h new file mode 100644 index 000000000..a879d950f --- /dev/null +++ b/level_3/fake/c/main/build/print-warning.h @@ -0,0 +1,197 @@ +/** + * FLL - Level 3 + * + * Project: Featureless Make + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * Provides build warning print functionality. + * + * This is auto-included and should not need to be explicitly included. + */ +#ifndef _PRIVATE_build_print_warning_h +#define _PRIVATE_build_print_warning_h + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Print error message regarding two parameters contradicting and designating a default fallback parameter. + * + * @param setting + * The main program settings. + * + * This does not alter setting.status. + * @param print + * Designates the how and where to print. + * @param symbol_1 + * The symbol for the first parameter. + * @param name_1 + * The name for the first parameter. + * @param symbol_2 + * The symbol for the second parameter. + * @param name_2 + * The name for the second parameter. + * @param symbol_3 + * The symbol for the third parameter (the fallback). + * @param name_3 + * The name for the third parameter (the fallback). + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + * + * @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); +#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.status. + * @param print + * Designates the how and where to print. + * @param name + * The name for the setting. + * @param path + * The path to the setting file. + * @param default_to + * The value being defaulted to. + * + * @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() + * + * @see fake_print_line_first_unlocked() + */ +#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); +#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.status. + * @param print + * Designates the how and where to print. + * @param name_1 + * The name for the first setting. + * @param name_2 + * The name for the second setting. + * @param language + * The name for the language. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + * + * @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); +#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.status. + * @param print + * Designates the how and where to print. + * @param name + * The name for the setting. + * @param path + * The path to the setting file. + * @param default_to + * The value being defaulted to. + * + * @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() + * + * @see fake_print_line_first_unlocked() + */ +#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); +#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.status. + * @param print + * Designates the how and where to print. + * @param name_1 + * The name for the first setting. + * @param name_2 + * The name for the second setting. + * @param language + * The name for the language. + * + * @return + * F_none on success. + * F_output_not on success, but no printing is performed. + * + * @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); +#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.status. + * @param print + * Designates the how and where to print. + * @param name + * The name for the setting. + * @param path + * The path to the setting file. + * @param default_to + * The value being defaulted to. + * + * @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() + * + * @see fake_print_line_first_unlocked() + */ +#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); +#endif // _di_fake_build_print_warning_setting_version_may_only_be_ + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _PRIVATE_build_print_warning_h diff --git a/level_3/fake/c/main/build/print.h b/level_3/fake/c/main/build/print.h index 11b2ce440..16b654d72 100644 --- a/level_3/fake/c/main/build/print.h +++ b/level_3/fake/c/main/build/print.h @@ -4,6 +4,10 @@ * 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 _PRIVATE_build_print_h #define _PRIVATE_build_print_h diff --git a/level_3/fake/c/main/build/program.h b/level_3/fake/c/main/build/program.h index 517b04538..c38310c39 100644 --- a/level_3/fake/c/main/build/program.h +++ b/level_3/fake/c/main/build/program.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides build program functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_build_program_h #define _PRIVATE_build_program_h diff --git a/level_3/fake/c/main/build/skeleton.h b/level_3/fake/c/main/build/skeleton.h index ab39895bb..572cb813d 100644 --- a/level_3/fake/c/main/build/skeleton.h +++ b/level_3/fake/c/main/build/skeleton.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides build skeleton functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_build_skeleton_h #define _PRIVATE_build_skeleton_h diff --git a/level_3/fake/c/main/clean.h b/level_3/fake/c/main/clean.h index ed42d02a7..cbf493fe6 100644 --- a/level_3/fake/c/main/clean.h +++ b/level_3/fake/c/main/clean.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides clean functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_clean_h #define _PRIVATE_clean_h diff --git a/level_3/fake/c/main/clean/print.h b/level_3/fake/c/main/clean/print.h index 8608a372c..f8c77fa9a 100644 --- a/level_3/fake/c/main/clean/print.h +++ b/level_3/fake/c/main/clean/print.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides clean print functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_clean_print_h #define _PRIVATE_clean_print_h diff --git a/level_3/fake/c/main/common.h b/level_3/fake/c/main/common.h index 1fb915616..f6199e138 100644 --- a/level_3/fake/c/main/common.h +++ b/level_3/fake/c/main/common.h @@ -5,7 +5,7 @@ * API Version: 0.7 * Licenses: lgpl-2.1-or-later * - * Provides the common functionality. + * Provides common functionality. * * This is auto-included and should not need to be explicitly included. */ diff --git a/level_3/fake/c/main/common/define.h b/level_3/fake/c/main/common/define.h index d25de6c8e..f308b4500 100644 --- a/level_3/fake/c/main/common/define.h +++ b/level_3/fake/c/main/common/define.h @@ -5,7 +5,7 @@ * API Version: 0.7 * Licenses: lgpl-2.1-or-later * - * Provides the common defines. + * Provides common define functionality. * * This is auto-included and should not need to be explicitly included. */ diff --git a/level_3/fake/c/main/common/enumeration.h b/level_3/fake/c/main/common/enumeration.h index dc7e31d99..fb07ffcb1 100644 --- a/level_3/fake/c/main/common/enumeration.h +++ b/level_3/fake/c/main/common/enumeration.h @@ -5,7 +5,7 @@ * API Version: 0.7 * Licenses: lgpl-2.1-or-later * - * Provides the common enumeration structures. + * Provides common enumeration functionality. * * This is auto-included and should not need to be explicitly included. */ diff --git a/level_3/fake/c/main/common/print.h b/level_3/fake/c/main/common/print.h index 777da6703..fd48ee5fd 100644 --- a/level_3/fake/c/main/common/print.h +++ b/level_3/fake/c/main/common/print.h @@ -5,7 +5,7 @@ * API Version: 0.7 * Licenses: lgpl-2.1-or-later * - * Provides the common print functionality. + * Provides common print functionality. * * This is auto-included and should not need to be explicitly included. */ diff --git a/level_3/fake/c/main/common/string.h b/level_3/fake/c/main/common/string.h index 1465fb1bf..298b19ed1 100644 --- a/level_3/fake/c/main/common/string.h +++ b/level_3/fake/c/main/common/string.h @@ -5,7 +5,7 @@ * API Version: 0.7 * Licenses: lgpl-2.1-or-later * - * Provides the common string structures. + * Provides common string functionality. * * This is auto-included and should not need to be explicitly included. */ diff --git a/level_3/fake/c/main/common/type.h b/level_3/fake/c/main/common/type.h index bb4ea2772..166b89496 100644 --- a/level_3/fake/c/main/common/type.h +++ b/level_3/fake/c/main/common/type.h @@ -5,7 +5,7 @@ * API Version: 0.7 * Licenses: lgpl-2.1-or-later * - * Provides the common type structures. + * Provides common type functionality. * * This is auto-included and should not need to be explicitly included. */ diff --git a/level_3/fake/c/main/fake.h b/level_3/fake/c/main/fake.h index 6d3649b01..7479367f7 100644 --- a/level_3/fake/c/main/fake.h +++ b/level_3/fake/c/main/fake.h @@ -16,24 +16,30 @@ * * The built sources are placed in the build directory with the following structure: * - build/ - * - data/ - * - documents/ - * - includes/ - * - libraries/ - * - script/ - * - shared/ - * - static/ - * - objects/ - * - programs/ - * - script/ - * - shared/ - * - static/ - * - settings/ - * - stage/ + * ├── data + * ├── documentation + * ├── documents + * ├── includes + * ├── libraries + * │   ├── script + * │   ├── shared + * │   └── static + * ├── objects + * │   ├── script + * │   ├── shared + * │   └── static + * ├── programs + * │   ├── script + * │   ├── shared + * │   └── static + * ├── settings + * └── stage * * The "data/" directory contains all file data, such as firmware or files commonly found under /usr/share in a standard GNU Linux system. - * The "documents/" directory contains all documentation after any build-time processing. - * The "libraries/" and "programs/" directories contains the sub-directories "script/", "shared/", and "static/". + * The "documentation/" directory contains special documentation files such as man pages. + * The "documents/" directory contains all other documents, data, and documentation. + * The "includes/" directory contains all include files (such as C header files). + * The "libraries/", "objects/", and "programs/" directories contains the sub-directories "script/", "shared/", and "static/". * The "libraries/" directory will contain compiled libraries or library-like scripts in their respective sub-directories. * The "objects/" directory will contain any compile object files. * The "programs/" directory will contain compiled programs or program-like scripts in their respective sub-directories. diff --git a/level_3/fake/c/main/fake/path_generate.h b/level_3/fake/c/main/fake/path_generate.h index c27f8f6c6..eacffca92 100644 --- a/level_3/fake/c/main/fake/path_generate.h +++ b/level_3/fake/c/main/fake/path_generate.h @@ -5,9 +5,9 @@ * API Version: 0.7 * Licenses: lgpl-2.1-or-later * - * Provides the path generate functionality for the fake program. + * Provides path generate functionality. * - * This is to be specifically included by the fake program sources and not anywhere else. + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_fake_path_generate_h #define _fake_fake_path_generate_h diff --git a/level_3/fake/c/main/make.h b/level_3/fake/c/main/make.h index f3b2cd990..8098223fe 100644 --- a/level_3/fake/c/main/make.h +++ b/level_3/fake/c/main/make.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_make_h #define _PRIVATE_make_h diff --git a/level_3/fake/c/main/make/load_fakefile.c b/level_3/fake/c/main/make/load_fakefile.c index c5b202072..61d5e4a1f 100644 --- a/level_3/fake/c/main/make/load_fakefile.c +++ b/level_3/fake/c/main/make/load_fakefile.c @@ -123,7 +123,7 @@ extern "C" { 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_settings_object_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_item_settings_s); + fake_make_print_warning_setting_object_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_item_settings_s); continue; } @@ -154,7 +154,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_settings_object_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_item_main_s); + fake_make_print_warning_setting_object_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_item_main_s); continue; } @@ -334,15 +334,15 @@ extern "C" { data_make->setting_make.load_build = F_false; } else { - fake_make_print_warning_settings_content_invalid(data_make->setting, data_make->main->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->setting, data_make->main->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_settings_content_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_setting_load_build_s); + fake_make_print_warning_setting_content_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_setting_load_build_s); } } else { - fake_make_print_warning_settings_content_empty(data_make->setting, data_make->main->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->setting, data_make->main->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_ @@ -354,11 +354,11 @@ extern "C" { *range_compiler = &content->array[content->used - 1]; if (content->used > 1) { - fake_make_print_warning_settings_content_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_setting_compiler_s); + fake_make_print_warning_setting_content_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_setting_compiler_s); } } else { - fake_make_print_warning_settings_content_empty(data_make->setting, data_make->main->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->setting, data_make->main->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_ @@ -549,15 +549,15 @@ extern "C" { data_make->setting_make.fail = fake_make_operation_fail_ignore_e; } else { - fake_make_print_warning_settings_content_invalid(data_make->setting, data_make->main->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->setting, data_make->main->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_settings_content_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_setting_fail_s); + fake_make_print_warning_setting_content_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_setting_fail_s); } } else { - fake_make_print_warning_settings_content_empty(data_make->setting, data_make->main->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->setting, data_make->main->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_ @@ -569,11 +569,11 @@ extern "C" { *range_indexer = &content->array[content->used - 1]; if (content->used > 1) { - fake_make_print_warning_settings_content_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_setting_indexer_s); + fake_make_print_warning_setting_content_multiple(data_make->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, fake_make_setting_indexer_s); } } else { - fake_make_print_warning_settings_content_empty(data_make->setting, data_make->main->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->setting, data_make->main->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_ @@ -614,7 +614,7 @@ extern "C" { } } else { - fake_make_print_warning_settings_content_empty(data_make->setting, data_make->main->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->setting, data_make->main->warning, data_make->data->file_data_build_fakefile, data_make->buffer, *object, fake_make_setting_return_s); } return F_none; diff --git a/level_3/fake/c/main/make/load_fakefile.h b/level_3/fake/c/main/make/load_fakefile.h index a0296df0b..26ee88f91 100644 --- a/level_3/fake/c/main/make/load_fakefile.h +++ b/level_3/fake/c/main/make/load_fakefile.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make load fakefile functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_load_fakefile_h #define _fake_make_load_fakefile_h diff --git a/level_3/fake/c/main/make/load_parameters.h b/level_3/fake/c/main/make/load_parameters.h index 613108cfd..b50902eb9 100644 --- a/level_3/fake/c/main/make/load_parameters.h +++ b/level_3/fake/c/main/make/load_parameters.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make load parameter functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_load_parameters_h #define _fake_make_load_parameters_h diff --git a/level_3/fake/c/main/make/operate.h b/level_3/fake/c/main/make/operate.h index 042a67361..a75c8caf3 100644 --- a/level_3/fake/c/main/make/operate.h +++ b/level_3/fake/c/main/make/operate.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make operate functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_operate_h #define _fake_make_operate_h diff --git a/level_3/fake/c/main/make/operate_block.h b/level_3/fake/c/main/make/operate_block.h index 08cb2d1be..c72404f4a 100644 --- a/level_3/fake/c/main/make/operate_block.h +++ b/level_3/fake/c/main/make/operate_block.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make operate block functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_operate_block_h #define _fake_make_operate_block_h diff --git a/level_3/fake/c/main/make/operate_process.h b/level_3/fake/c/main/make/operate_process.h index 77399902e..22ce8d2f0 100644 --- a/level_3/fake/c/main/make/operate_process.h +++ b/level_3/fake/c/main/make/operate_process.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make operate process functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_operate_process_h #define _fake_make_operate_process_h diff --git a/level_3/fake/c/main/make/operate_process_type.h b/level_3/fake/c/main/make/operate_process_type.h index 31525a287..379044c18 100644 --- a/level_3/fake/c/main/make/operate_process_type.h +++ b/level_3/fake/c/main/make/operate_process_type.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make opeate process type functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_operate_type_h #define _fake_make_operate_type_h diff --git a/level_3/fake/c/main/make/operate_validate.h b/level_3/fake/c/main/make/operate_validate.h index 714b78192..dfeb6545a 100644 --- a/level_3/fake/c/main/make/operate_validate.h +++ b/level_3/fake/c/main/make/operate_validate.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make operate validate functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_operate_validate_h #define _fake_make_operate_validate_h diff --git a/level_3/fake/c/main/make/operate_validate_type.h b/level_3/fake/c/main/make/operate_validate_type.h index 2d1abcc0c..042a1812f 100644 --- a/level_3/fake/c/main/make/operate_validate_type.h +++ b/level_3/fake/c/main/make/operate_validate_type.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make operate validate type functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_operate_validate_type_h #define _fake_make_operate_validate_type_h diff --git a/level_3/fake/c/main/make/print-error.h b/level_3/fake/c/main/make/print-error.h index 07eeaf4e1..dc16a6331 100644 --- a/level_3/fake/c/main/make/print-error.h +++ b/level_3/fake/c/main/make/print-error.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make error print functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_print_error_h #define _fake_make_print_error_h diff --git a/level_3/fake/c/main/make/print-verbose.h b/level_3/fake/c/main/make/print-verbose.h index a8a1835e5..e79cfcd78 100644 --- a/level_3/fake/c/main/make/print-verbose.h +++ b/level_3/fake/c/main/make/print-verbose.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make verbose print functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_print_verbose_h #define _fake_make_print_verbose_h diff --git a/level_3/fake/c/main/make/print-warning.c b/level_3/fake/c/main/make/print-warning.c index db7e65671..50f6697f3 100644 --- a/level_3/fake/c/main/make/print-warning.c +++ b/level_3/fake/c/main/make/print-warning.c @@ -70,8 +70,8 @@ extern "C" { } #endif // _di_fake_make_print_warning_file_not_found_ -#ifndef _di_fake_make_print_warning_settings_content_empty_ - f_status_t fake_make_print_warning_settings_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) { +#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) { if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not; @@ -91,10 +91,10 @@ extern "C" { return F_none; } -#endif // _di_fake_make_print_warning_settings_content_empty_ +#endif // _di_fake_make_print_warning_setting_content_empty_ -#ifndef _di_fake_make_print_warning_settings_content_invalid_ - f_status_t fake_make_print_warning_settings_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) { +#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) { if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not; @@ -116,10 +116,10 @@ extern "C" { return F_none; } -#endif // _di_fake_make_print_warning_settings_content_invalid_ +#endif // _di_fake_make_print_warning_setting_content_invalid_ -#ifndef _di_fake_make_print_warning_settings_content_multiple_ - f_status_t fake_make_print_warning_settings_content_multiple(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_static_t name) { +#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) { if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not; @@ -127,10 +127,10 @@ extern "C" { return F_none; } -#endif // _di_fake_make_print_warning_settings_content_multiple_ +#endif // _di_fake_make_print_warning_setting_content_multiple_ -#ifndef _di_fake_make_print_warning_settings_object_multiple_ - f_status_t fake_make_print_warning_settings_object_multiple(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_static_t name) { +#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) { if (!setting || print.verbosity < f_console_verbosity_verbose_e) return F_output_not; @@ -138,7 +138,7 @@ extern "C" { return F_none; } -#endif // _di_fake_make_print_warning_settings_object_multiple_ +#endif // _di_fake_make_print_warning_setting_object_multiple_ #ifdef __cplusplus } // extern "C" diff --git a/level_3/fake/c/main/make/print-warning.h b/level_3/fake/c/main/make/print-warning.h index 7c232f773..b46b7e56e 100644 --- a/level_3/fake/c/main/make/print-warning.h +++ b/level_3/fake/c/main/make/print-warning.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make warning print functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_print_warning_h #define _fake_make_print_warning_h @@ -142,9 +146,9 @@ extern "C" { * F_none on success. * F_output_not on success, but no printing is performed. */ -#ifndef _di_fake_make_print_warning_settings_content_empty_ - extern f_status_t fake_make_print_warning_settings_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); -#endif // _di_fake_make_print_warning_settings_content_empty_ +#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); +#endif // _di_fake_make_print_warning_setting_content_empty_ /** * Print warning message when fake settings content is invalid. @@ -171,9 +175,9 @@ extern "C" { * F_none on success. * F_output_not on success, but no printing is performed. */ -#ifndef _di_fake_make_print_warning_settings_content_invalid_ - extern f_status_t fake_make_print_warning_settings_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); -#endif // _di_fake_make_print_warning_settings_content_invalid_ +#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); +#endif // _di_fake_make_print_warning_setting_content_invalid_ /** * Print warning message when settings content has too many values. @@ -194,9 +198,9 @@ extern "C" { * F_none on success. * F_output_not on success, but no printing is performed. */ -#ifndef _di_fake_make_print_warning_settings_content_multiple_ - extern f_status_t fake_make_print_warning_settings_content_multiple(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_static_t name); -#endif // _di_fake_make_print_warning_settings_content_multiple_ +#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); +#endif // _di_fake_make_print_warning_setting_content_multiple_ /** * Print warning message when fakefile has too many objects with the same name. @@ -217,9 +221,9 @@ extern "C" { * F_none on success. * F_output_not on success, but no printing is performed. */ -#ifndef _di_fake_make_print_warning_settings_object_multiple_ - extern f_status_t fake_make_print_warning_settings_object_multiple(fake_setting_t * const setting, const fl_print_t print, const f_string_static_t fakefile, const f_string_static_t name); -#endif // _di_fake_make_print_warning_settings_object_multiple_ +#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); +#endif // _di_fake_make_print_warning_setting_object_multiple_ #ifdef __cplusplus } // extern "C" diff --git a/level_3/fake/c/main/make/print.h b/level_3/fake/c/main/make/print.h index 7814abbbc..e1c1389af 100644 --- a/level_3/fake/c/main/make/print.h +++ b/level_3/fake/c/main/make/print.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides make print functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _fake_make_print_h #define _fake_make_print_h diff --git a/level_3/fake/c/main/print-error.h b/level_3/fake/c/main/print-error.h index b61aba7de..b1c322852 100644 --- a/level_3/fake/c/main/print-error.h +++ b/level_3/fake/c/main/print-error.h @@ -5,7 +5,7 @@ * API Version: 0.7 * Licenses: lgpl-2.1-or-later * - * Provides the error print functionality. + * Provides error print functionality. * * This is auto-included and should not need to be explicitly included. */ diff --git a/level_3/fake/c/main/print.c b/level_3/fake/c/main/print.c index 10672b2d4..c141ea758 100644 --- a/level_3/fake/c/main/print.c +++ b/level_3/fake/c/main/print.c @@ -53,6 +53,27 @@ extern "C" { } #endif // _di_fake_print_context_wrapped_parameter_ +#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) { + + if (!setting) return; + + f_file_stream_lock(print.to); + + fake_print_line_first_unlocked(setting, print); + + 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); + } +#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) { diff --git a/level_3/fake/c/main/print.h b/level_3/fake/c/main/print.h index 8712eebc8..3c42e29a2 100644 --- a/level_3/fake/c/main/print.h +++ b/level_3/fake/c/main/print.h @@ -4,6 +4,10 @@ * 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 @@ -91,10 +95,9 @@ extern "C" { * Set to NULL to disable. * @param symbol * The string representing the symbol for the parameter. - * Set to NULL to disable. + * Set to f_string_empty_s to disable. * @param name * The string representing the parameter name. - * May be an empty string (like f_string_empty_s) to not print anything. * @param after * The string being printed after the variable. * Likely should have a space added at the start of the string. @@ -110,6 +113,61 @@ extern "C" { 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); #endif // _di_fake_print_context_wrapped_parameter_ +/** + * Print a parameter context message with a there parameters, with symbols, and wrapping strings. + * + * 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.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 symbol_1 + * The string representing the symbol for the parameter. + * Set to f_string_empty_s to disable. + * @param name_1 + * The string representing the parameter name. + * @param middle_1 + * 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 symbol_2 + * The string representing the symbol for the parameter. + * Set to f_string_empty_s to disable. + * @param name_2 + * The string representing the parameter name. + * @param middle_2 + * 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 symbol_3 + * The string representing the symbol for the parameter. + * Set to f_string_empty_s to disable. + * @param name_3 + * The string representing the parameter name. + * @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() + * + * @see fake_print_line_first_unlocked() + */ +#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); +#endif // _di_fake_print_context_wrapped_parameter_ + /** * Print a wrapped context message with a before string, an after string, and a string variable. * diff --git a/level_3/fake/c/main/skeleton.h b/level_3/fake/c/main/skeleton.h index 21cc97a1c..685121d77 100644 --- a/level_3/fake/c/main/skeleton.h +++ b/level_3/fake/c/main/skeleton.h @@ -4,6 +4,10 @@ * Project: Featureless Make * API Version: 0.7 * Licenses: lgpl-2.1-or-later + * + * Provides skeleton functionality. + * + * This is auto-included and should not need to be explicitly included. */ #ifndef _PRIVATE_skeleton_h #define _PRIVATE_skeleton_h diff --git a/level_3/fake/data/build/settings b/level_3/fake/data/build/settings index ebfcf378b..0366e1e1f 100644 --- a/level_3/fake/data/build/settings +++ b/level_3/fake/data/build/settings @@ -28,7 +28,7 @@ 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-error.c main/print-warning.c main/skeleton.c -build_sources_library main/build/library.c main/build/load.c main/build/object.c main/build/objects.c main/build/print.c main/build/print-error.c main/build/print-verbose.c main/build/program.c main/build/skeleton.c +build_sources_library main/build/library.c main/build/load.c main/build/object.c main/build/objects.c main/build/print.c main/build/print-error.c main/build/print-verbose.c main/build/print-warning.c main/build/program.c main/build/skeleton.c build_sources_library main/clean/print.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 @@ -37,11 +37,11 @@ build_sources_library main/make/load_fakefile.c main/make/load_parameters.c main 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-error.h main/print-warning.h main/skeleton.h -build_sources_headers main/build/library.h main/build/load.h main/build/object.h main/build/objects.h main/build/print.h main/build/print-error.h main/build/print-verbose.h main/build/program.h main/build/skeleton.h +build_sources_headers main/build/library.h main/build/load.h main/build/object.h main/build/objects.h main/build/print.h main/build/print-error.h main/build/print-verbose.h main/build/print-warning.h main/build/program.h main/build/skeleton.h build_sources_headers main/clean/print.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.h main/make/print-error.h main/make/print-verbose.h main/make/print-warning.h main/make/print-warning.h build_sources_documentation man -- 2.47.3