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 %]