X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FCGI%2FBugreport.pm;h=2359837fa42620536c348157e0095d8f34e58dc3;hb=c31c947deb20a575dd2c7cc1fd292fd9e07b9646;hp=90cf5272e1d7f5d73f20a005ac57d46759b21eb7;hpb=efdbb44492afc3e987e75fc6b5ad8961a447d38c;p=debbugs.git diff --git a/Debbugs/CGI/Bugreport.pm b/Debbugs/CGI/Bugreport.pm index 90cf527..2359837 100644 --- a/Debbugs/CGI/Bugreport.pm +++ b/Debbugs/CGI/Bugreport.pm @@ -34,7 +34,8 @@ use IO::Scalar; use Params::Validate qw(validate_with :types); use Debbugs::MIME qw(convert_to_utf8 decode_rfc1522 create_mime_message); use Debbugs::CGI qw(:url :html :util); -use Debbugs::Common qw(globify_scalar); +use Debbugs::Common qw(globify_scalar english_join); +use Debbugs::Config qw(:config); use POSIX qw(strftime); BEGIN{ @@ -251,7 +252,13 @@ sub display_entity { $temp =~ s{(\d+)} {bug_links(bug=>$1)}ge; $temp;]gxie; - + if (defined $config{cve_tracker} and + length $config{cve_tracker} + ) { + # Add links to CVE vulnerabilities (closes #568464) + $body =~ s{(CVE-\d{4}-\d{4,})} + {$1}gx; + } if (not exists $param{att}) { print {$param{output}} qq(
$body
\n); } @@ -292,6 +299,7 @@ sub handle_email_message{ terse => $param{terse}, exists $param{msg}?(msg=>$param{msg}):(), exists $param{att}?(att=>$param{att}):(), + exists $param{trim_headers}?(trim_headers=>$param{trim_headers}):(), ); return $output; @@ -318,7 +326,7 @@ sub handle_record{ $output .= decode_rfc1522($record->{text}); # Link to forwarded http:// urls in the midst of the report # (even though these links already exist at the top) - $output =~ s,((?:ftp|http|https)://[\S~-]+?/?)([\)\'\:\.\,]?(?:\s|\.<|$)),$1$2,go; + $output =~ s,((?:ftp|http|https)://[\S~-]+?/?)((?:[\)\'\:\.\,]|\&\#39;)?(?:\s|\.<|$)),$1$2,go; # Add links to the cloned bugs $output =~ s{(Bug )(\d+)( cloned as bugs? )(\d+)(?:\-(\d+)|)}{$1.bug_links(bug=>$2).$3.bug_links(bug=>(defined $5)?[$4..$5]:$4)}eo; # Add links to merged bugs @@ -326,7 +334,11 @@ sub handle_record{ # Add links to blocked bugs $output =~ s{(?<=Blocking bugs)(?:( of )(\d+))?( (?:added|set to|removed):\s+)([\d\s\,]+)} {(defined $2?$1.bug_links(bug=>$2):'').$3. - join(' ',map {bug_links(bug=>$_)} (split /\,?\s+/, $4))}eo; + english_join([map {bug_links(bug=>$_)} (split /\,?\s+/, $4)])}eo; + $output =~ s{((?:[Aa]dded|[Rr]emoved)\ blocking\ bug(?:\(s\))?)(?:(\ of\ )(\d+))?(:?\s+) + (\d+(?:,\s+\d+)*(?:\,?\s+and\s+\d+)?)} + {$1.(defined $3?$2.bug_links(bug=>$3):'').$4. + english_join([map {bug_links(bug=>$_)} (split /\,?\s+(?:and\s+)?/, $5)])}xeo; # Add links to reassigned packages $output =~ s{(Bug reassigned from package \`)([^']+?)((?:'|\&\#39;) to \`)([^']+?)((?:'|\&\#39;))} {$1.q($2).$3.q($4).$5}eo;