]> Kevux Git Server - fll/commitdiff
Bugfix: The iki_read is should apply the "--wrap" when using "--substitute".
authorKevin Day <thekevinday@gmail.com>
Sun, 23 Oct 2022 04:03:11 +0000 (23:03 -0500)
committerKevin Day <thekevinday@gmail.com>
Sun, 23 Oct 2022 04:03:11 +0000 (23:03 -0500)
Given some iki text such as:
  This is some random:"iki" random:"text".

Run the command:
  # echo 'This is some random:"iki" random:"text".' | iki_read -W random "___" "______" -L -s random text PIZZA -r random tomato

The result that I get is:
  random:"___tomato______"
  random:"PIZZA"

I think the following is better:
  random:"___tomato______"
  random:"___PIZZA______"

This makes more sense to me rather than having substitute not include wrap.
This is a behavioral change that I thought and perhaps still think can be considered a bug.
This "bug" is by design as per the documentation but in retrospect I think this is a mistake in the design and should be considered a bug.

level_3/iki_read/c/iki_read.c
level_3/iki_read/c/private-print.c

index 3da7f435d9629c447244ea602a0f0dd04e8c6fe3..e6d5c8384bef23f9850f05432fe227a0f43866bf 100644 (file)
@@ -88,9 +88,6 @@ extern "C" {
     fl_print_format("  The %[%r%r%]", file.stream, context.set.notable, f_console_symbol_long_enable_s, iki_read_long_substitute_s, context.set.notable);
     fl_print_format(" option takes priority over the %[%r%r%] option when matching the same variable.%r%r", file.stream, context.set.notable, f_console_symbol_long_enable_s, iki_read_long_replace_s, context.set.notable, f_string_eol_s, f_string_eol_s);
 
-    fl_print_format("  The %[%r%r%]", file.stream, context.set.notable, f_console_symbol_long_enable_s, iki_read_long_wrap_s, context.set.notable);
-    fl_print_format(" option is ignored when the %[%r%r%] option is matching the same variable.%r%r", file.stream, context.set.notable, f_console_symbol_long_enable_s, iki_read_long_substitute_s, context.set.notable, f_string_eol_s, f_string_eol_s);
-
     fl_print_format("  The default behavior is to only display content portion of the IKI variable.%r%r", file.stream, f_string_eol_s, f_string_eol_s);
 
     funlockfile(file.stream);
index 1848ff64ad398b86485f5d628790f9bcd07ff57f..ecb84324bcdac1d800dc89368ba574f7b1348d91 100644 (file)
@@ -30,8 +30,18 @@ extern "C" {
 
         f_print_dynamic_partial(data->buffer, range, data->main->output.to.stream);
 
+        // The wraps.replace represents the "before", which is a string to prepend.
+        if (wraps.replace.used) {
+          f_print_dynamic(wraps.replace, data->main->output.to.stream);
+        }
+
         f_print_dynamic(substitutions.array[at].with, data->main->output.to.stream);
 
+        // The wraps.replace represents the "after", which is a string to append.
+        if (wraps.with.used) {
+          f_print_dynamic(wraps.with, data->main->output.to.stream);
+        }
+
         range.start = iki_data.content.array[index].stop + 1;
         range.stop = iki_data.variable.array[index].stop;