]> git.donarmstrong.com Git - debbugs.git/commitdiff
fix another edge case in Debbugs::Versions::Dpkg
authorDon Armstrong <don@donarmstrong.com>
Tue, 12 Aug 2008 02:33:38 +0000 (19:33 -0700)
committerDon Armstrong <don@donarmstrong.com>
Tue, 12 Aug 2008 02:33:38 +0000 (19:33 -0700)
Debbugs/Versions/Dpkg.pm
t/02_version_dpkg.t

index af955f287b1d2fb3202af7d61d28dedee0cbe76e..c6a3de289ae37bea93caad421187decabb8aaef1 100644 (file)
@@ -43,7 +43,7 @@ sub parseversion ($)
     {
        $verhash{epoch} = 0;
     }
-    if ($ver =~ /(.+)-(.+)$/)
+    if ($ver =~ /(.+)-(.*)$/)
     {
        $verhash{version} = $1;
        $verhash{revision} = $2;
@@ -74,7 +74,7 @@ sub verrevcmp($$)
          #           : (x) + 256)
          # This comparison is out of dpkg's order to avoid
          # comparing things to undef and triggering warnings.
-         if (not defined $x) {
+         if (not defined $x or not length $x) {
               return 0;
          }
          elsif ($x eq '~') {
@@ -125,7 +125,6 @@ sub verrevcmp($$)
          return 1 if defined $vc and $vc =~ /^\d$/;
          return -1 if defined $rc and $rc =~ /^\d$/;
          return (($first_diff  > 0) ? 1 : -1) if $first_diff;
-         # return $first_diff if $first_diff;
      }
      return 0;
 }
@@ -150,7 +149,7 @@ sub vercmp ($$)
     return verrevcmp($version{revision}, $refversion{revision});
 }
 
-=back
+ =back
 
 =head1 AUTHOR
 
index e61345577e6eca9206b4ed054782614cdacac0ee..a5865a0e38030cb7642eb1416cdae27d1c31fdbf 100644 (file)
@@ -40,6 +40,16 @@ my @versions = ({a      => '1.0-1',
                 result => -1,
                 relation => 'lt',
                },
+               {a      => 'foo-',
+                b      => 'foo',
+                result => 0,
+                relation => 'eq',
+               },
+               {a      => 'foo-',
+                b      => 'foo+',
+                result => -1,
+                relation => 'lt',
+               },
               );
 
 plan tests => @versions * 2 + 1;