X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=cgi%2Fbugreport.cgi;h=9969abbef09614263ed58c1aed6290dd9653b894;hb=79de51023611557f8da946e48b91c4078d63393b;hp=5cd3d060d0741c24e1e0c05ea34474af75545e86;hpb=54be6c024cb57d9d537d3b06475a84b4b5929898;p=debbugs.git diff --git a/cgi/bugreport.cgi b/cgi/bugreport.cgi index 5cd3d06..9969abb 100755 --- a/cgi/bugreport.cgi +++ b/cgi/bugreport.cgi @@ -34,9 +34,12 @@ BEGIN { # if the first directory in @INC is not an absolute directory, assume that # someone has overridden us via -I. if ($INC[0] !~ /^\//) { + undef $debbugs_dir; + } + if (defined $debbugs_dir) { + unshift @INC, $debbugs_dir.'/lib/'; } } -use if defined $debbugs_dir, lib => $debbugs_dir; use Debbugs::Config qw(:globals :text :config); @@ -58,13 +61,15 @@ use URI::Escape qw(uri_escape_utf8); use List::AllUtils qw(max); my $s; +my @schema_arg = (); if (defined $config{database}) { $s = Debbugs::DB->connect($config{database}) or - die "Unable to connect to database"; + die "Unable to connect to DB"; + @schema_arg = ('schema',$s); } use CGI::Simple; -my $q = new CGI::Simple; +my $q = CGI::Simple->new(); # STDOUT should be using the utf8 io layer binmode(STDOUT,':raw:encoding(UTF-8)'); @@ -324,7 +329,11 @@ END print map { s/^(>*From )/>$1/; $_."\n" } @lines[ 1 .. $#lines ]; if ($record->{inner_file}) { my $fh = $record->{fh}; - print $_ while (<$fh>); + local $/; + while (<$fh>) { + s/^(>*From )/>$1/gm; + print $_; + } } } exit 0; @@ -383,83 +392,6 @@ unless (%status) { my @packages = make_list($status{package}); -my %packages_affects; -for my $p_a (qw(package affects)) { - foreach my $pkg (make_list($status{$p_a})) { - if ($pkg =~ /^src\:/) { - my ($srcpkg) = $pkg =~ /^src:(.*)/; - $packages_affects{$p_a}{$pkg} = - {maintainer => exists($maintainer{$srcpkg}) ? $maintainer{$srcpkg} : '(unknown)', - source => $srcpkg, - package => $pkg, - is_source => 1, - }; - } - else { - $packages_affects{$p_a}{$pkg} = - {maintainer => exists($maintainer{$pkg}) ? $maintainer{$pkg} : '(unknown)', - exists($pkgsrc{$pkg}) ? (source => $pkgsrc{$pkg}) : (), - package => $pkg, - }; - } - } -} - -# fixup various bits of the status -$status{tags_array} = [sort(make_list($status{tags}))]; -$status{date_text} = strftime('%a, %e %b %Y %T UTC', gmtime($status{date})); -$status{mergedwith_array} = [make_list($status{mergedwith})]; - - -my $version_graph = ''; -if (@{$status{found_versions}} or @{$status{fixed_versions}}) { - $version_graph = q(version graph}; -} - - - -my @blockedby= make_list($status{blockedby}); -$status{blockedby_array} = []; -if (@blockedby && $status{"pending"} ne 'fixed' && ! length($status{done})) { - for my $b (@blockedby) { - my %s = %{get_bug_status($b)}; - next if (defined $s{pending} and - $s{"pending"} eq 'fixed') or - length $s{done}; - push @{$status{blockedby_array}},{bug_num => $b, subject => $s{subject}, status => \%s}; - } -} - -my @blocks= make_list($status{blocks}); -$status{blocks_array} = []; -if (@blocks && $status{"pending"} ne 'fixed' && ! length($status{done})) { - for my $b (@blocks) { - my %s = %{get_bug_status($b)}; - next if $s{"pending"} eq 'fixed' || length $s{done}; - push @{$status{blocks_array}}, {bug_num => $b, subject => $s{subject}, status => \%s}; - } -} - -if ($buglog !~ m#^\Q$gSpoolDir/db#) { - $status{archived} = 1; -} - -my $descriptivehead = $indexentry; - print $q->header(-type => "text/html", -charset => 'utf-8', -cache_control => 'public, max-age=300', @@ -468,12 +400,7 @@ print $q->header(-type => "text/html", print fill_in_template(template => 'cgi/bugreport', variables => {bug => $bug, - status => \%status, - package => $packages_affects{'package'}, - affects => $packages_affects{'affects'}, log => $log, - bug_num => $ref, - version_graph => $version_graph, msg => $msg, isstrongseverity => \&Debbugs::Status::isstrongseverity, html_escape => \&Debbugs::CGI::html_escape,