From: Kevin Day Date: Sun, 8 Dec 2024 19:23:17 +0000 (-0600) Subject: Bugfix: IKI Read may now have --whole with --at. X-Git-Tag: 0.6.13~23 X-Git-Url: https://git.kevux.org/?a=commitdiff_plain;h=a4492b1287ddc0a7a41a82870bd8ea46e02b4823;p=fll Bugfix: IKI Read may now have --whole with --at. The recent changes for the `--total` parameter now allow for having the `--whole` parameter with the `--at` parameter. The `--whole` with `--at` by itself does nothing. Make sure that the `--at` works with `--name` along with `--whole`. This program neither supports multiple `--at` nor multiple `--name`. The use case of `--at` with `--whole` will therefore be very limited. --- diff --git a/level_3/iki_read/c/iki_read.c b/level_3/iki_read/c/iki_read.c index bb7bcab..25235f8 100644 --- a/level_3/iki_read/c/iki_read.c +++ b/level_3/iki_read/c/iki_read.c @@ -275,14 +275,6 @@ extern "C" { } data.at = number; - - if (main->parameters.array[iki_read_parameter_whole_e].result == f_console_result_found_e) { - if (main->error.verbosity != f_console_verbosity_quiet_e) { - fll_program_parameter_long_print_cannot_use_with(main->error, iki_read_long_at_s, iki_read_long_whole_s); - } - - status = F_status_set_error(F_parameter); - } } if (F_status_is_error_not(status)) { diff --git a/level_3/iki_read/c/private-read.c b/level_3/iki_read/c/private-read.c index 28fe27c..30c8d53 100644 --- a/level_3/iki_read/c/private-read.c +++ b/level_3/iki_read/c/private-read.c @@ -480,6 +480,7 @@ extern "C" { f_array_length_t i = buffer_range.start; f_array_length_t j = 0; f_array_length_t k = 0; + f_array_length_t at = 0; f_array_length_t stop = iki_data->variable.used; range = buffer_range; @@ -524,6 +525,19 @@ extern "C" { f_print_dynamic_partial(data->buffer, iki_data->variable.array[j], data->main->output.to.stream); } } + else if (data->main->parameters.array[iki_read_parameter_at_e].result == f_console_result_additional_e) { + if (at++ == data->at) { + if (replacements[j].replace.used || wraps[j].replace.used || wraps[j].with.used || substitutionss[j].used || reassignments[j].used) { + iki_read_substitutions_print(data, *iki_data, *ranges, replacements[j], wraps[j], substitutionss[j], reassignments[j], j, content_only); + } + else { + f_print_dynamic_partial(data->buffer, ranges->array[j], data->main->output.to.stream); + } + } + else { + f_print_dynamic_partial(data->buffer, iki_data->variable.array[j], data->main->output.to.stream); + } + } else { if (replacements[j].replace.used || wraps[j].replace.used || wraps[j].with.used || substitutionss[j].used || reassignments[j].used) { iki_read_substitutions_print(data, *iki_data, *ranges, replacements[j], wraps[j], substitutionss[j], reassignments[j], j, content_only); @@ -533,6 +547,19 @@ extern "C" { } } } + else if (data->main->parameters.array[iki_read_parameter_at_e].result == f_console_result_additional_e) { + if (at++ == data->at) { + if (replacements[j].replace.used || wraps[j].replace.used || wraps[j].with.used || substitutionss[j].used || reassignments[j].used) { + iki_read_substitutions_print(data, *iki_data, *ranges, replacements[j], wraps[j], substitutionss[j], reassignments[j], j, content_only); + } + else { + f_print_dynamic_partial(data->buffer, ranges->array[j], data->main->output.to.stream); + } + } + else { + f_print_dynamic_partial(data->buffer, iki_data->variable.array[j], data->main->output.to.stream); + } + } else { if (replacements[j].replace.used || wraps[j].replace.used || wraps[j].with.used || substitutionss[j].used || reassignments[j].used) { iki_read_substitutions_print(data, *iki_data, *ranges, replacements[j], wraps[j], substitutionss[j], reassignments[j], j, content_only);