]> git.donarmstrong.com Git - bugscan.git/blobdiff - scanlib.pm
Slight optimization/simplification.
[bugscan.git] / scanlib.pm
index 460e269b2684587ca727f47cad572c22d33e9ede..b1ef13a308f47fd1b47e9c6215228b7faeb29b29 100644 (file)
@@ -225,11 +225,11 @@ sub scanspooldir() {
                $status_experimental = get_status($f, $bug, 'experimental') if ($experimental_tag);
 
                $relinfo = "";
-               $relinfo .= (($oldstable_tag    && $status_oldstable->{'pending'}    eq 'pending') ? "O" : "");
-               $relinfo .= (($stable_tag       && $status_stable->{'pending'}       eq 'pending') ? "S" : "");
-               $relinfo .= (($testing_tag      && $status_testing->{'pending'}      eq 'pending') ? "T" : "");
-               $relinfo .= (($unstable_tag     && $status_unstable->{'pending'}     eq 'pending') ? "U" : "");
-               $relinfo .= (($experimental_tag && $status_experimental->{'pending'} eq 'pending') ? "E" : "");
+               $relinfo .= (($oldstable_tag    && $status_oldstable    eq 'pending') ? "O" : "");
+               $relinfo .= (($stable_tag       && $status_stable       eq 'pending') ? "S" : "");
+               $relinfo .= (($testing_tag      && $status_testing      eq 'pending') ? "T" : "");
+               $relinfo .= (($unstable_tag     && $status_unstable     eq 'pending') ? "U" : "");
+               $relinfo .= (($experimental_tag && $status_experimental eq 'pending') ? "E" : "");
                
                next if $relinfo eq '' and not $premature{$f};
                $premature{$f}++ if $relinfo eq '';
@@ -374,12 +374,23 @@ sub get_status() {
        my @versions = Debbugs::Status::getversions($bug->{'package'}, $dist, undef);
        my @sourceversions = Debbugs::Status::makesourceversions($bug->{'package'}, undef, @versions);
 
-       return Debbugs::Status::max_buggy(bug => $bugnr,
+       if (length($bug->{'done'}) and
+           (not @sourceversions or not @{$bug->{'fixed_versions'}})) {
+               return 'done';
+       }
+       if (@sourceversions) {
+               my $max_buggy = Debbugs::Status::max_buggy(bug => $bugnr,
                         sourceversions => \@sourceversions,
                         found => $bug->{'found_versions'},
                         fixed => $bug->{'fixed_versions'},
                         version_cache => $_version_cache,
                         package => $bug->{'package'});
+               if ($max_buggy eq 'absent' || $max_buggy eq 'fixed') {
+                       return $max_buggy;
+               }
+       }
+
+       return 'pending';
 }
 
 sub check_worry {