diff options
author | ser <ser@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-02-13 22:40:14 +0000 |
---|---|---|
committer | ser <ser@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-02-13 22:40:14 +0000 |
commit | 95be40a06d1227a0cd0a1cec4424ab33748d1450 (patch) | |
tree | e8e2e4db64964fb5bf1fa9f5cfd882fb20cd20d0 /lib/rexml/element.rb | |
parent | be3b9b1c5c61b73884bbbf4a22fff16f9b197eb9 (diff) | |
download | ruby-95be40a06d1227a0cd0a1cec4424ab33748d1450.tar.gz |
@@ Fix for the XPath descendant* result set ordering bug @@
@@ SAX2 listener bug fixes @@
@@ Undid a code change that caused a 10x speed regression @@
@@ Indentation fixes, and a new word wrapping feature for text nodes
was contributed by Devin Bayer (documentation forthcoming; see the
change logs for now) @@
The XPath bug fix is really ugly and inefficient, but I spent two days hacking
at it and this was the best I could come up with.
The SAX2 listener fixes had to do with crashes in certain conditions, like when
there was a carriage return at the end of a document
Several people submitted patches for the speed regression; it is embarrassing
how long it took me to get around to looking at this. To this day, I don't
know where the offending code came from.
Encoding fixes
Added a contributed word wrapping option for text formatting. Devin Bayer
contributed this. Here's his comment:
"Setting :wordwrapping to :all, wordwraps all text nodes longer than 60
characters.
Setting :indentstyle to aString, make aString used as indentation,
instead of the default ' '.
And as long as :respect_whitespace isn't set for the element,
multiline text nodes will be indented."
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rexml/element.rb')
-rw-r--r-- | lib/rexml/element.rb | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/rexml/element.rb b/lib/rexml/element.rb index ffaeddbf54..6a2d87f3f5 100644 --- a/lib/rexml/element.rb +++ b/lib/rexml/element.rb @@ -632,7 +632,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 +640,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 +661,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 |