From: bbaetz%student.usyd.edu.au <> Date: Fri, 19 Jul 2002 21:04:08 +0000 (+0000) Subject: Bug 157074 - verify-new-product doubles comment linefeeds on Win32 X-Git-Tag: bugzilla-2.16~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb63d08d766472ef3a168a30caa9a45764a2d104;p=thirdparty%2Fbugzilla.git Bug 157074 - verify-new-product doubles comment linefeeds on Win32 r=myk, jouni --- diff --git a/checksetup.pl b/checksetup.pl index f382757542..8c5b7ea1ff 100755 --- a/checksetup.pl +++ b/checksetup.pl @@ -891,6 +891,7 @@ END strike => sub { return $_; } , js => sub { return $_; }, html => sub { return $_; }, + html_linebreak => sub { return $_; }, url_quote => sub { return $_; }, }, }) || die ("Could not create Template: " . Template->error() . "\n"); diff --git a/globals.pl b/globals.pl index aeaaca25f6..115efcc645 100644 --- a/globals.pl +++ b/globals.pl @@ -1563,6 +1563,20 @@ $::template ||= Template->new( html => \&html_quote , + # HTML collapses newlines in element attributes to a single space, + # so form elements which may have whitespace (ie comments) need + # to be encoded using + # See bugs 4928, 22983 and 32000 for more details + html_linebreak => sub + { + my ($var) = @_; + $var =~ s/\r\n/\ /g; + $var =~ s/\n\r/\ /g; + $var =~ s/\r/\ /g; + $var =~ s/\n/\ /g; + return $var; + } , + # This subroutine in CGI.pl escapes characters in a variable # or value string for use in a query string. It escapes all # characters NOT in the regex set: [a-zA-Z0-9_\-.]. The 'uri' diff --git a/process_bug.cgi b/process_bug.cgi index 103085457f..5482a1ad23 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -882,9 +882,6 @@ foreach my $id (@idlist) { $vars->{'start_at'} = $::FORM{'longdesclength'}; $vars->{'comments'} = GetComments($id); - - $::FORM{'comment'} =~ s/\r\n/\n/g; # Get rid of windows-style line endings. - $::FORM{'comment'} =~ s/\r/\n/g; # Get rid of mac-style line endings. $::FORM{'delta_ts'} = $delta_ts; $vars->{'form'} = \%::FORM; diff --git a/t/004template.t b/t/004template.t index ba50c1e66c..730aafc862 100644 --- a/t/004template.t +++ b/t/004template.t @@ -77,6 +77,7 @@ my $template = Template->new( # See globals.pl for the actual codebase definitions. FILTERS => { + html_linebreak => sub { return $_; }, js => sub { return $_ } , strike => sub { return $_ } , url_quote => sub { return $_ } , diff --git a/template/en/default/global/hidden-fields.html.tmpl b/template/en/default/global/hidden-fields.html.tmpl index 76040bea1b..25c6b048f5 100644 --- a/template/en/default/global/hidden-fields.html.tmpl +++ b/template/en/default/global/hidden-fields.html.tmpl @@ -28,5 +28,6 @@ [%# Generate hidden form fields for non-excluded fields. %] [% FOREACH field = form %] [% NEXT IF exclude && field.key.search(exclude) %] - + [% END %]