diff options
Diffstat (limited to 'incdec')
| -rw-r--r-- | incdec | 28 |
1 files changed, 10 insertions, 18 deletions
@@ -57,6 +57,9 @@ function __readline_incdec { # print "$line, ${"increment-by"}, ${"point-position"}, $backward"; line=$(perl -s -e ' +use strict; +use warnings; + sub incdec { my ($line, $increment_by, $point_position, $is_backward) = @_; @@ -64,33 +67,23 @@ sub incdec { $is_backward ||= 0; my $start_position = 0; - # my @match_ranges; my $previous_match_start = 0; - # my $previous_match_end = 0; while ($line =~ /(-?\d+)/g) { if ($is_backward) { - # print "p[$point_position] -[$-[0]] +[$+[0]]\n"; - # print "p[$point_position] -[$previous_match_start] +[$previous_match_end]\n"; - # print "last match: $^N\n"; - # print $previous_match_end - 1 . " <= $point_position < $-[0]\n"; - # if ($previous_match_end - 1 <= $point_position - # && $point_position < $-[0]) { - - # TODO: document, last number handline + # Set start position to the current match start. This gives us the + # correct start position when incrementing the last number in a + # line. $start_position = $-[0]; + # If point is not at the end, set start position to the number + # closest to the point position. if ($point_position < $-[0]) { - # print "match at [$previous_match_start]"; $start_position = $previous_match_start; last; } $previous_match_start = $-[0]; - # $previous_match_end = $+[0]; - - # my @range = ($-[0], $+[0]); - # push @match_ranges, \@range; } else { if ($point_position < $+[0]) { @@ -107,9 +100,8 @@ sub incdec { return $line; } - # print "$line, ${\"increment-by\"}, ${\"point-position\"}, $backward"; - my $output = incdec($line, $increment_by, $point_position, $backward); - print $output; +my $output = incdec($line, $increment_by, $point_position, $backward); +print $output; ' \ -- \ -line="$READLINE_LINE" \ |
