Bug 157074 - verify-new-product doubles comment linefeeds on Win32

r=myk, jouni
parent 42c44b90
...@@ -892,6 +892,7 @@ END ...@@ -892,6 +892,7 @@ END
strike => sub { return $_; } , strike => sub { return $_; } ,
js => sub { return $_; }, js => sub { return $_; },
html => sub { return $_; }, html => sub { return $_; },
html_linebreak => sub { return $_; },
url_quote => sub { return $_; }, url_quote => sub { return $_; },
}, },
}) || die ("Could not create Template: " . Template->error() . "\n"); }) || die ("Could not create Template: " . Template->error() . "\n");
......
...@@ -1561,6 +1561,20 @@ $::template ||= Template->new( ...@@ -1561,6 +1561,20 @@ $::template ||= Template->new(
html => \&html_quote , 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 # This subroutine in CGI.pl escapes characters in a variable
# or value string for use in a query string. It escapes all # or value string for use in a query string. It escapes all
# characters NOT in the regex set: [a-zA-Z0-9_\-.]. The 'uri' # characters NOT in the regex set: [a-zA-Z0-9_\-.]. The 'uri'
......
...@@ -960,9 +960,6 @@ foreach my $id (@idlist) { ...@@ -960,9 +960,6 @@ foreach my $id (@idlist) {
$vars->{'start_at'} = $::FORM{'longdesclength'}; $vars->{'start_at'} = $::FORM{'longdesclength'};
$vars->{'comments'} = GetComments($id); $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; $::FORM{'delta_ts'} = $delta_ts;
$vars->{'form'} = \%::FORM; $vars->{'form'} = \%::FORM;
......
...@@ -77,6 +77,7 @@ my $template = Template->new( ...@@ -77,6 +77,7 @@ my $template = Template->new(
# See globals.pl for the actual codebase definitions. # See globals.pl for the actual codebase definitions.
FILTERS => FILTERS =>
{ {
html_linebreak => sub { return $_; },
js => sub { return $_ } , js => sub { return $_ } ,
strike => sub { return $_ } , strike => sub { return $_ } ,
url_quote => sub { return $_ } , url_quote => sub { return $_ } ,
......
...@@ -28,5 +28,6 @@ ...@@ -28,5 +28,6 @@
[%# Generate hidden form fields for non-excluded fields. %] [%# Generate hidden form fields for non-excluded fields. %]
[% FOREACH field = form %] [% FOREACH field = form %]
[% NEXT IF exclude && field.key.search(exclude) %] [% NEXT IF exclude && field.key.search(exclude) %]
<input type="hidden" name="[% field.key %]" value="[% field.value FILTER html %]"> <input type="hidden" name="[% field.key %]"
value="[% field.value | html | html_newline %]">
[% END %] [% END %]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment