]> Kevux Git Server - fll/commitdiff
Bugfix: IKI Read may now have --whole with --at.
authorKevin Day <Kevin@kevux.org>
Sun, 8 Dec 2024 19:23:17 +0000 (13:23 -0600)
committerKevin Day <Kevin@kevux.org>
Sun, 8 Dec 2024 19:35:33 +0000 (13:35 -0600)
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.

level_3/iki_read/c/iki_read.c
level_3/iki_read/c/private-read.c

index bb7bcaba9cf23898cdc8a845b7426c2aef9dad4e..25235f843f7b31f5cd4880ac4171f366a89672c8 100644 (file)
@@ -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)) {
index 28fe27c603ae1a570fb2c258f430efa5d99d6fc5..30c8d5321387084aa19d4f0e1877405415093089 100644 (file)
@@ -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);