Signed-off-by: Niels Thykier <niels@thykier.net>
return htmlize_addresslinks($prefixfunc, \&mainturl, $maints);
}
return htmlize_addresslinks($prefixfunc, \&mainturl, $maints);
}
-
-our $_maintainer;
-our $_maintainer_rev;
-
=head2 bug_linklist
bug_linklist($separator,$class,@bugs)
=head2 bug_linklist
bug_linklist($separator,$class,@bugs)
for my $key (keys %{$param{form_option}}) {
# strip out leader; shouldn't be anything here without one,
# but skip stupid things anyway
for my $key (keys %{$param{form_option}}) {
# strip out leader; shouldn't be anything here without one,
# but skip stupid things anyway
next unless $key =~ s/^\Q$form_option_leader\E//;
if ($key =~ /^add_(.+)$/) {
# this causes a specific parameter to be added
next unless $key =~ s/^\Q$form_option_leader\E//;
if ($key =~ /^add_(.+)$/) {
# this causes a specific parameter to be added
my $output = globify_scalar($param{output});
my $entity = $param{entity};
my $ref = $param{bug_num};
my $output = globify_scalar($param{output});
my $entity = $param{entity};
my $ref = $param{bug_num};
- my $top = $param{outer};
my $xmessage = $param{msg_num};
my $attachments = $param{attachments};
my $xmessage = $param{msg_num};
my $attachments = $param{attachments};
- my @new_blockers = keys %blockers;
for my $data (@data) {
my $old_data = dclone($data);
# remove blockers and/or add new ones as appropriate
for my $data (@data) {
my $old_data = dclone($data);
# remove blockers and/or add new ones as appropriate
$mungable_blocks{add} = \%added_blockers if keys %added_blockers;
my $new_locks = 0;
for my $add_remove (keys %mungable_blocks) {
$mungable_blocks{add} = \%added_blockers if keys %added_blockers;
my $new_locks = 0;
for my $add_remove (keys %mungable_blocks) {
for my $blocker (keys %{$mungable_blocks{$add_remove}}) {
next if $munge_blockers{$blocker};
my ($temp_locks, @blocking_data) =
for my $blocker (keys %{$mungable_blocks{$add_remove}}) {
next if $munge_blockers{$blocker};
my ($temp_locks, @blocking_data) =
__begin_control(%param,
command => 'tag'
);
__begin_control(%param,
command => 'tag'
);
- my ($debug,$transcript) =
- @info{qw(debug transcript)};
+ my $transcript = $info{transcript};
my @data = @{$info{data}};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my @tags = make_list($param{tag});
if (not @tags and ($param{remove} or $param{add})) {
if ($param{remove}) {
my @tags = make_list($param{tag});
if (not @tags and ($param{remove} or $param{add})) {
if ($param{remove}) {
my $action = 'Did not alter tags';
my %tag_added = ();
my %tag_removed = ();
my $action = 'Did not alter tags';
my %tag_added = ();
my %tag_removed = ();
- my %fixed_removed = ();
my @old_tags = split /\,?\s+/, $data->{keywords};
my %tags;
@tags{@old_tags} = (1) x @old_tags;
my @old_tags = split /\,?\s+/, $data->{keywords};
my %tags;
@tags{@old_tags} = (1) x @old_tags;
my $old_data = dclone($data);
if (not $param{add} and not $param{remove}) {
$tag_removed{$_} = 1 for @old_tags;
my $old_data = dclone($data);
if (not $param{add} and not $param{remove}) {
$tag_removed{$_} = 1 for @old_tags;
__begin_control(%param,
command => 'severity'
);
__begin_control(%param,
command => 'severity'
);
- my ($debug,$transcript) =
- @info{qw(debug transcript)};
+ my $transcript = $info{transcript};
my @data = @{$info{data}};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my $action = '';
for my $data (@data) {
my $action = '';
for my $data (@data) {
__begin_control(%param,
command => $param{reopen}?'reopen':'done',
);
__begin_control(%param,
command => $param{reopen}?'reopen':'done',
);
- my ($debug,$transcript) =
- @info{qw(debug transcript)};
+ my $transcript = $info{transcript};
my @data = @{$info{data}};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my $action ='';
if ($param{reopen}) {
my $action ='';
if ($param{reopen}) {
}
else {
my %submitter_notified;
}
else {
my %submitter_notified;
- my $requester_notified = 0;
my $orig_report_set = 0;
for my $data (@data) {
if (exists $data->{done} and
my $orig_report_set = 0;
for my $data (@data) {
if (exists $data->{done} and
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my $action = '';
# here we only concern ourselves with the first of the merged bugs
for my $data ($data[0]) {
my $action = '';
# here we only concern ourselves with the first of the merged bugs
for my $data ($data[0]) {
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my $action = '';
for my $data (@data) {
my $old_data = dclone($data);
my $action = '';
for my $data (@data) {
my $old_data = dclone($data);
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my $action = '';
for my $data (@data) {
my $old_data = dclone($data);
my $action = '';
for my $data (@data) {
my $old_data = dclone($data);
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
# clean up the new package
my $new_package =
join(',',
# clean up the new package
my $new_package =
join(',',
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my %versions;
for my $version (make_list($param{found})) {
next unless defined $version;
my %versions;
for my $version (make_list($param{found})) {
next unless defined $version;
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my %versions;
for my $version (make_list($param{fixed})) {
next unless defined $version;
my %versions;
for my $version (make_list($param{fixed})) {
next unless defined $version;
return;
}
my @data = @{$info{data}};
return;
}
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my %data;
my %merged_bugs;
for my $data (@data) {
my %data;
my %merged_bugs;
for my $data (@data) {
# handle unmerging
my $new_locks = 0;
if (not exists $param{merge_with}) {
# handle unmerging
my $new_locks = 0;
if (not exists $param{merge_with}) {
delete $merged_bugs{$param{bug}};
if (not keys %merged_bugs) {
print {$transcript} "Ignoring request to unmerge a bug which is not merged with any others.\n";
delete $merged_bugs{$param{bug}};
if (not keys %merged_bugs) {
print {$transcript} "Ignoring request to unmerge a bug which is not merged with any others.\n";
return;
}
# lock and load all of the bugs we need
return;
}
# lock and load all of the bugs we need
- my @bugs_to_load = keys %merging;
- my $bug_to_load;
- my %merge_added;
my ($data,$n_locks) =
__lock_and_load_merged_bugs(bugs_to_load => [keys %merging],
data => \@data,
my ($data,$n_locks) =
__lock_and_load_merged_bugs(bugs_to_load => [keys %merging],
data => \@data,
my %target_blockedby;
@target_blockedby{@{$change->{func_value}}} = (1) x @{$change->{func_value}};
my %unhandled_targets = %target_blockedby;
my %target_blockedby;
@target_blockedby{@{$change->{func_value}}} = (1) x @{$change->{func_value}};
my %unhandled_targets = %target_blockedby;
for my $key (split / /,$change->{orig_value}) {
delete $unhandled_targets{$key};
next if exists $target_blockedby{$key};
for my $key (split / /,$change->{orig_value}) {
delete $unhandled_targets{$key};
next if exists $target_blockedby{$key};
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my $action = '';
for my $data (@data) {
$action = '';
my $action = '';
for my $data (@data) {
$action = '';
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
# figure out the log that we're going to use
my $summary = '';
my $summary_msg = '';
# figure out the log that we're going to use
my $summary = '';
my $summary_msg = '';
__begin_control(%param,
command => 'clone'
);
__begin_control(%param,
command => 'clone'
);
- my ($debug,$transcript) =
- @info{qw(debug transcript)};
+ my $transcript = $info{transcript};
my @data = @{$info{data}};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my $action = '';
for my $data (@data) {
my $action = '';
for my $data (@data) {
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
my ($debug,$transcript) =
@info{qw(debug transcript)};
my @data = @{$info{data}};
- my @bugs = @{$info{bugs}};
my $action = '';
for my $data (@data) {
print {$debug} "Going to change owner to '".(defined $param{owner}?$param{owner}:'(going to unset it)')."'\n";
my $action = '';
for my $data (@data) {
print {$debug} "Going to change owner to '".(defined $param{owner}?$param{owner}:'(going to unset it)')."'\n";
command=>'unarchive');
my ($debug,$transcript) =
@info{qw(debug transcript)};
command=>'unarchive');
my ($debug,$transcript) =
@info{qw(debug transcript)};
- my @data = @{$info{data}};
my @bugs = @{$info{bugs}};
my $action = "$config{bug} unarchived.";
my @files_to_remove;
my @bugs = @{$info{bugs}};
my $action = "$config{bug} unarchived.";
my @files_to_remove;
print {$transcript} "Failed to forcibly merge $ref: ".cleanup_eval_fail($@,$debug)."\n";
}
} elsif ($ctl eq 'clone') {
print {$transcript} "Failed to forcibly merge $ref: ".cleanup_eval_fail($@,$debug)."\n";
}
} elsif ($ctl eq 'clone') {
- my $origref = $matches[0];
my @newclonedids = split /\s+/, $matches[1];
my @newclonedids = split /\s+/, $matches[1];
- my $newbugsneeded = scalar(@newclonedids);
my $cond = new Search::Estraier::Condition;
$cond->add_attr('@uri STRBW '.$bug_num.'/');
$cond->set_max(50);
my $cond = new Search::Estraier::Condition;
$cond->add_attr('@uri STRBW '.$bug_num.'/');
$cond->set_max(50);
my $nres;
while ($nres = $est->search($cond,0) and $nres->doc_num > 0){
for my $rdoc (map {$nres->get_doc($_)} 0..($nres->doc_num-1)) {
my $nres;
while ($nres = $est->search($cond,0) and $nres->doc_num > 0){
for my $rdoc (map {$nres->get_doc($_)} 0..($nres->doc_num-1)) {
- my $found_one_version = 0;
for my $version (@versions) {
next unless exists $bin->{$version};
if (exists $bin->{$version}{all}) {
for my $version (@versions) {
next unless exists $bin->{$version};
if (exists $bin->{$version}{all}) {
arch => 'source',
versions => '0.1.1',
guess_source => 1,
arch => 'source',
versions => '0.1.1',
guess_source => 1,
warnings => \$warnings,
);
warnings => \$warnings,
);
},
);
my ($warnings) = globify_scalar(exists $param{warnings}?$param{warnings}:undef);
},
);
my ($warnings) = globify_scalar(exists $param{warnings}?$param{warnings}:undef);
- my ($debug) = globify_scalar(exists $param{debug} ?$param{debug} :undef);
my @packages = grep {defined $_ and length $_ } make_list($param{package});
my @archs = grep {defined $_ } make_list ($param{arch});
my @packages = grep {defined $_ and length $_ } make_list($param{package});
my @archs = grep {defined $_ } make_list ($param{arch});
- my ($p, $addmaint);
- my $anymaintfound=0; my $anymaintnotfound=0;
my $ref = $param{data}{bug_num};
for my $p (splitpackages($param{data}{package})) {
$p = lc($p);
my $ref = $param{data}{bug_num};
for my $p (splitpackages($param{data}{package})) {
$p = lc($p);
my %seen_msg_ids;
my $current_msg=0;
my %seen_msg_ids;
my $current_msg=0;
my @messages;
while (my $record = $log->read_record()) {
$current_msg++;
my @messages;
while (my $record = $log->read_record()) {
$current_msg++;
=cut
sub lockreadbugmerge {
=cut
sub lockreadbugmerge {
- my ($bug_num,$location) = @_;
my $data = lockreadbug(@_);
if (not defined $data) {
return (0,undef);
my $data = lockreadbug(@_);
if (not defined $data) {
return (0,undef);
our %tt_templates;
our %filled_templates;
our $safe;
our %tt_templates;
our %filled_templates;
our $safe;
-our $hole = Safe::Hole->new({});
our $language;
# This function is what is called when someone does include('foo/bar')
our $language;
# This function is what is called when someone does include('foo/bar')