]> git.deb.at Git - deb/packages.git/commitdiff
Deb/Versions.pm: Fix handling of ~ vs. empty string
authorFrank Lichtenheld <Frank Lichtenheld frank@lichtenheld.de>
Sat, 2 Jun 2007 16:01:29 +0000 (18:01 +0200)
committerFrank Lichtenheld <Frank Lichtenheld frank@lichtenheld.de>
Sat, 2 Jun 2007 16:01:29 +0000 (18:01 +0200)
~ sorts even before the empty string, so we can't just
abort if one of the revisions is shorter than the other
since it can still sort later.

lib/Deb/Versions.pm

index 4f3b3207b0d8130d92706e181daf62884574000a..5f3b1db7b8062719c0c603720b2c28f9762c8835 100644 (file)
@@ -111,7 +111,7 @@ sub _cmp_part {
     my ( $v1, $v2 ) = @_;
     my $r;
 
-    while ( $v1 && $v2 ) {
+    while ( $v1 || $v2 ) {
        $v1 =~ s/^(\D*)//o;
        my $sp1 = $1;
        $v2 =~ s/^(\D*)//o;
@@ -138,8 +138,8 @@ sub _cmp_part {
 
 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