use Debbugs::Packages qw(getpkgsrc);
use Debbugs::User qw(read_usertags write_usertags);
use Debbugs::Common qw(:lock get_hashname);
-use Debbugs::Status qw(writebug isstrongseverity lockreadbugmerge);
+use Debbugs::Status qw(writebug isstrongseverity lockreadbugmerge lockreadbug);
use Debbugs::CGI qw(html_escape bug_url);
Subject => "Unknown problem report $gBug#$tryref ($subject)",
'Message-ID' => "<handler.x.$nn.unknown\@$gEmailDomain>",
'In-Reply-To' => $header{'message-id'},
- References => "$header{'message-id'} $data->{msgid}",
+ References => join(' ',grep {defined $_} $header{'message-id'},$data->{msgid}),
Precedence => 'bulk',
"X-$gProject-PR-Message" => 'error',
],message_body_template('process_unknown_bug_number',
my $generalcc;
my $set_done;
if ($codeletter eq 'F') { # Forwarded
- (&appendlog,&finish) if length($data->{forwarded});
+ (&appendlog,&finish) if defined $data->{forwarded} and length($data->{forwarded});
$receivedat= "forwarded\@$gEmailDomain";
$markaswhat= 'forwarded';
$set_forwarded= $header{'to'};
Subject => "Message with no $gBug number ignored by $receivedat ($subject)",
'Message-ID' => "<handler.x.$nn.warnignore\@$gEmailDomain>",
'In-Reply-To' => $header{'message-id'},
- References => "$header{'message-id'} $data->{msgid}",
+ References => join(' ',grep {defined $_} $header{'message-id'},$data->{msgid}),
Precedence => 'bulk',
"X-$gProject-PR-Message" => 'error',
- ],message_body_template('process_no_bug_number',
+ ],message_body_template('mail/process_no_bug_number',
{subject => $subject,
date => $header{date},
markaswhat => $markaswhat,
Subject => "$gBug#$ref: marked as forwarded ($data->{subject})",
"Message-ID" => "<header.$ref.$nn.ackfwdd\@$gEmailDomain>",
"In-Reply-To" => $header{'message-id'},
- References => "$header{'message-id'} $data->{msgid}",
+ References => join(' ',grep {defined $_} $header{'message-id'},$data->{msgid}),
Precedence => 'bulk',
"X-$gProject-PR-Message" => "forwarded $ref",
"X-$gProject-PR-Package" => $data->{package},
"X-$gProject-PR-Keywords" => $data->{keywords},
# Only have a X-$gProject-PR-Source when we know the source package
- length($source_package)?("X-$gProject-PR-Source" => $source_package):(),
+ (defined($source_package) and length($source_package))?("X-$gProject-PR-Source" => $source_package):(),
],message_body_template('mail/process_mark_as_forwarded',
{date => $header{date},
messageid => $header{'message-id'},
Subject => "$gBug#$ref: marked as done ($data->{subject})",
"Message-ID" => "<handler.$ref.$nn.ackdone\@$gEmailDomain>",
"In-Reply-To" => $header{'message-id'},
- References => "$header{'message-id'} $data->{msgid}",
+ References => join(' ',grep {defined $_} $header{'message-id'},$data->{msgid}),
Precedence => 'bulk',
"X-$gProject-PR-Message" => "closed $ref",
"X-$gProject-PR-Package" => $data->{package},
"X-$gProject-PR-Keywords" => $data->{keywords},
# Only have a X-$gProject-PR-Source when we know the source package
- length($source_package)?("X-$gProject-PR-Source" => $source_package):(),
+ (defined($source_package) and length($source_package))?("X-$gProject-PR-Source" => $source_package):(),
],message_body_template('mail/process_mark_as_done',
{date => $header{date},
messageid => $header{'message-id'},
Subject => "$gBug#$ref closed by $markedby ($header{'subject'})",
"Message-ID" => "<handler.$ref.$nn.notifdone\@$gEmailDomain>",
"In-Reply-To" => "$data->{msgid}",
- References => "$header{'message-id'} $data->{msgid}",
+ References => join(' ',grep {defined $_} $header{'message-id'},$data->{msgid}),
"X-$gProject-PR-Message" => "they-closed $ref",
"X-$gProject-PR-Package" => "$data->{package}",
"X-$gProject-PR-Keywords" => "$data->{keywords}",
# Only have a X-$gProject-PR-Source when we know the source package
- length($source_package)?("X-$gProject-PR-Source" => $source_package):(),
+ (defined($source_package) and length($source_package))?("X-$gProject-PR-Source" => $source_package):(),
"Reply-To" => "$ref\@$gEmailDomain",
"Content-Type" => 'text/plain; charset="utf-8"',
],message_body_template('mail/process_mark_as_done',
{data => $data,
markedby => $markedby,
+ messageid => $header{'message-id'},
+ subject => $header{subject},
},
),
[join("\n",@msg),$orig_report]),'',undef,1);
Subject => "Message with no $gBug number cannot be sent to submitter! ($subject)",
'Message-ID' => "<handler.x.$nn.nonumnosub\@$gEmailDomain>",
'In-Reply-To' => $header{'message-id'},
- References => "$header{'message-id'} $data->{msgid}",
+ References => join(' ',grep {defined $_} $header{'message-id'},$data->{msgid}),
Precedence => 'bulk',
"X-$gProject-PR-Message" => 'error',
- ],message_body_template('process_no_bug_number',
+ ],message_body_template('mail/process_no_bug_number',
{subject => $subject,
date => $header{date},
markaswhat => 'submitter',
Subject => "Message with no Package: tag cannot be processed! ($subject)",
"Message-ID" => "<handler.x.$nn.nonumnosub\@$gEmailDomain>",
"In-Reply-To" => $header{'message-id'},
- References => "$header{'message-id'} $data->{msgid}",
+ References => join(' ',grep {defined $_} $header{'message-id'},$data->{msgid}),
Precedence => 'bulk',
"X-$gProject-PR-Message" => 'error'
],
- message_body_template('mail/process_mark_as_done',
+ message_body_template('mail/process_no_package',
{date => $header{date},
subject => $subject,
messageid => $header{'message-id'},
for my $tag (split /[,\s]+/, $pheader{usertags}) {
if ($tag =~ /^[a-zA-Z0-9.+\@-]+/) {
my %bugs_with_tag;
- @bugs_with_tag{@{$user_tags{$tag}}} = (1) x @{$user_tags{$tag}};
+ @bugs_with_tag{@{$user_tags{$tag}||[]]}} = (1) x @{$user_tags{$tag}||[]};
$bugs_with_tag{$ref} = 1;
$user_tags{$tag} = [keys %bugs_with_tag];
}
if (not exists $header{'x-debbugs-no-ack'} and
($newref or
($codeletter ne 'U' and
- not defined $header{precedence} or
- $header{'precedence'} !~ /\b(?:bulk|junk|list)\b/
+ (not defined $header{precedence} or
+ $header{'precedence'} !~ /\b(?:bulk|junk|list)\b/
+ )
)
)
){
$t_h{pr_message} = "ack${infod} $ref";
$t_h{reply_to} = "$ref\@$gEmailDomain";
$extra_vars->{refreplyto} = "$ref\@$gEmailDomain";
- $t_h{subject} = length($info)?
+ $t_h{subject} = (defined $info and length($info))?
"$gBug#$ref: Info received ($subject)" :
"$gBug#$ref: Acknowledgement ($subject)";
}
"X-$gProject-PR-Package" => $data->{package},
"X-$gProject-PR-Keywords" => $data->{keywords},
# Only have a X-$gProject-PR-Source when we know the source package
- length($source_package)?("X-$gProject-PR-Source" => $source_package):(),
+ (defined($source_package) and length($source_package))?("X-$gProject-PR-Source" => $source_package):(),
"Reply-To" => $t_h{reply_to} || "$ref\@$gEmailDomain",
],$body,[]), '',undef,1);
}
my $variables = {config => \%config,
defined($ref)?(ref => $ref):(),
defined($data)?(data => $data):(),
- bugurl => sub{"bug_url for $_[0] ".bug_url($_[0])},
%{$extra_var},
};
+ my $hole_var = {'&bugurl' =>
+ sub{"$_[0]: ".
+ 'http://'.$config{cgi_domain}.'/'.
+ Debbugs::CGI::bug_url($_[0]);
+ }
+ };
return fill_in_template(template => $template,
variables => $variables,
+ hole_var => $hole_var,
);
}