summaryrefslogtreecommitdiff
path: root/lib/rexml/element.rb
diff options
context:
space:
mode:
authorser <ser@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-02 03:26:19 +0000
committerser <ser@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-04-02 03:26:19 +0000
commit7a07ba45a001475b257734cd1f46166c73f5519c (patch)
treeb9d253eea1aa685030ce0fabc203bc2076191ed4 /lib/rexml/element.rb
parent354d68f80b1e92f58c13004e13dec48b179d2b4d (diff)
REXML changes backported from the 1.9 branch:
* Minor source documentation changes * Changes to the pretty-printing code, including the addition of the word- wrap submission. * Bug fix for missing quotations in NOTATION DTD items * Bug fixes and improvements to whitespace handling in text nodes * Refactoring and bug fixes in encoding support * Minor speed optimizations in the core parser * Bug fixes in the SAX2 parserthe core parser * Copyright fixes * Version bump to REXML 3.0.0 * A change that caused speed degredation has been reversed * Addition of a value=() method in Text, for replacing the contents of a text node * Fixed the document order of the descendant-or-self axis in XPath git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rexml/element.rb')
-rw-r--r--lib/rexml/element.rb17
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/rexml/element.rb b/lib/rexml/element.rb
index ffaeddbf54..b61d811141 100644
--- a/lib/rexml/element.rb
+++ b/lib/rexml/element.rb
@@ -98,8 +98,9 @@ module REXML
# is the case if:
# 1. Neither :+respect_whitespace+ nor :+compress_whitespace+ has any value
# 2. The context has :+respect_whitespace+ set to :+all+ or
- # an array containing the name of this element, and :+compress_whitespace+
- # isn't set to :+all+ or an array containing the name of this element.
+ # an array containing the name of this element, and
+ # :+compress_whitespace+ isn't set to :+all+ or an array containing the
+ # name of this element.
# The evaluation is tested against +expanded_name+, and so is namespace
# sensitive.
def whitespace
@@ -606,7 +607,9 @@ module REXML
# indentation will be this number of spaces, and children will be
# indented an additional amount. Defaults to -1
# transitive::
- # What the heck does this do? Defaults to false
+ # If transitive is true and indent is >= 0, then the output will be
+ # pretty-printed in such a way that the added whitespace does not affect
+ # the parse tree of the document
# ie_hack::
# Internet Explorer is the worst piece of crap to have ever been
# written, with the possible exception of Windows itself. Since IE is
@@ -632,7 +635,7 @@ module REXML
else
if transitive and indent>-1 and !@children[0].kind_of? Text
writer << "\n"
- indent writer, indent+2
+ indent writer, indent+1
end
writer << ">"
write_children( writer, indent, transitive, ie_hack )
@@ -640,7 +643,7 @@ module REXML
end
if transitive and indent>-1
writer << "\n"
- indent -= 2 if next_sibling.nil?
+ indent -= 1 if next_sibling.nil?
indent(writer, indent)
end
writer << ">"
@@ -661,12 +664,10 @@ module REXML
# A private helper method
def write_children( writer, indent, transitive, ie_hack )
cr = (indent < 0) ? '' : "\n"
- #if size == 1 and @children[0].kind_of?(Text)
- # self[0].write( writer, -1 )
if indent == -1
each { |child| child.write( writer, indent, transitive, ie_hack ) }
else
- next_indent = indent+2
+ next_indent = indent+1
last_child=nil
each { |child|
unless child.kind_of? Text or last_child.kind_of? Text or transitive