summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--lib/rexml/formatters/pretty.rb2
-rw-r--r--test/rexml/test_core.rb61
3 files changed, 71 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index f1d81769de..de88271051 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Sat Jun 11 16:28:25 2011 Kouhei Sutou <kou@cozmixng.org>
+
+ * 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:11:36 2011 Kouhei Sutou <kou@cozmixng.org>
* test/rexml/test_core.rb
diff --git a/lib/rexml/formatters/pretty.rb b/lib/rexml/formatters/pretty.rb
index 1747397700..63f726e8c3 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 bcc72695e4..e530cc16c6 100644
--- a/test/rexml/test_core.rb
+++ b/test/rexml/test_core.rb
@@ -1153,6 +1153,67 @@ EOL
output)
end
+ def test_pretty_format_deep_indent
+ n = 6
+ elements = ""
+ n.times do |i|
+ elements << "<element#{i}>"
+ elements << "element#{i} " * 5
+ end
+ (n - 1).downto(0) do |i|
+ elements << "</element#{i}>"
+ end
+ xml = "<doc>#{elements}</doc>"
+ document = REXML::Document.new(xml)
+ formatter = REXML::Formatters::Pretty.new
+ formatter.width = 20
+ output = ""
+ formatter.write(document, output)
+ assert_equal(<<-XML.strip, output)
+<doc>
+ <element0>
+ element0
+ element0
+ element0
+ element0
+ element0
+ <element1>
+ element1
+ element1
+ element1
+ element1
+ element1
+ <element2>
+ element2
+ element2
+ element2
+ element2
+ element2
+ <element3>
+ element3
+ element3
+ element3
+ element3
+ element3
+ <element4>
+ element4
+ element4
+ element4
+ element4
+ element4
+
+ <element5>
+ element5 element5 element5 element5 element5
+ </element5>
+ </element4>
+ </element3>
+ </element2>
+ </element1>
+ </element0>
+</doc>
+ XML
+ end
+
def test_ticket_58
doc = REXML::Document.new
doc << REXML::XMLDecl.default