From b4036b9f44f7100d3bf597841a8b8105eb1a419a Mon Sep 17 00:00:00 2001 From: aredridel Date: Fri, 1 Apr 2005 08:59:38 +0000 Subject: [PATCH 1/1] - added Changed files: amrita-xml-fubar.patch -> 1.1 --- amrita-xml-fubar.patch | 83 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 amrita-xml-fubar.patch diff --git a/amrita-xml-fubar.patch b/amrita-xml-fubar.patch new file mode 100644 index 0000000..0bd7769 --- /dev/null +++ b/amrita-xml-fubar.patch @@ -0,0 +1,83 @@ +diff -ur o-amrita-1.0.2/lib/amrita/xml.rb amrita-1.0.2/lib/amrita/xml.rb +--- o-amrita-1.0.2/lib/amrita/xml.rb 2005-04-01 00:58:59.718350000 -0700 ++++ amrita-1.0.2/lib/amrita/xml.rb 2005-04-01 01:57:46.057114611 -0700 +@@ -3,13 +3,16 @@ + require "rexml/streamlistener" + + module Amrita ++ + has_uconv = true ++ + begin + require 'uconv' + rescue LoadError + has_uconv = false + end +- if has_uconv ++ ++ if has_uconv + case $KCODE + when "EUC" + def convert(s) +@@ -34,12 +37,12 @@ + include Amrita + include REXML::StreamListener + +- +- def initialize ++ def initialize(&block) + @stack = [ Null ] ++ @block = block + end + +- def push(element) ++ def push(element) + @stack.unshift element + end + +@@ -57,10 +60,11 @@ + end + + def tag_start(name, attrs) +- a = attrs.collect do |key, val| ++ a = attrs.collect { |key, val| + Attr.new(key, convert(val)) +- end +- push e(name, *a) ++ } ++ t = @block.call(e(name, *a)) ++ push t + push Null + end + +@@ -83,23 +87,25 @@ + end + + def doctype(name, pub_sys, long_name, uri) +- s = SpecialElement.new('!', +- %Q[DOCTYPE #{name} #{pub_sys} #{long_name} #{uri}]) ++ s = SpecialElement.new('!', %Q[DOCTYPE #{name} #{pub_sys} #{long_name} #{uri}]) + push(pop + s) + end + end + + module XMLParser + def XMLParser.parse_text(text, fname="", lno=0, dummy=nil, &block) +- l = Listener.new(&block) ++ l = Listener.new(&block) + REXML::Document.parse_stream(text, l) + l.result + end + + def XMLParser.parse_file(fname, dummy=nil, &block) +- l = Listener.new(&block) +- REXML::Document.parse_stream(File.new(fname), l) ++ l = Listener.new(&block) ++ open(fname) { |fh| ++ REXML::Document.parse_stream(fh, l) ++ } + l.result + end + end ++ + end -- 2.44.0