aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rexml/parsers/baseparser.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rexml/parsers/baseparser.rb')
-rw-r--r--lib/rexml/parsers/baseparser.rb17
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/rexml/parsers/baseparser.rb b/lib/rexml/parsers/baseparser.rb
index 057617d6e8..025d43db54 100644
--- a/lib/rexml/parsers/baseparser.rb
+++ b/lib/rexml/parsers/baseparser.rb
@@ -122,14 +122,14 @@ module REXML
# Returns true if there are no more events
def empty?
- !has_next?
+ #puts "@source.empty? = #{@source.empty?}"
+ #puts "@stack.empty? = #{@stack.empty?}"
+ return (@source.empty? and @stack.empty?)
end
# Returns true if there are more events. Synonymous with !empty?
def has_next?
- return true if @closed
- @source.read if @source.buffer.size==0 and !@source.empty?
- (!@source.empty? and @source.buffer.strip.size>0) or @stack.size>0 or @closed
+ return !(@source.empty? and @stack.empty?)
end
# Push an event back on the head of the stream. This method
@@ -329,9 +329,12 @@ module REXML
end
else
md = @source.match( TEXT_PATTERN, true )
- #md = @source.match_to_consume( '<', TEXT_PATTERN )
- #@source.read
- raise REXML::ParseException("no text to add") if md[0].length == 0
+ if md[0].length == 0
+ #puts "EMPTY = #{empty?}"
+ #puts "BUFFER = \"#{@source.buffer}\""
+ @source.match( /(\s+)/, true )
+ end
+ #return [ :text, "" ] if md[0].length == 0
# unnormalized = Text::unnormalize( md[1], self )
# return PullEvent.new( :text, md[1], unnormalized )
return [ :text, md[1] ]