From 054ff0db8ee77fba9c61f38257be997b6d9ba7a3 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Fri, 12 Mar 2010 15:12:23 +0000 Subject: [PATCH] Fixed: inline code with less-then/greater-than produces @lt; and @gt; (#1416). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3567 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redcloth3.rb | 6 +++--- .../wiki_formatting/textile_formatter_test.rb | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/lib/redcloth3.rb b/lib/redcloth3.rb index 1e3d31ab1..2470fa5a9 100644 --- a/lib/redcloth3.rb +++ b/lib/redcloth3.rb @@ -613,7 +613,7 @@ class RedCloth3 < String text.gsub!( CODE_RE ) do |m| before,lang,code,after = $~[1..4] lang = " lang=\"#{ lang }\"" if lang - rip_offtags( "#{ before }#{ code }#{ after }" ) + rip_offtags( "#{ before }#{ code }#{ after }", false ) end end @@ -1054,7 +1054,7 @@ class RedCloth3 < String end end - def rip_offtags( text ) + def rip_offtags( text, escape_aftertag=true ) if text =~ /<.*>/ ## strip and encode
 content
             codepre, used_offtags = 0, {}
@@ -1068,7 +1068,7 @@ class RedCloth3 < String
                         @pre_list.last << line
                         line = ""
                     else
-                        htmlesc( aftertag, :NoQuotes ) if aftertag
+                        htmlesc( aftertag, :NoQuotes ) if aftertag && escape_aftertag
                         line = ""
                         $3.match(/<#{ OFFTAGS }([^>]*)>/)
                         tag = $1
diff --git a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb
index 8cb98ba51..66e588ffb 100644
--- a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb
+++ b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb
@@ -60,4 +60,23 @@ class Redmine::WikiFormatting::TextileFormatterTest < HelperTestCase
       end
     end
   end
+  
+  def test_inline_code
+    to_test = {
+      'this is @some code@'      => 'this is some code',
+      '@@'    => '<Location /redmine>',
+    }
+    to_test.each do |text, expected|
+      assert_equal "

#{expected}

", @formatter.new(text).to_html + end + end + + def test_escaping + to_test = { + 'this is a