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 | 82a9dd2a482f7e0b7bbce2b958aed56088f859f8 (patch) | |
tree | e8e2e4db64964fb5bf1fa9f5cfd882fb20cd20d0 /lib/rexml/source.rb | |
parent | abd0238793e1ca915ef20cf3eff6fb5992a08b0d (diff) | |
download | ruby-82a9dd2a482f7e0b7bbce2b958aed56088f859f8.tar.gz ruby-82a9dd2a482f7e0b7bbce2b958aed56088f859f8.tar.xz ruby-82a9dd2a482f7e0b7bbce2b958aed56088f859f8.zip |
@@ 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: http://svn.ruby-lang.org/repos/ruby/trunk@5696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rexml/source.rb')
-rw-r--r-- | lib/rexml/source.rb | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/lib/rexml/source.rb b/lib/rexml/source.rb index 2110e6db6..a524e483e 100644 --- a/lib/rexml/source.rb +++ b/lib/rexml/source.rb @@ -31,7 +31,6 @@ module REXML def initialize(arg) @orig = @buffer = arg self.encoding = check_encoding( @buffer ) - #@buffer = decode(@buffer) unless @encoding == UTF_8 @line = 0 end @@ -96,7 +95,7 @@ module REXML # @return true if the Source is exhausted def empty? - @buffer.nil? + @buffer == "" end # @return the current line in the source @@ -113,17 +112,14 @@ module REXML class IOSource < Source #attr_reader :block_size + # block_size has been deprecated def initialize(arg, block_size=500) @er_source = @source = arg @to_utf = false - # READLINE OPT - # The following was commented out when IOSource started using readline - # to pull the data from the stream. - #@block_size = block_size - #super @source.read(@block_size) - @line_break = '>' - #super @source.readline( "\n" ) - super @source.readline( @line_break )+@source.read + # FIXME + # This is broken. If the user puts in enough carriage returns, this can fail + # to calculate the correct encoding. + super @source.read( 100 ) @line_break = encode( '>' ) end |