From f4b2c1a0d3ea597fcaa8dd5a4fd7a2875a7241d3 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Sun, 3 Feb 2019 22:34:08 +0000 Subject: [PATCH] Line height is too large when previewing files with syntax highlighting if the line terminators are CRLF (#30434). Patch by Yuichi HARADA. git-svn-id: http://svn.redmine.org/redmine/trunk@17847 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/syntax_highlighting.rb | 7 +++++++ test/helpers/application_helper_test.rb | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/lib/redmine/syntax_highlighting.rb b/lib/redmine/syntax_highlighting.rb index e2d47f277..53ae4b5ff 100644 --- a/lib/redmine/syntax_highlighting.rb +++ b/lib/redmine/syntax_highlighting.rb @@ -76,6 +76,13 @@ module Redmine # Highlights +text+ as the content of +filename+ # Should not return line numbers nor outer pre tag def highlight_by_filename(text, filename) + # TODO: Delete the following workaround for #30434 and + # test_syntax_highlight_should_normalize_line_endings in + # application_helper_test.rb when Rouge is improved to + # handle CRLF properly. + # See also: https://github.com/jneen/rouge/pull/1078 + text = text.gsub(/\r\n?/, "\n") + lexer =::Rouge::Lexer.guess_by_filename(filename) formatter = ::Rouge::Formatters::HTML.new ::Rouge.highlight(text, lexer, CustomHTMLLinewise.new(formatter)) diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb index 5561e2f40..48304af25 100644 --- a/test/helpers/application_helper_test.rb +++ b/test/helpers/application_helper_test.rb @@ -1123,6 +1123,10 @@ EXPECTED end end + def test_syntax_highlight_should_normalize_line_endings + assert_equal "line 1\nline 2\n", syntax_highlight("test.txt", "line 1\rline 2\r\n") + end + def test_to_path_param assert_equal 'test1/test2', to_path_param('test1/test2') assert_equal 'test1/test2', to_path_param('/test1/test2/') -- 2.39.5