use Debbugs::Status qw(splitpackages);
use Debbugs::CGI qw(html_escape);
-use Debbugs::Control qw(:all);
+use Debbugs::Control qw(:all valid_usertag);
use Debbugs::Control::Service qw(:all);
use Debbugs::Log qw(:misc);
use Debbugs::Text qw(:templates);
use Scalar::Util qw(looks_like_number);
-use List::AllUtils qw(first);
+use List::AllUtils qw(first uniqnum);
use Mail::RFC822::Address;
use Encode qw(decode encode);
my %chtags;
if (defined $tags and length $tags) {
for my $t (split /[,\s]+/, $tags) {
- if ($t =~ m/^[a-zA-Z0-9.+\@-]+$/) {
+ if (valid_usertag($t)) {
$chtags{$t} = 1;
} else {
push @badtags, $t;
} else {
print {$transcript} "Usertags were: " . join(" ", @oldtags) . ".\n";
}
- print {$transcript} "Usertags are now: " . join(" ", @newtags) . ".\n";
+ if (@newtags == 0) {
+ print {$transcript} "There are now no usertags set.\n";
+ } else {
+ print {$transcript} "Usertags are now: " . join(" ", @newtags) . ".\n";
+ }
Debbugs::User::write_usertags(\%ut, $user);
}
} elsif (!$control) {
my $variables = {config => \%config,
defined($ref)?(ref => $ref):(),
defined($data)?(data => $data):(),
- refs => [map {exists $clonebugs{$_}?$clonebugs{$_}:$_} keys %bug_affected],
+ refs => [sort
+ uniqnum(defined($ref)?($ref):(),
+ map {exists $clonebugs{$_}?$clonebugs{$_}:$_}
+ keys %bug_affected)],
%{$extra_var},
};
- my $hole_var = {'&bugurl' =>
- sub{"$_[0]: ".
- $config{cgi_domain}.'/'.
- Debbugs::CGI::bug_links(bug=>$_[0],
- links_only => 1,
- );
- }
- };
return fill_in_template(template => $template,
variables => $variables,
- hole_var => $hole_var,
+ output_type => 'text',
);
}