git.shiar.nl
/
perl
/
list-index.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
e0d12a5
)
+++: context code cleanup
author
Mischa POSLAWSKY
<perl@shiar.org>
Sun, 15 Nov 2009 00:08:04 +0000
(
01:08
+0100)
committer
Mischa POSLAWSKY
<perl@shiar.org>
Sun, 15 Nov 2009 00:08:04 +0000
(
01:08
+0100)
lib/List/Index.pm
patch
|
blob
|
history
diff --git
a/lib/List/Index.pm
b/lib/List/Index.pm
index 4ce9c25b8dacb38693302421c1f2692220ed669d..b11b5f86eeab9e88ebd0716e0739dd1cfdd9ca86 100644
(file)
--- a/
lib/List/Index.pm
+++ b/
lib/List/Index.pm
@@
-24,15
+24,15
@@
sub ranges {
$pagesize = @$self / $pages;
my $offset = $pagesize + .5;
$pagesize = @$self / $pages;
my $offset = $pagesize + .5;
- my $
shrunk = 0
;
- my $
enlarged = 0
;
+ my $
lookbehind = -$context
;
+ my $
lookahead = $context
;
my @links = ('');
while ($offset < @$self) {
my $link = substr $self->[$offset], 0, $length;
if ($context) {
my $penalty = 0;
# take a value slightly before the current offset
my @links = ('');
while ($offset < @$self) {
my $link = substr $self->[$offset], 0, $length;
if ($context) {
my $penalty = 0;
# take a value slightly before the current offset
- if ((my $before = $offset
- $context + $shrunk
) > 0) {
+ if ((my $before = $offset
+ $lookbehind
) > 0) {
# see how much of it matches the current link
my $trim = 1;
for my $match (split //, $self->[$before - 1]) {
# see how much of it matches the current link
my $trim = 1;
for my $match (split //, $self->[$before - 1]) {
@@
-49,9
+49,10
@@
sub ranges {
}
}
}
}
- $shrunk = 0;
+ $lookbehind = -$context;
+
# take a value after the current offset
# take a value after the current offset
- if ((my $after = $offset + $
context - $enlarge
d) < $#$self) {
+ if ((my $after = $offset + $
lookahea
d) < $#$self) {
# see how much of it matches the current link
my $trim = 1;
for my $match (split //, $self->[$after]) {
# see how much of it matches the current link
my $trim = 1;
for my $match (split //, $self->[$after]) {
@@
-63,13
+64,14
@@
sub ranges {
$link = substr $self->[$after], 0, $trim;
# advance lookbehind offset on the next page
$penalty = 0;
$link = substr $self->[$after], 0, $trim;
# advance lookbehind offset on the next page
$penalty = 0;
- for ($offset .. $
#$self
) {
- last if $self->[$
offset + $shrunk
] =~ /^\Q$link/;
- $
shrunk
++;
+ for ($offset .. $
after
) {
+ last if $self->[$
_
] =~ /^\Q$link/;
+ $
lookbehind
++;
}
}
}
}
}
}
- $enlarged = $penalty;
+
+ $lookahead = $context - $penalty;
}
push @links, $link;
}
push @links, $link;