From: Jean-Philippe Lang Date: Sun, 17 Jun 2012 08:54:12 +0000 (+0000) Subject: Merged r9822 from trunk. X-Git-Tag: 1.4.4~10 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=8cd0baf773d3e4306eaa71ee99fa6dc66581fe33;p=redmine.git Merged r9822 from trunk. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.4-stable@9842 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/doc/CHANGELOG b/doc/CHANGELOG index 516bd7159..091db352a 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -8,6 +8,7 @@ http://www.redmine.org/ * Defect #11061: Cannot choose commit versions to view differences in Git/Mercurial repository view * Defect #11112: REST API - custom fields in POST/PUT ignored for time_entries +* Defect #11133: Wiki-page section edit link can point to incorrect section * Feature #6597: Configurable session lifetime and timeout * Patch #11113: Small glitch in German localization diff --git a/lib/redmine/wiki_formatting/textile/formatter.rb b/lib/redmine/wiki_formatting/textile/formatter.rb index 5f0c1cb3e..47b5a0a34 100644 --- a/lib/redmine/wiki_formatting/textile/formatter.rb +++ b/lib/redmine/wiki_formatting/textile/formatter.rb @@ -69,7 +69,7 @@ module Redmine l = 1 started = false ended = false - text.scan(/(((?:.*?)(\A|\r?\n\r?\n))(h(\d+)(#{A}#{C})\.(?::(\S+))? (.*?)$)|.*)/m).each do |all, content, lf, heading, level| + text.scan(/(((?:.*?)(\A|\r?\n\s*\r?\n))(h(\d+)(#{A}#{C})\.(?::(\S+))? (.*?)$)|.*)/m).each do |all, content, lf, heading, level| if heading.nil? if ended after << all 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 548a378b5..3f0b0834b 100644 --- a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb @@ -394,6 +394,31 @@ Nulla nunc nisi, egestas in ornare vel, posuere ac libero."] @formatter.new(text).update_section(3, replacement) end + def test_get_section_should_support_lines_with_spaces_before_heading + # the lines after Content 2 and Heading 4 contain a space + text = <<-STR +h1. Heading 1 + +Content 1 + +h1. Heading 2 + +Content 2 + +h1. Heading 3 + +Content 3 + +h1. Heading 4 + +Content 4 +STR + + [1, 2, 3, 4].each do |index| + assert_match /\Ah1. Heading #{index}.+Content #{index}/m, @formatter.new(text).get_section(index).first + end + end + private def assert_html_output(to_test, expect_paragraph = true)