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
-rw-r--r--version.h2
4 files changed, 72 insertions, 2 deletions
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 <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:04:03 2011 Kouhei Sutou <kou@cozmixng.org>
* 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 << "<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
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