diff --git a/lib/redmine/syntax_highlighting.rb b/lib/redmine/syntax_highlighting.rb index e2d47f277..d004b1cdb 100644 --- a/lib/redmine/syntax_highlighting.rb +++ b/lib/redmine/syntax_highlighting.rb @@ -76,6 +76,7 @@ module Redmine # Highlights +text+ as the content of +filename+ # Should not return line numbers nor outer pre tag def highlight_by_filename(text, filename) + 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/')