&checkmatch('blocked-by','m_blockedby',$data->{blockedby},@newmergelist);
&checkmatch('done mark','m_done',length($data->{done}) ? 'done' : 'open',@newmergelist);
&checkmatch('owner','m_owner',$data->{owner},@newmergelist);
+ &checkmatch('summary','m_summary',$data->{summary},@newmergelist);
+ &checkmatch('affects','m_affects',$data->{affects},@newmergelist);
foreach my $t (split /\s+/, $data->{keywords}) { $tags{$t} = 1; }
foreach my $f (@{$data->{found_versions}}) { $found{$f} = 1; }
foreach my $f (@{$data->{fixed_versions}}) { $fixed{$f} = 1; }
$data->{keywords}= join(' ', keys %tags);
$data->{found_versions}= [sort keys %found];
$data->{fixed_versions}= [sort keys %fixed];
- my @field_list = qw(forwarded package severity blocks blockedby owner done);
+ my @field_list = qw(forwarded package severity blocks blockedby owner done affects summary);
@{$data}{@field_list} = @{$master_bug_data}{@field_list};
&savebug;
}
%limit_pkgs = ();
print {$transcript} "Not ignoring any bugs.\n\n";
}
+ } elsif (m/^affects?\s+\#?(-?\d+)(?:\s+((?:[=+-])?)\s*(\S.*)?)?\s*$/i) {
+ $ok++;
+ $ref = $1;
+ my $add_remove = $2 || '';
+ my $packages = $3 || '';
+ $ref = $clonebugs{$ref} if exists $clonebugs{$ref};
+ $bug_affected{$ref} = 1;
+ eval {
+ affects(bug => $ref,
+ transcript => $transcript,
+ ($dl > 0 ? (debug => $transcript):()),
+ requester => $header{from},
+ request_addr => $controlrequestaddr,
+ message => \@log,
+ recipients => \%recipients,
+ packages => [splitpackages($3)],
+ ($add_remove eq '+'?(add => 1):()),
+ ($add_remove eq '-'?(remove => 1):()),
+ );
+ };
+ if ($@) {
+ $errors++;
+ print {$transcript} "Failed to give $ref a summary: $@";
+ }
+
} elsif (m/^summary\s+\#?(-?\d+)\s*(\d+|)\s*$/i) {
$ok++;
$ref = $1;