From b5d1a97c9405fd68a46fda2a9b49cfbd6abc324c Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Thu, 8 May 2025 19:54:09 -0500 Subject: [PATCH] Update: Organize error status handling and address return codes. Improve some of the status handling that I noticed. Several functions are return code 0 even on status errors. Only when the execute is performed does the return code get set to something else. Make sure this behavior is consistent. There `fake_execute()` does not need to have the error message printed after calling. That function already prints the error messages as needed. --- level_3/fake/c/main/build.c | 91 +++++++-- level_3/fake/c/main/build/library.c | 74 ++++---- level_3/fake/c/main/build/object.c | 73 +++----- level_3/fake/c/main/build/program.c | 235 ++++++++++++------------ level_3/fake/c/main/make/operate_process_type.c | 17 +- 5 files changed, 247 insertions(+), 243 deletions(-) diff --git a/level_3/fake/c/main/build.c b/level_3/fake/c/main/build.c index 48bd7a0..c69075e 100644 --- a/level_3/fake/c/main/build.c +++ b/level_3/fake/c/main/build.c @@ -23,15 +23,23 @@ extern "C" { main->setting.state.status = f_string_dynamic_append_nulless(is_shared ? data->path_build_libraries_shared : data->path_build_libraries_static, &main->cache_argument); } + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); + + return; + } + if (main->cache_argument.used) { - if (F_status_is_error_not(main->setting.state.status)) { - main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); + main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); + + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + + return; } } - if (F_status_is_error_not(main->setting.state.status)) { - fake_string_dynamic_reset(&main->cache_argument); - } + fake_string_dynamic_reset(&main->cache_argument); if (F_status_is_error_not(main->setting.state.status)) { main->setting.state.status = f_string_dynamic_append_nulless(fake_build_parameter_library_include_s, &main->cache_argument); @@ -41,10 +49,14 @@ extern "C" { main->setting.state.status = f_string_dynamic_append_nulless(data->path_build_includes, &main->cache_argument); } + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); + + return; + } + if (main->cache_argument.used) { - if (F_status_is_error_not(main->setting.state.status)) { - main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); - } + main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); } if (F_status_is_error_not(main->setting.state.status) && main->setting.work.used) { @@ -71,9 +83,13 @@ extern "C" { main->setting.state.status = f_string_dynamic_append_nulless(data->path_work_libraries_shared, &main->cache_argument); } - if (F_status_is_error_not(main->setting.state.status)) { - main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); + + return; } + + main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); } if (data_build->setting.search_static && (!is_shared || !data_build->setting.search_exclusive)) { @@ -87,13 +103,21 @@ extern "C" { main->setting.state.status = f_string_dynamic_append_nulless(data->path_work_libraries_static, &main->cache_argument); } - if (F_status_is_error_not(main->setting.state.status)) { - main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); + + return; } + + main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); } } - if (F_status_is_error(main->setting.state.status)) return; + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + + return; + } { f_string_statics_t empty = f_string_statics_t_initialize; @@ -154,7 +178,12 @@ extern "C" { if (!strings[s]->array[i].used) continue; main->setting.state.status = fll_execute_arguments_add(strings[s]->array[i], &main->cache_arguments); - if (F_status_is_error(main->setting.state.status)) return; + + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + + return; + } } // for } // for } @@ -606,13 +635,24 @@ extern "C" { fake_string_dynamic_reset(&main->cache_argument); main->setting.state.status = f_string_dynamic_append_nulless(*path, &main->cache_argument); - if (F_status_is_error(main->setting.state.status)) return; - main->setting.state.status = f_string_dynamic_append_nulless(sources[i]->array[j], &main->cache_argument); - if (F_status_is_error(main->setting.state.status)) return; + if (F_status_is_error_not(main->setting.state.status)) { + main->setting.state.status = f_string_dynamic_append_nulless(sources[i]->array[j], &main->cache_argument); + } + + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); + + return; + } main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); - if (F_status_is_error(main->setting.state.status)) return; + + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + + return; + } } // for } // for @@ -792,6 +832,12 @@ extern "C" { } else { main->setting.state.status = f_string_dynamic_append_assure(f_path_separator_s, source); + + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_assure)); + + return; + } } } } @@ -837,7 +883,12 @@ extern "C" { } main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); - if (F_status_is_error(main->setting.state.status)) return; + + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + + return; + } } // for } // for @@ -874,7 +925,7 @@ extern "C" { main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); return; } diff --git a/level_3/fake/c/main/build/library.c b/level_3/fake/c/main/build/library.c index ef16ea4..c9ce735 100644 --- a/level_3/fake/c/main/build/library.c +++ b/level_3/fake/c/main/build/library.c @@ -344,9 +344,7 @@ extern "C" { { const int result = fake_execute(data, data_build->environment, data_build->setting.build_compiler); - - if (F_status_is_error(main->setting.state.status)) return 0; - if (main->setting.state.status == F_child) return result; + if (F_status_is_error(main->setting.state.status) || main->setting.state.status == F_child) return result; } { @@ -466,7 +464,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); - break; + return 0; } } // for @@ -530,7 +528,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(fake_build_get_file_name_without_extension)); - break; + return 0; } main->setting.state.status = f_file_name_directory(sources[i]->array[j], &main->cache_2); @@ -538,7 +536,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_file_name_directory)); - break; + return 0; } fake_string_dynamic_reset(&main->cache_argument); @@ -549,7 +547,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_prepend)); - break; + return 0; } main->setting.state.status = f_string_dynamic_append_assure(f_path_separator_s, &main->cache_2); @@ -557,7 +555,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_assure)); - break; + return 0; } main->setting.state.status = f_string_dynamic_append_nulless(main->cache_2, &main->cache_argument); @@ -585,7 +583,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); - break; + return 0; } main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); @@ -593,21 +591,20 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); - break; + return 0; } } // for } // for } - const int result = F_status_is_error(main->setting.state.status) - ? main->program.child - : fake_execute(data, data_build->environment, data_build->setting.build_indexer); - - if (F_status_is_error_not(main->setting.state.status) && main->setting.state.status != F_child) { - fake_build_touch(data, file_stage); + { + const int result = fake_execute(data, data_build->environment, data_build->setting.build_indexer); + if (F_status_is_error(main->setting.state.status) || main->setting.state.status == F_child) return result; } - return result; + fake_build_touch(data, file_stage); + + return 0; } #endif // _di_fake_build_library_static_ @@ -656,7 +653,7 @@ extern "C" { } // for } - int result = main->program.child; + int result = 0; const f_string_dynamics_t *sources[2] = { &data_build->setting.build_sources_library, @@ -677,7 +674,7 @@ extern "C" { fake_string_dynamics_reset_to(&main->cache_arguments, minimum); fake_build_path_source_string(data, data_build, &data_build->setting.path_sources_library, &main->cache_1); - if (F_status_is_error(main->setting.state.status)) break; + if (F_status_is_error(main->setting.state.status)) return 0; main->setting.state.status = f_string_dynamic_append_nulless(sources[i]->array[j], &main->cache_1); @@ -692,7 +689,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(fake_build_get_file_name_without_extension)); - break; + return 0; } main->setting.state.status = f_file_name_directory(sources[i]->array[j], &main->cache_argument); @@ -700,7 +697,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_file_name_directory)); - break; + return 0; } if (main->cache_argument.used) { @@ -709,7 +706,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_prepend)); - break; + return 0; } main->setting.state.status = f_string_dynamic_append_assure(f_path_separator_s, &main->cache_argument); @@ -717,7 +714,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_assure)); - break; + return 0; } main->setting.state.status = f_directory_exists(main->cache_argument); @@ -727,7 +724,7 @@ extern "C" { main->setting.state.status = F_status_set_error(F_failure); - break; + return 0; } if (main->setting.state.status == F_file_found_not) { @@ -741,7 +738,7 @@ extern "C" { fake_print_error_file(&main->program.error, macro_fake_f(f_directory_create), main->cache_argument, f_file_operation_create_s, fll_error_file_type_directory_e); } - break; + return 0; } fake_build_print_verbose_create_directory(&main->program.message, main->cache_argument); @@ -749,7 +746,7 @@ extern "C" { else if (F_status_is_error(main->setting.state.status)) { fake_print_error_file(&main->program.error, macro_fake_f(f_directory_exists), main->cache_argument, f_file_operation_create_s, fll_error_file_type_directory_e); - break; + return 0; } } @@ -788,31 +785,26 @@ extern "C" { if (!values[k].used) continue; main->setting.state.status = fll_execute_arguments_add(values[k], &main->cache_arguments); - if (F_status_is_error(main->setting.state.status)) break; - } // for - fake_build_arguments_standard_add(data, data_build, F_false, fake_build_type_object_e); + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + return 0; + } + } // for - break; - } + fake_build_arguments_standard_add(data, data_build, F_false, fake_build_type_object_e); + if (F_status_is_error(main->setting.state.status)) return 0; } result = fake_execute(data, data_build->environment, data_build->setting.build_compiler); - - if (F_status_is_error(main->setting.state.status) || main->setting.state.status == F_child) break; + if (F_status_is_error(main->setting.state.status) || main->setting.state.status == F_child) return result; } // for - - if (F_status_is_error(main->setting.state.status) || main->setting.state.status == F_child) break; } // for - if (F_status_is_error_not(main->setting.state.status) && main->setting.state.status != F_child) { - fake_build_touch(data, file_stage); - } + fake_build_touch(data, file_stage); - return result; + return 0; } #endif // _di_fake_build_library_static_object_ diff --git a/level_3/fake/c/main/build/object.c b/level_3/fake/c/main/build/object.c index 36b6704..ae57d9d 100644 --- a/level_3/fake/c/main/build/object.c +++ b/level_3/fake/c/main/build/object.c @@ -27,9 +27,6 @@ extern "C" { fake_main_t * const main = data->main; - int result = 0; - int result_final = 0; - uint8_t i = 0; f_number_unsigned_t j = 0; f_number_unsigned_t minimum = 0; @@ -49,16 +46,15 @@ extern "C" { if (!values[i]->array[j].used) continue; main->setting.state.status = fll_execute_arguments_add(values[i]->array[j], &main->cache_arguments); - if (F_status_is_error(main->setting.state.status)) break; - ++minimum; - } // for + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + return 0; + } - break; - } + ++minimum; + } // for } // for } @@ -67,6 +63,8 @@ extern "C" { shared ? &data_build->setting.build_sources_object_shared : &data_build->setting.build_sources_object_static, }; + + int result = 0; uint8_t k = 0; if (shared) { @@ -88,7 +86,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(fake_build_sources_object_add)); - break; + return 0; } fake_string_dynamic_reset(&main->cache_argument); @@ -100,7 +98,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(fake_build_get_file_name_without_extension)); - break; + return 0; } main->setting.state.status = f_file_name_directory(sources[i]->array[j], &main->cache_2); @@ -108,7 +106,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_file_name_directory)); - break; + return 0; } main->setting.state.status = f_string_dynamic_append_assure(f_path_separator_s, &main->cache_2); @@ -116,7 +114,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_assure)); - break; + return 0; } main->setting.state.status = f_string_dynamic_append_nulless(shared ? data->path_build_objects_shared : data->path_build_objects_static, &main->cache_argument); @@ -128,7 +126,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); - break; + return 0; } main->setting.state.status = f_directory_exists(main->cache_argument); @@ -138,7 +136,7 @@ extern "C" { main->setting.state.status = F_status_set_error(F_failure); - break; + return 0; } if (main->setting.state.status == F_file_found_not) { @@ -152,7 +150,7 @@ extern "C" { fake_print_error_file(&main->program.error, macro_fake_f(f_directory_create), main->cache_argument, f_file_operation_create_s, fll_error_file_type_directory_e); } - break; + return 0; } fake_build_print_verbose_create_directory(&main->program.message, main->cache_argument); @@ -160,7 +158,7 @@ extern "C" { else if (F_status_is_error(main->setting.state.status)) { fake_print_error_file(&main->program.error, macro_fake_f(f_directory_exists), main->cache_argument, f_file_operation_create_s, fll_error_file_type_directory_e); - break; + return 0; } if (F_status_is_error_not(main->setting.state.status)) { @@ -174,7 +172,7 @@ extern "C" { if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); - break; + return 0; } if (data_build->setting.language == fake_build_language_c_e || data_build->setting.language == fake_build_language_cpp_e) { @@ -190,46 +188,27 @@ extern "C" { if (!values[k].used) continue; main->setting.state.status = fll_execute_arguments_add(values[k], &main->cache_arguments); - if (F_status_is_error(main->setting.state.status)) break; - } // for - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); - break; - } + return 0; + } + } // for } // The cache_argument should be safe at this point to be reset and reused by this function. fake_build_arguments_standard_add(data, data_build, F_true, fake_build_type_object_e); - - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fake_build_arguments_standard_add)); - - break; - } + if (F_status_is_error(main->setting.state.status)) return 0; result = fake_execute(data, data_build->environment, data_build->setting.build_compiler); - - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fake_execute)); - - result_final = result; - - break; - } - - if (result && !result_final) { - result_final = result; - } + if (F_status_is_error(main->setting.state.status) || main->setting.state.status == F_child) return result; } // for } // for - if (F_status_is_error_not(main->setting.state.status) && main->setting.state.status != F_child) { - fake_build_touch(data, file_stage); - } + fake_build_touch(data, file_stage); - return result_final; + return 0; } #endif // _di_fake_build_object_ diff --git a/level_3/fake/c/main/build/program.c b/level_3/fake/c/main/build/program.c index 0adcfe2..6603b03 100644 --- a/level_3/fake/c/main/build/program.c +++ b/level_3/fake/c/main/build/program.c @@ -50,14 +50,13 @@ extern "C" { if (!values[i]->array[j].used) continue; main->setting.state.status = fll_execute_arguments_add(values[i]->array[j], &main->cache_arguments); - if (F_status_is_error(main->setting.state.status)) break; - } // for - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); - break; - } + return 0; + } + } // for } // for } @@ -77,46 +76,49 @@ extern "C" { return 0; } - if (F_status_is_error_not(main->setting.state.status)) { - if (data_build->setting.language == fake_build_language_c_e || data_build->setting.language == fake_build_language_cpp_e) { - fake_string_dynamic_reset(&main->cache_argument); + if (data_build->setting.language == fake_build_language_c_e || data_build->setting.language == fake_build_language_cpp_e) { + fake_string_dynamic_reset(&main->cache_argument); - main->setting.state.status = f_string_dynamic_append_nulless(data->path_build_programs_shared, &main->cache_argument); + main->setting.state.status = f_string_dynamic_append_nulless(data->path_build_programs_shared, &main->cache_argument); - if (F_status_is_error_not(main->setting.state.status)) { - main->setting.state.status = f_string_dynamic_append_nulless( - data_build->setting.build_name_program_shared.used - ? data_build->setting.build_name_program_shared - : data_build->setting.build_name_program.used - ? data_build->setting.build_name_program - : data_build->setting.build_name, - &main->cache_argument - ); - } + if (F_status_is_error_not(main->setting.state.status)) { + main->setting.state.status = f_string_dynamic_append_nulless( + data_build->setting.build_name_program_shared.used + ? data_build->setting.build_name_program_shared + : data_build->setting.build_name_program.used + ? data_build->setting.build_name_program + : data_build->setting.build_name, + &main->cache_argument + ); + } - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); - return 0; - } + return 0; + } - const f_string_static_t values[] = { - fake_build_parameter_library_output_s, - main->cache_argument, - }; + const f_string_static_t values[] = { + fake_build_parameter_library_output_s, + main->cache_argument, + }; - for (i = 0; i < 2; ++i) { + for (i = 0; i < 2; ++i) { - if (!values[i].used) continue; + if (!values[i].used) continue; - main->setting.state.status = fll_execute_arguments_add(values[i], &main->cache_arguments); - if (F_status_is_error(main->setting.state.status)) break; - } // for - } + main->setting.state.status = fll_execute_arguments_add(values[i], &main->cache_arguments); + + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + + return 0; + } + } // for } // If project-specific library sources exist, then the -lbuild_name needs to be added to the arguments. - if (F_status_is_error_not(main->setting.state.status) && data_build->setting.build_sources_library.used) { + if (data_build->setting.build_sources_library.used) { fake_string_dynamic_reset(&main->cache_argument); main->setting.state.status = f_string_dynamic_append_nulless(fake_build_parameter_library_link_file_s, &main->cache_argument); @@ -139,23 +141,25 @@ extern "C" { } main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); - } - - fake_build_arguments_standard_add(data, data_build, F_true, fake_build_type_program_e); - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); - return 0; + return 0; + } } - const int result = fake_execute(data, data_build->environment, data_build->setting.build_compiler); + fake_build_arguments_standard_add(data, data_build, F_true, fake_build_type_program_e); + if (F_status_is_error(main->setting.state.status)) return 0; - if (F_status_is_error_not(main->setting.state.status) && main->setting.state.status != F_child) { - fake_build_touch(data, file_stage); + { + const int result = fake_execute(data, data_build->environment, data_build->setting.build_compiler); + if (F_status_is_error(main->setting.state.status) || main->setting.state.status == F_child) return result; } - return result; + fake_build_touch(data, file_stage); + + return 0; } #endif // _di_fake_build_program_shared_ @@ -190,14 +194,13 @@ extern "C" { if (!values[i]->array[j].used) continue; main->setting.state.status = fll_execute_arguments_add(values[i]->array[j], &main->cache_arguments); - if (F_status_is_error(main->setting.state.status)) break; - } // for - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); - break; - } + return 0; + } + } // for } // for } @@ -218,75 +221,32 @@ extern "C" { } if (data_build->setting.language == fake_build_language_c_e || data_build->setting.language == fake_build_language_cpp_e) { - if (F_status_is_error_not(main->setting.state.status)) { - - // Only include the library if there are sources that would result in it being built. - if (data_build->setting.build_sources_library.used || data_build->setting.build_sources_library_static.used) { - fake_string_dynamic_reset(&main->cache_argument); - - main->setting.state.status = f_string_dynamic_append_nulless(data->path_build_libraries_static, &main->cache_argument); - - if (F_status_is_error_not(main->setting.state.status)) { - main->setting.state.status = f_string_dynamic_append_nulless(fake_build_parameter_library_name_prefix_s, &main->cache_argument); - } - - if (F_status_is_error_not(main->setting.state.status)) { - main->setting.state.status = f_string_dynamic_append_nulless( - data_build->setting.build_name_library_static.used - ? data_build->setting.build_name_library_static - : data_build->setting.build_name_library.used - ? data_build->setting.build_name_library - : data_build->setting.build_name, - &main->cache_argument - ); - } - - if (F_status_is_error_not(main->setting.state.status)) { - main->setting.state.status = f_string_dynamic_append_nulless(fake_build_parameter_library_name_suffix_static_s, &main->cache_argument); - } - - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); - - return 0; - } - - main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); - - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); - return 0; - } - } + // Only include the library if there are sources that would result in it being built. + if (data_build->setting.build_sources_library.used || data_build->setting.build_sources_library_static.used) { + fake_string_dynamic_reset(&main->cache_argument); - main->setting.state.status = fll_execute_arguments_add(fake_build_parameter_library_static_s, &main->cache_arguments); + main->setting.state.status = f_string_dynamic_append_nulless(data->path_build_libraries_static, &main->cache_argument); if (F_status_is_error_not(main->setting.state.status)) { - main->setting.state.status = fll_execute_arguments_add(fake_build_parameter_library_output_s, &main->cache_arguments); - } - - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); - - return 0; + main->setting.state.status = f_string_dynamic_append_nulless(fake_build_parameter_library_name_prefix_s, &main->cache_argument); } - fake_string_dynamic_reset(&main->cache_argument); - - main->setting.state.status = f_string_dynamic_append_nulless(data->path_build_programs_static, &main->cache_argument); - if (F_status_is_error_not(main->setting.state.status)) { main->setting.state.status = f_string_dynamic_append_nulless( - data_build->setting.build_name_program_static.used - ? data_build->setting.build_name_program_static - : data_build->setting.build_name_program.used - ? data_build->setting.build_name_program + data_build->setting.build_name_library_static.used + ? data_build->setting.build_name_library_static + : data_build->setting.build_name_library.used + ? data_build->setting.build_name_library : data_build->setting.build_name, &main->cache_argument ); } + if (F_status_is_error_not(main->setting.state.status)) { + main->setting.state.status = f_string_dynamic_append_nulless(fake_build_parameter_library_name_suffix_static_s, &main->cache_argument); + } + if (F_status_is_error(main->setting.state.status)) { fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); @@ -294,31 +254,64 @@ extern "C" { } main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); + } - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + if (F_status_is_error_not(main->setting.state.status)) { + main->setting.state.status = fll_execute_arguments_add(fake_build_parameter_library_static_s, &main->cache_arguments); + } - return 0; - } + if (F_status_is_error_not(main->setting.state.status)) { + main->setting.state.status = fll_execute_arguments_add(fake_build_parameter_library_output_s, &main->cache_arguments); } - } - // The cache_argument should be safe at this point to be reset and reused by this function. - fake_build_arguments_standard_add(data, data_build, F_false, fake_build_type_program_e); + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + return 0; + } - return 0; + fake_string_dynamic_reset(&main->cache_argument); + + main->setting.state.status = f_string_dynamic_append_nulless(data->path_build_programs_static, &main->cache_argument); + + if (F_status_is_error_not(main->setting.state.status)) { + main->setting.state.status = f_string_dynamic_append_nulless( + data_build->setting.build_name_program_static.used + ? data_build->setting.build_name_program_static + : data_build->setting.build_name_program.used + ? data_build->setting.build_name_program + : data_build->setting.build_name, + &main->cache_argument + ); + } + + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(f_string_dynamic_append_nulless)); + + return 0; + } + + main->setting.state.status = fll_execute_arguments_add(main->cache_argument, &main->cache_arguments); + + if (F_status_is_error(main->setting.state.status)) { + fake_print_error(&main->program.error, macro_fake_f(fll_execute_arguments_add)); + + return 0; + } } - const int result = fake_execute(data, data_build->environment, data_build->setting.build_compiler); + // The cache_argument should be safe at this point to be reset and reused by this function. + fake_build_arguments_standard_add(data, data_build, F_false, fake_build_type_program_e); + if (F_status_is_error(main->setting.state.status)) return 0; - if (F_status_is_error_not(main->setting.state.status) && main->setting.state.status != F_child) { - fake_build_touch(data, file_stage); + { + const int result = fake_execute(data, data_build->environment, data_build->setting.build_compiler); + if (F_status_is_error(main->setting.state.status) || main->setting.state.status == F_child) return result; } - return result; + fake_build_touch(data, file_stage); + + return 0; } #endif // _di_fake_build_program_static_ diff --git a/level_3/fake/c/main/make/operate_process_type.c b/level_3/fake/c/main/make/operate_process_type.c index 862e334..e650971 100644 --- a/level_3/fake/c/main/make/operate_process_type.c +++ b/level_3/fake/c/main/make/operate_process_type.c @@ -65,17 +65,11 @@ extern "C" { fake_main_t * const main = data_make->main; const int result = fake_execute(data_make->data, data_make->environment, data_make->setting_build.build_compiler); - - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fake_execute)); - } - else if (main->setting.state.status == F_child) { - return result; - } + if (main->setting.state.status == F_child) return result; fake_make_operate_process_return(data_make, result); - return 0; + return result; } #endif // _di_fake_make_operate_process_type_compile_ @@ -1363,16 +1357,11 @@ extern "C" { fake_main_t * const main = data_make->main; const int result = fake_execute(data_make->data, data_make->environment, data_make->setting_build.build_indexer); - - if (F_status_is_error(main->setting.state.status)) { - fake_print_error(&main->program.error, macro_fake_f(fake_execute)); - } - if (main->setting.state.status == F_child) return result; fake_make_operate_process_return(data_make, result); - return 0; + return result; } #endif // _di_fake_make_operate_process_type_index_ -- 1.8.3.1