diff --git a/ChangeLog b/ChangeLog index fca3bd3027..51543e9a29 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Sat Jun 11 16:28:25 2011 Kouhei Sutou + + * lib/rexml/formatters/pretty.rb + (REXML::Formatters::Pretty#write_text), + test/rexml/test_core.rb + (Tester#test_pretty_format_long_text_finite): don't ignore + 'width' parameter in pretty formatter. fixes #4498 + Reported by Michael Frasca. Thanks!!! + Sat Jun 11 16:04:03 2011 Kouhei Sutou * lib/rexml/parsers/xpathparser.rb diff --git a/lib/rexml/formatters/pretty.rb b/lib/rexml/formatters/pretty.rb index 17d217d1dc..dc4e8026b0 100644 --- a/lib/rexml/formatters/pretty.rb +++ b/lib/rexml/formatters/pretty.rb @@ -88,7 +88,7 @@ module REXML s = node.to_s() s.gsub!(/\s/,' ') s.squeeze!(" ") - s = wrap(s, 80-@level) + s = wrap(s, @width - @level) s = indent_text(s, @level, " ", true) output << (' '*@level + s) end diff --git a/test/rexml/test_core.rb b/test/rexml/test_core.rb index 204be0fdff..b1f6332968 100644 --- a/test/rexml/test_core.rb +++ b/test/rexml/test_core.rb @@ -1151,6 +1151,67 @@ EOL end + def test_pretty_format_deep_indent + n = 6 + elements = "" + n.times do |i| + elements << "" + elements << "element#{i} " * 5 + end + (n - 1).downto(0) do |i| + elements << "" + end + xml = "#{elements}" + document = REXML::Document.new(xml) + formatter = REXML::Formatters::Pretty.new + formatter.width = 20 + output = "" + formatter.write(document, output) + assert_equal(<<-XML.strip, output) + + + element0 + element0 + element0 + element0 + element0 + + element1 + element1 + element1 + element1 + element1 + + element2 + element2 + element2 + element2 + element2 + + element3 + element3 + element3 + element3 + element3 + + element4 + element4 + element4 + element4 + element4 + + + element5 element5 element5 element5 element5 + + + + + + + + XML + end + def test_ticket_58 doc = REXML::Document.new doc << REXML::XMLDecl.default diff --git a/version.h b/version.h index 86d2a215c1..79e005eebf 100644 --- a/version.h +++ b/version.h @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.2" -#define RUBY_PATCHLEVEL 278 +#define RUBY_PATCHLEVEL 279 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1