From: Kevin Day Date: Fri, 24 Feb 2023 05:37:34 +0000 (-0600) Subject: Progress: Continue Featureless Make, focusing on printing. X-Git-Url: https://git.kevux.org/?a=commitdiff_plain;h=c3e5ece4654283486a86c9296cfb0fd4b7be7e95;p=fll 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. --- diff --git a/build/stand_alone/fake.settings b/build/stand_alone/fake.settings index 3e6e208..d77939f 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 c51a008..f0599bf 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 cde67f3..6c775d2 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 1506104..e16da25 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 03377ef..0cea8ca 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 3fc58b6..569a968 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 c4f5ac5..a7eb6bd 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 5950a43..3174c80 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 a1903fe..cebac95 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 1acdf10..cafaeeb 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 0000000..ca7ea5c --- /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 0000000..a879d95 --- /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 11b2ce4..16b654d 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 517b045..c38310c 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 ab39895..572cb81 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 ed42d02..cbf493f 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 8608a37..f8c77fa 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 1fb9156..f6199e1 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 d25de6c..f308b45 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 dc7e31d..fb07ffc 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 777da67..fd48ee5 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 1465fb1..298b19e 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 bb4ea27..166b894 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 6d3649b..7479367 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 c27f8f6..eacffca 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 f3b2cd9..8098223 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 c5b2020..61d5e4a 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 a0296df..26ee88f 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 613108c..b50902e 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 042a673..a75c8ca 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 08cb2d1..c72404f 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 7739990..22ce8d2 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 31525a2..379044c 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 714b781..dfeb654 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 2d1abcc..042a181 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 07eeaf4..dc16a63 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 a8a1835..e79cfcd 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 db7e656..50f6697 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 7c232f7..b46b7e5 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 7814abb..e1c1389 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 b61aba7..b1c3228 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 10672b2..c141ea7 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 8712eeb..3c42e29 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. @@ -111,6 +114,61 @@ extern "C" { #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. * * This is primarily used by numerous print functions to reduce code. diff --git a/level_3/fake/c/main/skeleton.h b/level_3/fake/c/main/skeleton.h index 21cc97a..685121d 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 ebfcf37..0366e1e 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