From 7a07ba45a001475b257734cd1f46166c73f5519c Mon Sep 17 00:00:00 2001 From: ser Date: Fri, 2 Apr 2004 03:26:19 +0000 Subject: 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 --- lib/rexml/element.rb | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'lib/rexml/element.rb') 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 -- cgit v1.2.3