my ( $v1, $v2 ) = @_;
my $r;
- while ( $v1 && $v2 ) {
+ while ( $v1 || $v2 ) {
$v1 =~ s/^(\D*)//o;
my $sp1 = $1;
$v2 =~ s/^(\D*)//o;
sub _lcmp {
my ( $v1, $v2 ) = @_;
-
- for ( my $i = 0; $i < length( $v1 ); $i++ ) {
+
+ for ( my $i = 0; $i <= length( $v1 ); $i++ ) {
my ( $n1, $n2 ) = ( ord( substr( $v1, $i, 1 ) ),
ord( substr( $v2, $i, 1 ) ) );
$n1 += 256 if $n1 < 65; # letters sort earlier than non-letters
}
our @SUITES_SORT = qw( woody oldstable sarge stable stable-proposed-updates
- etch testing testing-proposed-updates sid unstable
+ etch etch-m68k testing testing-proposed-updates sid unstable
experimental warty hoary hoary-backports breezy
breezy-backports dapper );
-our @ARCHIVE_SORT = qw( security updates volatile backports );
+our @ARCHIVE_SORT = qw( non-US security updates volatile backports );
+our @PRIORITY_SORT = qw( required important standard optional extra );
my $i = 1000;
our %suites_sort = map { $_ => ($i-=10) } @SUITES_SORT;
+our %priority_sort = map { $_ => $i-- } @PRIORITY_SORT;
$i = 0;
our %archive_sort = map { $_ => $i++ } @ARCHIVE_SORT;
return sort { suites_cmp( $b, $a ) } @_;
}
+sub priority_cmp {
+ return ($priority_sort{$_[0]} <=> $priority_sort{$_[1]});
+}
+
+sub priority_sort {
+ return sort { priority_cmp( $b, $a ) } @_;
+}
+
1;
__END__