From af8434f5f729a541cf8c50dfcb7d96a413facd2b Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 24 Feb 2020 07:33:26 +0000 Subject: hval: ascii_html: drop CRLF => LF conversion Instead, we add CRLF conversion to the only remaining place which needs it, ViewVCS. This save many redundant ops in in many places. The only other place where this mattered was in View::add_text_body, but we already started doing CRLF conversions when we added diff parsing and link generation for ViewVCS. Otherwise, all other places we used this was for header viewing and Email::MIME doesn't preserve CRLF in headers. --- t/plack.t | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 't') diff --git a/t/plack.t b/t/plack.t index fe767aed..ea318792 100644 --- a/t/plack.t +++ b/t/plack.t @@ -109,6 +109,23 @@ EOF like($mime->body_raw, qr/hi =3D bye=/, 'our test used QP correctly'); $im->add($mime); + my $crlf = < +To: $addr +Message-Id: +Subject: carriage + return + in + long + subject +Date: Fri, 02 Oct 1993 00:00:00 +0000 + +:( +EOF + $crlf =~ s/\n/\r\n/sg; + $im->add(Email::MIME->new($crlf)); + $im->done; } @@ -120,6 +137,16 @@ test_psgi($app, sub { } }); +test_psgi($app, sub { + my ($cb) = @_; + my $res = $cb->(GET('http://example.com/test/crlf@example.com/')); + is($res->code, 200, 'retrieved CRLF as HTML'); + unlike($res->content, qr/\r/, 'no CR in HTML'); + $res = $cb->(GET('http://example.com/test/crlf@example.com/raw')); + is($res->code, 200, 'retrieved CRLF raw'); + like($res->content, qr/\r/, 'CR preserved in raw message'); +}); + # redirect with newsgroup test_psgi($app, sub { my ($cb) = @_; -- cgit v1.2.3-24-ge0c7