X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FCGI.pm;h=d371ffe8e3eceed6c66b926a7444f67c6bb42f57;hb=9204a23b54717c810acb7351fa2a5fb37bed54a1;hp=b5c24ddbc648e7db0d133d1b1ecd83c4b7543eeb;hpb=2a2dd12fbe59631a5d4cdd6c1607b6181ead5782;p=debbugs.git diff --git a/Debbugs/CGI.pm b/Debbugs/CGI.pm index b5c24dd..d371ffe 100644 --- a/Debbugs/CGI.pm +++ b/Debbugs/CGI.pm @@ -78,6 +78,7 @@ use Debbugs::User qw(); use Mail::Address; use POSIX qw(ceil); use Storable qw(dclone); +use Scalar::Util qw(looks_like_number); use List::AllUtils qw(max); use File::stat; @@ -394,10 +395,11 @@ sub package_links { } if ($has_options) { push @links, - munge_url('pkgreport.cgi?', + (munge_url('pkgreport.cgi?', %options, $t_type => $target, - ); + ), + $target); } else { push @links, ('pkgreport.cgi?'.$t_type.'='.uri_escape_utf8($target), @@ -469,23 +471,24 @@ returning htmlized links. =cut sub bug_links { + state $spec = {bug => {type => SCALAR|ARRAYREF, + optional => 1, + }, + links_only => {type => BOOLEAN, + default => 0, + }, + class => {type => SCALAR, + default => '', + }, + separator => {type => SCALAR, + default => ', ', + }, + options => {type => HASHREF, + default => {}, + }, + }; my %param = validate_with(params => \@_, - spec => {bug => {type => SCALAR|ARRAYREF, - optional => 1, - }, - links_only => {type => BOOLEAN, - default => 0, - }, - class => {type => SCALAR, - default => '', - }, - separator => {type => SCALAR, - default => ', ', - }, - options => {type => HASHREF, - default => {}, - }, - }, + spec => $spec, ); my %options = %{$param{options}}; @@ -502,7 +505,11 @@ sub bug_links { $_); } make_list($param{bug}) if exists $param{bug}; } else { - push @links, map {'bugreport.cgi?bug='.uri_escape_utf8($_)} + push @links, + map {my $b = ceil($_); + ('bugreport.cgi?bug='.$b, + $b)} + grep {looks_like_number($_)} make_list($param{bug}) if exists $param{bug}; } my @return;