git.shiar.nl
/
perl
/
list-index.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
XXX: omit duplicates (overlaps)
[perl/list-index.git]
/
lib
/
List
/
Index.pm
diff --git
a/lib/List/Index.pm
b/lib/List/Index.pm
index 47ef0da75030c8cda582a1b1bf93d4b9a0db493d..57027fa685656c8608c2bcd0a54a21fb93f264f9 100644
(file)
--- a/
lib/List/Index.pm
+++ b/
lib/List/Index.pm
@@
-23,8
+23,8
@@
sub ranges {
my $pages = $options->{pages } || 1 + int $#$self / $pagesize;
$pagesize = @$self / $pages;
my $pages = $options->{pages } || 1 + int $#$self / $pagesize;
$pagesize = @$self / $pages;
- my $offset =
0
;
- my @links;
+ my $offset =
$pagesize
;
+ my @links
= ('')
;
while ($offset < @$self) {
my $link = substr $self->[$offset], 0, $length;
if ($context) {
while ($offset < @$self) {
my $link = substr $self->[$offset], 0, $length;
if ($context) {
@@
-57,19
+57,19
@@
sub ranges {
}
}
}
}
- push @links,
[$link]
;
+ push @links,
$link
;
$offset += $pagesize;
}
$offset += $pagesize;
}
+ use List::MoreUtils 'uniq';
+ @links = map { [$_] } uniq @links;
for my $i (0 .. $#links - 1) {
my ($link, $lastchar) = $links[$i + 1]->[0] =~ /(.*)(.)/;
for my $i (0 .. $#links - 1) {
my ($link, $lastchar) = $links[$i + 1]->[0] =~ /(.*)(.)/;
- $link .= $lastchar eq 'a' ? '.' : chr( ord($lastchar) - 1 )
- unless $lastchar eq '.';
+ $link .= $lastchar le 'a' ? '.' : chr( ord($lastchar) - 1 );
next if $link eq $links[$i]->[0] and $i;
$links[$i]->[1] = $link;
}
$links[-1]->[1] = '';
next if $link eq $links[$i]->[0] and $i;
$links[$i]->[1] = $link;
}
$links[-1]->[1] = '';
- $links[0]->[0] = '';
return \@links;
}
return \@links;
}