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 () | |
tree | e8e2e4db64964fb5bf1fa9f5cfd882fb20cd20d0 /lib/rexml/parsers/sax2parser.rb | |
parent | be3b9b1c5c61b73884bbbf4a22fff16f9b197eb9 (diff) |
@@ 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 es 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
-rw-r--r-- | lib/rexml/parsers/sax2parser.rb | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -45,7 +45,7 @@ module REXML if args.size == 2 args[1].each { |match| @procs << [args[0], match, blok] } else - add( [args[0], /.*/, blok] ) end elsif args[0].kind_of? Array if args.size == 2 @@ -54,7 +54,7 @@ module REXML args[0].each { |match| add( [ :start_element, match, blok ] ) } end else - add([nil, /.*/, args[0]]) end end @@ -164,9 +164,10 @@ module REXML def get_procs( symbol, name ) return nil if @procs.size == 0 @procs.find_all do |sym, match, block| ( (sym.nil? or symbol == sym) and - (name.nil? or ( (name == match) or (match.kind_of? Regexp and name =~ match) ) @@ -179,7 +180,7 @@ module REXML @listeners.find_all do |sym, match, block| ( (sym.nil? or symbol == sym) and - (name.nil? or ( (name == match) or (match.kind_of? Regexp and name =~ match) ) |