From 1c331324738bb8ca05889f1a7baa5e1b40595d38 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Fri, 13 Nov 2009 15:59:30 +0100 Subject: [PATCH] lookbehind before context, so page increment is _upto_ context rows --- lib/List/Index.pm | 4 ++-- t/10-ranges.t | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/List/Index.pm b/lib/List/Index.pm index 5b46313..4a21189 100644 --- a/lib/List/Index.pm +++ b/lib/List/Index.pm @@ -28,9 +28,9 @@ sub ranges { while ($offset < @$self) { my $link = substr $self->[$offset], 0, $length; if ($context) { - { + if ($offset > $context - 1) { # take a value slightly before the current offset - my $before = $offset > $context ? $self->[$offset - $context] : '.'; + my $before = $self->[$offset - $context - 1]; # see how much of it matches the current link my $trim = 1; for my $match (split //, $before) { diff --git a/t/10-ranges.t b/t/10-ranges.t index 1ec5d60..ef292b1 100644 --- a/t/10-ranges.t +++ b/t/10-ranges.t @@ -29,7 +29,7 @@ subtest 'uniform alphanumeric' => sub { .-bp bq-dm dn-fi fj-hf hg-i j-k l-m n-os ot-qp qq-sm sn-uj uk-wf wg-x y- )], 'default ranges'); - is_deeply($index->ranges({pagesize => 300}), [qw(-c d-o p-)], 'large pagesize'); + is_deeply($index->ranges({pagesize => 300}), [qw(-c d-n o-)], 'large pagesize'); }; subtest 'context' => sub { @@ -41,12 +41,12 @@ subtest 'context' => sub { qw(-baa. baa.-bbb bbc-daa. daaa-eaa. eaaa-) ], 'no context'); is_deeply($index->ranges({pagesize => 2}), [ - qw(-a b c d-ea. eaa-) + qw(-a b c d e-) ], 'default context'); # context should be 1 is_deeply($index->ranges({pagesize => 2, context => 2}), [ qw(-a b-c d e-) ], 'overlap'); # first item equals second due to large context - is_deeply($index->ranges({pagesize => 2, length => 1}), [ + is_deeply($index->ranges({pagesize => 2, context => 0, length => 1}), [ qw(-a b-c d e-) ], 'single char'); -- 2.30.0