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: ranges returned as scalars, not arrays
[perl/list-index.git]
/
lib
/
List
/
Index.pm
diff --git
a/lib/List/Index.pm
b/lib/List/Index.pm
index bf4e04db592dabcf488ab9a2dfd5386bbd3a4668..ea7b4331c99b45bc6bccff2e94b120cb6662c30e 100644
(file)
--- a/
lib/List/Index.pm
+++ b/
lib/List/Index.pm
@@
-24,7
+24,7
@@
sub ranges {
$pagesize = @$self / $pages;
my $offset = $pagesize;
$pagesize = @$self / $pages;
my $offset = $pagesize;
- my @links = (
['']
);
+ 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,17
+57,19
@@
sub ranges {
}
}
}
}
- push @links,
[$link]
;
+ push @links,
$link
;
$offset += $pagesize;
}
$offset += $pagesize;
}
+ use List::MoreUtils 'uniq';
+ @links = uniq @links;
for my $i (0 .. $#links - 1) {
for my $i (0 .. $#links - 1) {
- my ($link, $lastchar) = $links[$i + 1]
->[0]
=~ /(.*)(.)/;
+ my ($link, $lastchar) = $links[$i + 1] =~ /(.*)(.)/;
$link .= $lastchar le 'a' ? '.' : chr( ord($lastchar) - 1 );
$link .= $lastchar le 'a' ? '.' : chr( ord($lastchar) - 1 );
- next if $link eq $links[$i]
->[0]
and $i;
- $links[$i]
->[1] =
$link;
+ next if $link eq $links[$i] and $i;
+ $links[$i]
.= '-'.
$link;
}
}
- $links[-1]
->[1] = '
';
+ $links[-1]
.= '-
';
return \@links;
}
return \@links;
}