summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2009-11-11 16:23:11 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2009-11-11 16:23:11 +0000
commit1d8b4ee778575ba884a440eb7efbe0aaf206b2bb (patch)
treeb8bfe7862f2804a7b82c1616c7e83eb88bce487d
parent22d12032e75d60bf6ce2668d98a8cff714ce2bc5 (diff)
downloadredmine-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.rb2
-rw-r--r--test/unit/helpers/application_helper_test.rb22
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>
+&lt;prepared-statement-cache-size&gt;32&lt;/prepared-statement-cache-size&gt;
+</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">