From: Don Armstrong Date: Tue, 26 Jun 2007 17:54:09 +0000 (+0100) Subject: * Remove dependency of cgi/pkgreport.cgi on common.pl X-Git-Tag: release/2.6.0~533^2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=83a34f8b9b0025ec90c70b8d2be2a8f9c65528e7;p=debbugs.git * Remove dependency of cgi/pkgreport.cgi on common.pl --- diff --git a/cgi/pkgreport.cgi b/cgi/pkgreport.cgi index 734762f..cffc324 100755 --- a/cgi/pkgreport.cgi +++ b/cgi/pkgreport.cgi @@ -12,18 +12,18 @@ package debbugs; +use warnings; use strict; use POSIX qw(strftime nice); -require './common.pl'; - use Debbugs::Config qw(:globals :text :config); use Debbugs::User; use Debbugs::CGI qw(version_url maint_decode); -use Debbugs::Common qw(getparsedaddrs :date make_list); -use Debbugs::Bugs qw(get_bugs); +use Debbugs::Common qw(getparsedaddrs :date make_list getmaintainers); +use Debbugs::Bugs qw(get_bugs bug_filter); use Debbugs::Packages qw(getsrcpkgs getpkgsrc get_versions); -use Debbugs::Status qw(get_bug_status); +use Debbugs::Status qw(:status); +use Debbugs::CGI qw(:all); use vars qw($gPackagePages $gWebDomain %gSeverityDisplay @gSeverityList); @@ -34,23 +34,20 @@ if (defined $ENV{REQUEST_METHOD} and $ENV{REQUEST_METHOD} eq 'HEAD') { nice(5); -my $userAgent = detect_user_agent(); - use CGI::Simple; my $q = new CGI::Simple; -#my %param = readparse(); - -my %param = cgi_parameters(query => $q, - single => [qw(ordering archive repeatmerged), - qw(bug-rev pend-rev sev-rev), - qw(maxdays mindays version), - qw(data which dist), - ], - default => {ordering => 'normal', - archive => 0, - repeatmerged => 1, - }, - ); + +our %param = cgi_parameters(query => $q, + single => [qw(ordering archive repeatmerged), + qw(bug-rev pend-rev sev-rev), + qw(maxdays mindays version), + qw(data which dist), + ], + default => {ordering => 'normal', + archive => 0, + repeatmerged => 1, + }, + ); # map from yes|no to 1|0 for my $key (qw(repeatmerged bug-rev pend-rev sev-rev)) { @@ -72,7 +69,6 @@ elsif (lc($param{archive}) eq 'yes') { } -my $repeatmerged = ($param{'repeatmerged'} || "yes") eq "yes"; my $archive = ($param{'archive'} || "no") eq "yes"; my $include = $param{'&include'} || $param{'include'} || ""; my $exclude = $param{'&exclude'} || $param{'exclude'} || ""; @@ -104,8 +100,6 @@ my $mindays = ($param{'mindays'} || 0); my $version = $param{'version'} || undef; my $dist = $param{'dist'} || undef; my $arch = $param{'arch'} || undef; -my $show_list_header = ($param{'show_list_header'} || $userAgent->{'show_list_header'} || "yes" ) eq "yes"; -my $show_list_footer = ($param{'show_list_footer'} || $userAgent->{'show_list_footer'} || "yes" ) eq "yes"; { if (defined $param{'vt'}) { @@ -163,7 +157,7 @@ our %cats = ( ); my @select_key = (qw(submitter maint pkg package src usertag), - qw(status tag maintenc owner) + qw(status tag maintenc owner severity) ); if (exists $param{which} and exists $param{data}) { @@ -212,7 +206,9 @@ if (defined $param{usertag}) { my $Archived = $archive ? " Archived" : ""; -my $this = ""; +our $this = munge_url('pkgreport.cgi?', + %param, + ); my %indexentry; my %strings = (); @@ -250,7 +246,7 @@ sub add_user { push @{$bugusertags{$b}}, $t; } } - set_option("bugusertags", \%bugusertags); +# set_option("bugusertags", \%bugusertags); } my @bugs; @@ -292,8 +288,6 @@ my %search_keys = @search_key_order; # Set the title sanely and clean up parameters my @title; -use Data::Dumper; -print STDERR Dumper(\%param); while (my ($key,$value) = splice @search_key_order, 0, 2) { next unless exists $param{$key}; my @entries = (); @@ -344,7 +338,7 @@ elsif (defined $param{dist}) { $title .= " in $dist"; } -$title = htmlsanit($title); +$title = html_escape($title); my @names; my @prior; my @order; determine_ordering(); @@ -389,12 +383,12 @@ for my $package (make_list($param{src}||[])) { sub output_package_info{ my ($srcorbin,$package) = @_; - my $showpkg = htmlsanit($package); + my $showpkg = html_escape($package); my $maintainers = getmaintainers(); my $maint = $maintainers->{$package}; if (defined $maint) { print '

'; - print htmlmaintlinks(sub { $_[0] == 1 ? "Maintainer for $showpkg is " + print htmlize_maintlinks(sub { $_[0] == 1 ? "Maintainer for $showpkg is " : "Maintainers for $showpkg are " }, $maint); @@ -418,7 +412,7 @@ sub output_package_info{ print "

You may want to refer to the following individual bug pages:\n"; } #push @pkgs, $src if ( $src && !grep(/^\Q$src\E$/, @pkgs) ); - print join( ", ", map( "$_", @pkgs ) ); + print join( ", ", map( "$_)) . "\">$_", @pkgs ) ); print ".\n"; } my @references; @@ -429,7 +423,7 @@ sub output_package_info{ } else { if ($package and defined $gPackagePages) { push @references, sprintf "to the %s package page", - urlsanit("http://${debbugs::gPackagePages}/$package"), htmlsanit("$package"); + html_escape("http://${debbugs::gPackagePages}/$package"), html_escape("$package"); } if (defined $gSubscriptionDomain) { my $ptslink = $package ? $srcforpkg : $src; @@ -437,7 +431,7 @@ sub output_package_info{ } # Only output this if the source listing is non-trivial. if ($srcorbin eq 'binary' and $srcforpkg) { - push @references, sprintf "to the source package %s's bug page", srcurl($srcforpkg), htmlsanit($srcforpkg); + push @references, sprintf "to the source package %s's bug page", html_escape(munge_url($this,src=>$srcforpkg,package=>[])), html_escape($srcforpkg); } } if (@references) { @@ -447,12 +441,12 @@ sub output_package_info{ if (defined $param{maint} || defined $param{maintenc}) { print "

If you find a bug not listed here, please\n"; printf "report it.

\n", - urlsanit("http://${debbugs::gWebDomain}/Reporting${debbugs::gHTMLSuffix}"); + html_escape("http://${debbugs::gWebDomain}/Reporting${debbugs::gHTMLSuffix}"); } if (not $maint and not @bugs) { print "

There is no record of the " . - ($srcorbin eq 'binary' ? htmlsanit($package) . " package" - : htmlsanit($src) . " source package"). + ($srcorbin eq 'binary' ? html_escape($package) . " package" + : html_escape($src) . " source package"). ", and no bugs have been filed against it.

"; $showresult = 0; } @@ -478,7 +472,7 @@ my %archive_values = (both => 'archived and unarchived', while (my ($key,$value) = each %archive_values) { next if $key eq lc($param{archive}); push @archive_links, qq("; print " " . pkg_htmlselectsuite(1,2,1) . " for " . pkg_htmlselectarch(1,2,2) . "\n"; if (defined $pkg) { - my $v = htmlsanit($version) || ""; - my $pkgsane = htmlsanit($pkg); + my $v = html_escape($version) || ""; + my $pkgsane = html_escape($pkg); print ""; print " $pkgsane version \n"; } elsif (defined $src) { - my $v = htmlsanit($version) || ""; - my $srcsane = htmlsanit($src); + my $v = html_escape($version) || ""; + my $srcsane = html_escape($src); print ""; print " $srcsane version \n"; } print " \n"; -my $includetags = htmlsanit(join(" ", grep { !m/^subj:/i } map {split /[\s,]+/} ref($include)?@{$include}:$include)); -my $excludetags = htmlsanit(join(" ", grep { !m/^subj:/i } map {split /[\s,]+/} ref($exclude)?@{$exclude}:$exclude)); -my $includesubj = htmlsanit(join(" ", map { s/^subj://i; $_ } grep { m/^subj:/i } map {split /[\s,]+/} ref($include)?@{$include}:$include)); -my $excludesubj = htmlsanit(join(" ", map { s/^subj://i; $_ } grep { m/^subj:/i } map {split /[\s,]+/} ref($exclude)?@{$exclude}:$exclude)); +my $includetags = html_escape(join(" ", grep { !m/^subj:/i } map {split /[\s,]+/} ref($include)?@{$include}:$include)); +my $excludetags = html_escape(join(" ", grep { !m/^subj:/i } map {split /[\s,]+/} ref($exclude)?@{$exclude}:$exclude)); +my $includesubj = html_escape(join(" ", map { s/^subj://i; $_ } grep { m/^subj:/i } map {split /[\s,]+/} ref($include)?@{$include}:$include)); +my $excludesubj = html_escape(join(" ", map { s/^subj://i; $_ } grep { m/^subj:/i } map {split /[\s,]+/} ref($exclude)?@{$exclude}:$exclude)); my $vismindays = ($mindays == 0 ? "" : $mindays); my $vismaxdays = ($maxdays == -1 ? "" : $maxdays); -my $sel_rmy = ($repeatmerged ? " selected" : ""); -my $sel_rmn = ($repeatmerged ? "" : " selected"); +my $sel_rmy = ($param{repeatmerged} ? " selected" : ""); +my $sel_rmn = ($param{repeatmerged} ? "" : " selected"); my $sel_ordraw = ($ordering eq "raw" ? " selected" : ""); my $sel_ordold = ($ordering eq "oldview" ? " selected" : ""); my $sel_ordnor = ($ordering eq "normal" ? " selected" : ""); @@ -623,13 +617,13 @@ sub pkg_htmlindexentrystatus { my $showversions = ''; if (@{$status{found_versions}}) { my @found = @{$status{found_versions}}; - $showversions .= join ', ', map {s{/}{ }; htmlsanit($_)} @found; + $showversions .= join ', ', map {s{/}{ }; html_escape($_)} @found; } if (@{$status{fixed_versions}}) { $showversions .= '; ' if length $showversions; $showversions .= 'fixed: '; my @fixed = @{$status{fixed_versions}}; - $showversions .= join ', ', map {s{/}{ }; htmlsanit($_)} @fixed; + $showversions .= join ', ', map {s{/}{ }; html_escape($_)} @fixed; } $result .= ' (" if (length($status{tags})); @@ -656,7 +650,7 @@ sub pkg_htmlindexentrystatus { split(/ /,$status{blocks})); if (length($status{done})) { - $result .= "
Done: " . htmlsanit($status{done}); + $result .= "
Done: " . html_escape($status{done}); my $days = bug_archiveable(bug => $status{id}, status => \%status, days_until => 1, @@ -741,12 +735,19 @@ sub pkg_htmlizebugs { foreach my $bug (@bugs) { my %status = %{get_bug_status(bug=>$bug, (exists $param{dist}?(dist => $param{dist}):()), + usertags => \%bugusertags, + (exists $param{version}?(version => $param{version}):()), + (exists $param{arch}?(arch => $param{arch}):()), )}; next unless %status; - next if bugfilter($bug, %status); + next if bug_filter(bug => $bug, + status => \%status, + (exists $param{repeatmerged}?(repeat_merged => $param{repeatmerged}):()), + seen_merged => \%seenmerged, + ); my $html = sprintf "
  • #%d: %s\n
    ", - bugurl($bug), $bug, htmlsanit($status{subject}); + bug_url($bug), $bug, html_escape($status{subject}); $html .= pkg_htmlindexentrystatus(\%status) . "\n"; push @status, [ $bug, \%status, $html ]; } @@ -792,7 +793,7 @@ sub pkg_htmlizebugs { $title .= join("; ", grep {($_ || "") ne ""} map { $title[$_]->[$ttl[$_]] } 1..$#ttl); } - $title = htmlsanit($title); + $title = html_escape($title); my $count = $count{"_$order"}; my $bugs = $count == 1 ? "bug" : "bugs"; @@ -846,8 +847,8 @@ sub pkg_htmlpackagelinks { return 'Package' . (@pkglist > 1 ? 's' : '') . ': ' . join(', ', map { - '' . - $openstrong . htmlsanit($_) . $closestrong . '' + '' . + $openstrong . html_escape($_) . $closestrong . '' } @pkglist ); } @@ -976,7 +977,7 @@ sub pkg_htmlselectarch { } sub myurl { - return urlsanit(pkg_url(map {exists $param{$_}?($_,$param{$_}):()} + return html_escape(pkg_url(map {exists $param{$_}?($_,$param{$_}):()} qw(archive repeatmerged mindays maxdays), qw(version dist arch pkg src tag maint submitter) )