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
fix rangematch('zz-')
[perl/list-index.git]
/
lib
/
List
/
Index.pm
diff --git
a/lib/List/Index.pm
b/lib/List/Index.pm
index bf4e04db592dabcf488ab9a2dfd5386bbd3a4668..3663c2459422638225058204dbc9854f667f315f 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;
}
@@
-90,6
+92,7
@@
sub rangematch {
my $next = $char;
$next = chr( ord($char) + 1 ) if length $s1 > $i + 1;
my $last = 'z';
my $next = $char;
$next = chr( ord($char) + 1 ) if length $s1 > $i + 1;
my $last = 'z';
+ next if $next gt $last;
if (length $s2 > $i) {
if ($s2 =~ /^\Q$prefix/) {
$last = substr $s2, $i, 1;
if (length $s2 > $i) {
if ($s2 =~ /^\Q$prefix/) {
$last = substr $s2, $i, 1;