Index: lib/redmine/wiki_formatting/textile/redcloth3.rb =================================================================== --- lib/redmine/wiki_formatting/textile/redcloth3.rb (revision 17596) +++ lib/redmine/wiki_formatting/textile/redcloth3.rb (working copy) @@ -1034,7 +1034,7 @@ def flush_left( text ) indt = 0 if text =~ /^ / - while text !~ /^ {#{indt}}\S/ + while text !~ /^ {#{indt}}[^ ]/ indt += 1 end unless text.empty? if indt.nonzero? Index: test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb =================================================================== --- test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb (revision 17596) +++ test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb (working copy) @@ -599,6 +599,12 @@ assert_equal expected.gsub(%r{[\r\n\t]}, ''), to_html(text).gsub(%r{[\r\n\t]}, '') end + # TODO: Remove this test after migrating to RedCloth 4 + def test_should_not_crash_with_special_input + assert_nothing_raised { to_html(" \f") } + assert_nothing_raised { to_html(" \v") } + end + private def assert_html_output(to_test, expect_paragraph = true)