commit 263b01dcf4a4a0cefaf0c8647f1d81ed657e49f7
parent cfe056c927013689acb20a150d70d66655026dd4
Author: lumidify <nobody@lumidify.org>
Date: Mon, 20 Apr 2020 14:41:51 +0200
Modify behavior of 'Ignore whole line'
Diffstat:
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/transliterate.pl b/transliterate.pl
@@ -1376,8 +1376,14 @@ sub get_unknown_words {
my $word = $substrings->[$i];
if (!$word->[0] && !exists($config->{"ignore_words"}->{$word->[1]})) {
my $ret = call_unknown_word_window $substrings, $i, $config, $args, $cur_lineno;
- # 3 means we ignore the rest of the line
- return 0 if $ret == 3;
+ # 3 means we ignore the line
+ if ($ret == 3) {
+ foreach my $s (@$substrings) {
+ # revert all changes done on the line
+ $s->[1] = $s->[2];
+ }
+ return 0;
+ }
# 1 means the line needs to be re-transliterated
return 1 if $ret == 1;
}
@@ -1701,14 +1707,14 @@ The possible actions are:
=item Ignore
-"This run" only ignores the word until the program exist, while
+"This run" only ignores the word until the program exits, while
"Permanently" saves the word in the ignore file specified in the
-configuration. "Whole file" stops asking for unknown words on
-this line and prints the line out as is. Note that this still
-leaves all replacements intact that have already been done.
-If any words were replaced with multiple choices already, those
-will also still cause the L<word choice window|/"WORD CHOICE WINDOW">
-to appear.
+configuration. "Whole line" stops asking for unknown words on
+this line and prints the line out as it originally was in the
+file. Note that any words in the original line that contain
+B<choicesep> will still cause the L<word choice window|/"WORD CHOICE WINDOW">
+to appear due to the way it is implemented. Just press "Skip word"
+if that happens.
=item Retry without <display name>