]> git.deb.at Git - deb/packages.git/commitdiff
Deb::Versions: Fix a bug introduces by ~ handling
authorFrank Lichtenheld <frank@lichtenheld.de>
Tue, 11 Sep 2007 14:59:16 +0000 (16:59 +0200)
committerFrank Lichtenheld <frank@lichtenheld.de>
Tue, 11 Sep 2007 14:59:16 +0000 (16:59 +0200)
708b1364be58c9b921cc3838d7ed5f5b48959d78 fixed the handling
of ~ but broke the handling of comparing a "normal" letter
with the empty string. A letter sorts earlier than all
non-letter except ~, but of course not earlier as the empty string.

lib/Deb/Versions.pm

index ec127ce8923eb380a76c2670d3dd0e76c833f7e0..fcc8e31170a754b170047073b31aefde6c18b592 100644 (file)
@@ -142,9 +142,9 @@ sub _lcmp {
     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
+       $n1 += 256 if $n1 && $n1 < 65; # letters sort earlier than non-letters
        $n1 = -1 if $n1 == 126; # '~' sorts earlier than everything else
-       $n2 += 256 if $n2 < 65;
+       $n2 += 256 if $n2 && $n2 < 65;
        $n2 = -1 if $n2 == 126;
        if ( my $r = ($n1 <=> $n2) ) {
            return $r;