diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-11-11 16:23:11 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-11-11 16:23:11 +0000 |
commit | 1d8b4ee778575ba884a440eb7efbe0aaf206b2bb (patch) | |
tree | b8bfe7862f2804a7b82c1616c7e83eb88bce487d | |
parent | 22d12032e75d60bf6ce2668d98a8cff714ce2bc5 (diff) | |
download | redmine-1d8b4ee778575ba884a440eb7efbe0aaf206b2bb.tar.gz redmine-1d8b4ee778575ba884a440eb7efbe0aaf206b2bb.zip |
Fixed pre tags containing "<pre*" (#4125).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3030 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | lib/redcloth3.rb | 2 | ||||
-rw-r--r-- | test/unit/helpers/application_helper_test.rb | 22 |
2 files changed, 23 insertions, 1 deletions
diff --git a/lib/redcloth3.rb b/lib/redcloth3.rb index 3f79ed99b..0adf2076e 100644 --- a/lib/redcloth3.rb +++ b/lib/redcloth3.rb @@ -1016,7 +1016,7 @@ class RedCloth3 < String end OFFTAGS = /(code|pre|kbd|notextile)/ - OFFTAG_MATCH = /(?:(<\/#{ OFFTAGS }>)|(<#{ OFFTAGS }[^>]*>))(.*?)(?=<\/?#{ OFFTAGS }|\Z)/mi + OFFTAG_MATCH = /(?:(<\/#{ OFFTAGS }>)|(<#{ OFFTAGS }[^>]*>))(.*?)(?=<\/?#{ OFFTAGS }\W|\Z)/mi OFFTAG_OPEN = /<#{ OFFTAGS }/ OFFTAG_CLOSE = /<\/?#{ OFFTAGS }/ HASTAG_MATCH = /(<\/?\w[^\n]*?>)/m diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index 05742150b..f61f219ab 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -258,6 +258,28 @@ RAW to_test.each { |text, result| assert_equal result, textilizable(text) } end + def test_pre_tags + raw = <<-RAW +Before + +<pre> +<prepared-statement-cache-size>32</prepared-statement-cache-size> +</pre> + +After +RAW + + expected = <<-EXPECTED +<p>Before</p> +<pre> +<prepared-statement-cache-size>32</prepared-statement-cache-size> +</pre> +<p>After</p> +EXPECTED + + assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '') + end + def test_syntax_highlight raw = <<-RAW <pre><code class="ruby"> |