X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FCGI.pm;h=d51b9be0a469c5503f4e3648964c36bb2bb31e27;hb=9ba439f0dec2d3980de21b01d5f335a9d213158f;hp=e2780036b5262d44fdb56dbf716bcdac45b35b2d;hpb=60ec861a3cb25564a6f2c05e10beb049faad2f4c;p=debbugs.git diff --git a/Debbugs/CGI.pm b/Debbugs/CGI.pm index e278003..d51b9be 100644 --- a/Debbugs/CGI.pm +++ b/Debbugs/CGI.pm @@ -196,7 +196,7 @@ width and height are passed. sub version_url{ my %params = validate_with(params => \@_, - spec => {package => {type => SCALAR, + spec => {package => {type => SCALAR|ARRAYREF, }, found => {type => ARRAYREF, default => [], @@ -297,7 +297,7 @@ sub quitcgi { } -=head HTML +=head1 HTML =head2 htmlize_packagelinks @@ -400,11 +400,15 @@ sub package_links { } my @links = (); for my $type (qw(src package)) { - push @links, map {(munge_url('pkgreport.cgi?', + push @links, map {my $t_type = $type; + if ($_ =~ s/^src://) { + $t_type = 'src'; + } + (munge_url('pkgreport.cgi?', %options, - $type => $_, + $t_type => $_, ), - $_); + ($t_type eq 'src'?'src:':'').$_); } make_list($param{$type}) if exists $param{$type}; } for my $type (qw(maint owner submitter correspondent)) { @@ -536,8 +540,8 @@ the split links with commas and spaces. sub maybelink { my ($links,$regex,$join) = @_; if (not defined $regex and not defined $join) { - $links =~ s{((?:ftp|http|https)://[\S~-]+?/?)([\)\'\:\.\,]?(?:\s|\.<|$))} - {q().html_escape($1).q().$2}geimo; + $links =~ s{(.*?)((?:(?:ftp|http|https)://[\S~-]+?/?)?)([\)\'\:\.\,]?(?:\s|\.<|$))} + {html_escape($1).(length $2?q().html_escape($2).q():'').html_escape($3)}geimo; return $links; } $join = ' ' if not defined $join; @@ -867,7 +871,8 @@ sub option_form{ if (defined $value and $o_value eq $value) { $selected = ' selected'; } - $output .= qq(\n); + $output .= q(\n); } return $output; }; @@ -877,6 +882,8 @@ sub option_form{ return Debbugs::Text::fill_in_template(template=>$param{template}, (exists $param{language}?(language=>$param{language}):()), variables => $variables, + hole_var => {'&html_escape' => \&html_escape, + }, ); }