$indexentry .= "<p>$showseverity";
$indexentry .= htmlpackagelinks($status{package}, 0);
-$indexentry .= "Reported by: <a href=\"" . submitterurl($status{originator})
- . "\">" . htmlsanit($status{originator}) . "</a>;\n";
+$indexentry .= htmladdresslinks("Reported by: ", \&submitterurl,
+ $status{originator}) . ";\n";
$indexentry .= "Owned by: " . htmlsanit($status{owner}) . ";\n"
if length $status{owner};
) . ";\n";
}
-# Generate a comma-separated list of HTML links to each maintainer given in
-# $maints, which should be a comma-separated list of RFC822 addresses.
-sub htmlmaintlinks {
- my ($prefixfunc, $maints) = @_;
- if (defined $maints and $maints ne '') {
- my @maintaddrs = getparsedaddrs($maints);
- my $prefix = (ref $prefixfunc) ? $prefixfunc->(scalar @maintaddrs)
+# Generate a comma-separated list of HTML links to each address given in
+# $addresses, which should be a comma-separated list of RFC822 addresses.
+# $urlfunc should be a reference to a function like mainturl or submitterurl
+# which returns the URL for each individual address.
+sub htmladdresslinks {
+ my ($prefixfunc, $urlfunc, $addresses) = @_;
+ if (defined $addresses and $addresses ne '') {
+ my @addrs = getparsedaddrs($addresses);
+ my $prefix = (ref $prefixfunc) ? $prefixfunc->(scalar @addrs)
: $prefixfunc;
return $prefix .
join ', ', map { sprintf '<a href="%s">%s</a>',
- mainturl($_->address),
+ $urlfunc->($_->address),
htmlsanit($_->format) || '(unknown)'
- } @maintaddrs;
+ } @addrs;
} else {
my $prefix = (ref $prefixfunc) ? $prefixfunc->(1) : $prefixfunc;
- return sprintf '%s<a href="%s">(unknown)</a>', $prefix, mainturl('');
+ return sprintf '%s<a href="%s">(unknown)</a>', $prefix, $urlfunc->('');
}
}
+# Generate a comma-separated list of HTML links to each maintainer given in
+# $maints, which should be a comma-separated list of RFC822 addresses.
+sub htmlmaintlinks {
+ my ($prefixfunc, $maints) = @_;
+ return htmladdresslinks($prefixfunc, \&mainturl, $maints);
+}
+
sub htmlindexentry {
my $ref = shift;
my %status = %{getbugstatus($ref)};
$result .= htmlpackagelinks($status{"package"}, 1);
$result .= $showseverity;
- $result .= "Reported by: <a href=\"" . submitterurl($status{originator})
- . "\">" . htmlsanit($status{originator}) . "</a>";
+ $result .= htmladdresslinks("Reported by: ", \&submitterurl,
+ $status{originator});
$result .= ";\nOwned by: " . htmlsanit($status{owner})
if length $status{owner};
$result .= ";\nTags: <strong>"
} elsif ($indexon eq "submitter") {
$tag = "submitter";
my %fullname = ();
- %count = countbugs(sub {my %d=@_; my $f = $d{"submitter"} || "";
- my $em = emailfromrfc822($f);
- $fullname{$em} = $f if (!defined $fullname{$em});
- return $em;
- });
+ %count = countbugs(sub {my %d=@_;
+ my @se = getparsedaddrs($d{"submitter"} || "");
+ foreach my $addr (@se) {
+ $fullname{$addr->address} = $addr->format
+ unless exists $fullname{$addr->address};
+ }
+ map { $_->address } @se;
+ });
foreach my $sub (keys %count) {
$sortkey{$sub} = lc $fullname{$sub};
$htmldescrip{$sub} = sprintf('<a href="%s">%s</a>',