diff -ur rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/ftools.lib.rb rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/ftools.lib.rb --- rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/ftools.lib.rb 2004-08-21 10:56:03.000000000 +0200 +++ rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/ftools.lib.rb 2004-09-03 12:26:26.000000000 +0200 @@ -58,6 +58,8 @@ entry.gsub!(/[\/\\]*$/, "") unless entry.nil? + mask = /^#{mask}$/i if mask.kind_of?(String) + res = [] if File.directory?(entry) @@ -65,11 +67,19 @@ res += ["%s/" % entry] if mask.nil? or entry =~ mask - Dir.chdir(entry) - Dir.new(".").each do |e| - res += Dir.find(e, mask).collect{|e| entry+"/"+e} unless [".", ".."].include?(e) + begin + Dir.chdir(entry) + + begin + Dir.new(".").each do |e| + res += Dir.find(e, mask).collect{|e| entry+"/"+e} unless [".", ".."].include?(e) + end + ensure + Dir.chdir(pdir) end - Dir.chdir(pdir) + rescue Errno::EACCES => error + puts error + end else res += [entry] if mask.nil? or entry =~ mask end diff -ur rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/net.lib.rb rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/net.lib.rb --- rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/net.lib.rb 2004-08-21 10:56:03.000000000 +0200 +++ rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/net.lib.rb 2004-09-03 12:26:26.000000000 +0200 @@ -28,7 +28,7 @@ class TCPServer def self.freeport(from, to, remote=false) - if windows? + if windows? or cygwin? TCPServer.freeport_windows(from, to, remote) else TCPServer.freeport_linux(from, to, remote) @@ -343,8 +343,8 @@ uri = EVURI.new(uri) if uri.kind_of? String host = uri.host port = uri.port - io = nil + io = nil @@mutex.synchronize do @@hosts[host] = IPSocket.getaddress(host) if not @@hosts.include?(host) io = TCPSocket.new(@@hosts[host], port.zero? ? 80 : port) @@ -352,42 +352,33 @@ if post.empty? io.write "GET %s%s HTTP/1.0\r\n" % [(uri.path or ´/´), (uri.varstring.empty? ? ´´ : ´?´ + uri.varstring)] - io.write "Host: %s\r\n" % host - io.write "\r\n" else io.write "POST %s%s HTTP/1.0\r\n" % [(uri.path or ´/´), (uri.varstring.empty? ? ´´ : ´?´ + uri.varstring)] - io.write "Host: %s\r\n" % host - io.write "Content-Type: application/x-www-form-urlencoded\r\n" - io.write "Content-Length: %s\r\n" % post.length - io.write "Pragma: \r\n" - io.write "\r\n" - io.write post end else proxy = EVURI.new($proxy) host = proxy.host port = proxy.port - io = nil io = TCPSocket.new(host, port.zero? ? 8080 : port) if post.empty? io.write "GET %s HTTP/1.0\r\n" % uri - io.write "Host: %s\r\n" % host - io.write "Proxy-Authorization: Basic %s\r\n" % $proxy_auth unless $proxy_auth.nil? - io.write "\r\n" else io.write "POST %s HTTP/1.0\r\n" % uri - io.write "Host: %s\r\n" % host - io.write "Proxy-Authorization: Basic %s\r\n" % $proxy_auth unless $proxy_auth.nil? - io.write "Content-Type: application/x-www-form-urlencoded\r\n" - io.write "Content-Length: %s\r\n" % post.length - io.write "Pragma: \r\n" - io.write "\r\n" - io.write post end end + io.write "Host: %s\r\n" % host + io.write "User-Agent: evwget\r\n" + io.write "Proxy-Authorization: Basic %s\r\n" % $proxy_auth unless $proxy_auth.nil? + #io.write "Accept-Encoding: deflate\r\n" + #io.write "Connection: close\r\n" + io.write "Content-Type: application/x-www-form-urlencoded\r\n" unless post.empty? + io.write "Content-Length: %s\r\n" % post.length unless post.empty? + io.write "\r\n" + io.write post unless post.empty? + io.close_write res = io.read @@ -545,9 +536,17 @@ @peeraddr = @io.peeraddr + @pda = false + @pda = true if (self.include?("user-agent") and self["user-agent"].downcase.include?("windows ce")) + @pda = true if (self.include?("user-agent") and self["user-agent"].downcase.include?("handhttp")) + @io.close_read end + def pda? + @pda + end + def to_s res = @request.to_s self.each do |k, v| @@ -637,11 +636,11 @@ if (not remote) or (remote and (auth.nil? or auth.empty? or authenticate(auth, realm, req, resp))) @@times[com]=Time.new.to_f if not @@times.include?(com) - #puts "#{Time.new.strftime("%H:%M:%S")}: #{ip}: #{((Time.new.to_f - @@times[com]).to_s + "0"*4)[0..4]}: > #{req.request}" + #puts "#{Time.new.strftime("%H:%M:%S")}: #{ip}: #{((Time.new.to_f - @@times[com]).to_s + "0"*4)[0..4]}: > #{req.request.to_s.strip}" yield(req, resp) - puts "#{Time.new.strftime("%H:%M:%S")}: #{ip}: #{((Time.new.to_f - @@times[com]).to_s + "0"*4)[0..4]}: < #{req.request}" + puts "#{Time.new.strftime("%H:%M:%S")}: #{ip}: #{((Time.new.to_f - @@times[com]).to_s + "0"*4)[0..4]}: < #{req.request.to_s.strip}" @@times.delete(com) end diff -ur rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/rwd.lib.rb rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/rwd.lib.rb --- rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/rwd.lib.rb 2004-08-21 10:56:03.000000000 +0200 +++ rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/rwd.lib.rb 2004-09-03 12:26:26.000000000 +0200 @@ -2,7 +2,6 @@ require "ev/net" require "md5" require "rbconfig" -require "pstore" begin require "win32ole" @@ -15,6 +14,8 @@ $rwd_exit = ARGV.include?("--rwd-exit") # Hack ??? $rwd_debug = ($rwd_debug or false) $rwd_border = ($rwd_border or 0) +$rwd_dir = Dir.pwd +$rwd_files = File.expand_path("rwd_files", Dir.pwd) ARGV.delete_if do |arg| arg =~ /^--rwd-/ @@ -96,7 +97,7 @@ Thread.new do loop do - WIN32OLE_EVENT.message_loop + WIN32OLE_EVENT.message_loop end end end @@ -167,11 +168,11 @@ else s = "" - s << "<text name=´#{name}´" - s << " value=´#{values[n].to_html}´" if n < values.length - s << "/>" + s << "<text name=´#{name}´" + s << " value=´#{values[n].to_html}´" if n < values.length + s << "/>" - res << s + res << s end res << "</row>" @@ -249,7 +250,7 @@ end class OpenTag - def prechildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab) + def prechildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab, pda) bef = before[-1] res.concat Format % ["Before", @subtype] if ($rwd_debug and not bef.nil?) res.concat bef if not bef.nil? @@ -270,6 +271,9 @@ value2 = varsstring[@args["name"]] if varsstring.include?(@args["name"]) value2 = @args["value"] if @args.include?("value") + cellspacing = 3 + cellspacing = 0 if pda + case @subtype when "application" when "window", "helpwindow" @@ -277,7 +281,10 @@ args["nohelpbutton"] = (not help) - res.concat(template($rwd_html1, args)) + template = $rwd_html_11 + template = $rwd_html_21 if pda + + res.concat(template(template, args)) when "p" then res.concat "<p #{align}>" when "pre" then res.concat "<pre #{align}>" when "big" then res.concat "<p #{align}><big>" @@ -296,15 +303,17 @@ else res.concat "<a href=´javascript:document.bodyform.rwd_action.value=\"#{@args["action"]}\";document.bodyform.submit();´>" end - when "vertical" then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´3´ cellpadding=´0´>" - when "horizontal" then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´3´ cellpadding=´0´><tr #{align} #{valign}>" - when "table" then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´3´ cellpadding=´0´>" + when "vertical" then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´#{cellspacing}´ cellpadding=´0´>" + when "horizontal" then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´#{cellspacing}´ cellpadding=´0´><tr #{align} #{valign}>" + when "table" then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´#{cellspacing}´ cellpadding=´0´>" when "row" then res.concat "<tr #{align} #{valign}>" when "hidden" then res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´hidden´>" when "text" maxlength = "" maxlength = "maxlength=´%s´" % @args["maxlength"] if @args.include?("maxlength") - res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´text´ #{maxlength}>" + size = "" + size = "size=´%s´" % 10 if pda + res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´text´ #{maxlength} #{size}>" oneormorefields << "true" when "textarea" res.concat "<p #{align}><textarea name=´#{@args["name"]}´ rows=´25´ cols=´80´>#{value2.crlf}</textarea>" @@ -312,7 +321,9 @@ when "password" maxlength = "" maxlength = "maxlength=´%s´" % @args["maxlength"] if @args.include?("maxlength") - res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´password´ #{maxlength}>" + size = "" + size = "size=´%s´" % 10 if pda + res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´password´ #{maxlength} #{size}>" oneormorefields << "true" when "checkbox" if varshtml[@args["name"]] == "on" @@ -324,7 +335,7 @@ end oneormorefields << "true" when "radio" - if varshtml[@args["name"]] == value1 # ??? 1 of 2? + if varshtml[@args["name"]] == value1 # ??? 1 or 2? res.concat "<p #{align}><input name=´#{@args["name"]}´ checked=´on´ value=´#{value1}´ type=´radio´>" else res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´radio´>" @@ -425,7 +436,7 @@ after.push(aft) end - def postchildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab) + def postchildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab, pda) case @subtype when "vertical", "window", "helpwindow", "tabs", "tab" res.concat Format % ["BefPost", @subtype] if $rwd_debug @@ -445,7 +456,10 @@ args["nohelpbutton"] = (not help) - res.concat(template($rwd_html2, args)) + template = $rwd_html_12 + template = $rwd_html_22 if pda + + res.concat(template(template, args)) when "p" then res.concat "</p>" when "pre" then res.concat "</pre>" when "big" then res.concat "</big></p>" @@ -504,7 +518,11 @@ a[k.upcase] = v end - a["LOGO"] = "" unless ((not vars["logo"].nil?) and File.file?(vars["logo"])) + logo = nil + logo = File.expand_path(vars["logo"], $rwd_files) if vars.include?("logo") + logo = nil unless logo.nil? or File.file?(logo) + + a["LOGO"] = "" unless not logo.nil? a["HELPBUTTON"] = (not (vars["nohelpbutton"])) a["BACKBUTTONS"] = (not (vars["nobackbuttons"])) @@ -540,7 +558,7 @@ end class Text - def prechildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab) + def prechildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab, pda) if not @text.scan(/[^ \t\r\n]/).empty? res.concat Format % ["Text", ""] if $rwd_debug res.concat "#{@text}" @@ -577,7 +595,7 @@ @helprwd = (@@helpwindows[rwd][window] or "").dup end - def render(vars=Hash.new, switches=Hash.new, help=false, tab="") + def render(pda, vars=Hash.new, switches=Hash.new, help=false, tab="") varshtml = Hash.new varsstring = Hash.new oneormorefields = "" @@ -615,9 +633,9 @@ end if help - helpobject.parsetree("prechildren", "postchildren", html, [""], [""], varshtml, varsstring, switches, false, oneormorefields, firstaction, tabs, tab) + helpobject.parsetree("prechildren", "postchildren", html, [""], [""], varshtml, varsstring, switches, false, oneormorefields, firstaction, tabs, tab, pda) else - windowobject.parsetree("prechildren", "postchildren", html, [""], [""], varshtml, varsstring, switches, (not @helprwd.empty?), oneormorefields, firstaction, tabs, tab) + windowobject.parsetree("prechildren", "postchildren", html, [""], [""], varshtml, varsstring, switches, (not @helprwd.empty?), oneormorefields, firstaction, tabs, tab, pda) end html.gsub!(/%%*[[:alnum:]_\-]+%%*/, "") if not $rwd_debug @@ -687,7 +705,7 @@ @rwd_server = RWDServer.new(self, port, io, auth, realm) end - def render(res, path, post, download, sessionid) + def render(res, path, post, download, downloadfile, pda, sessionid) # Initialize some vars. @@ -700,6 +718,7 @@ tab = "" @rwd_msg = nil @rwd_download = nil + @rwd_download_file = nil # Switches are used for checkboxes. @@ -813,21 +832,22 @@ # Answer to browser. if done - res << RWDDone.new(@rwd_exitbrowser).render + res << RWDDone.new(@rwd_exitbrowser).render(pda) else if not @rwd_download.nil? puts "Download: #{@rwd_window}" if $rwd_debug - download << @rwd_download + download << @rwd_download + downloadfile << @rwd_download_file else if not @rwd_msg.nil? - res << RWDMessage.new(@rwd_msg).render if @rwd_msgtype == "message" - res << RWDError.new(@rwd_msg).render if @rwd_msgtype == "error" + res << RWDMessage.new(@rwd_msg).render(pda) if @rwd_msgtype == "message" + res << RWDError.new(@rwd_msg).render(pda) if @rwd_msgtype == "error" else puts "Window: #{@rwd_window}" if $rwd_debug puts "Tab: #{@rwd_tab}" if $rwd_debug - res << RWDWindow.new(@rwd_xml, @rwd_window).render(vars, @rwd_switches, help, @rwd_tab) + res << RWDWindow.new(@rwd_xml, @rwd_window).render(pda, vars, @rwd_switches, help, @rwd_tab) end end end @@ -849,8 +869,9 @@ @rwd_msgtype = "error" end - def download(data) + def download(data, filename="") @rwd_download = data + @rwd_download_file = filename end def exitbrowser @@ -889,19 +910,6 @@ @rack = rack.to_s @cleanup = SessionCleanup.new(self, 3600, 24*3600) if cleanup @sessions = {} - - #@store = PStore.new("#{temp}/store.#{@rack}.#{user}") # ??? - - #@store.transaction do - #@store[@rack] = {} if not @store.root?(@rack) - #@sessions = @store[@rack] - #end - - #at_exit do - #@store.transaction do - #@store[@rack] = @sessions - #end - #end end def [](sessionid) @@ -943,8 +951,8 @@ end class RWDSession < Session - def render(res, path, post, download) - done = self["object"].render(res, path, post, download, @sessionid) + def render(res, path, post, download, downloadfile, pda) + done = self["object"].render(res, path, post, download, downloadfile, pda, @sessionid) if done res.gsub!(/\$RWD_SESSION\$/, "") @@ -972,7 +980,8 @@ # Start browser. - @browserthread = Thread.new do + @browserthread = + Thread.new do puts "Starting the browser..." #if ENV["RWDBROWSER"].downcase =~ /iexplore/ # ??? @@ -1012,11 +1021,11 @@ #oldsessionid = vars["rwd_session"] oldsessionid = req.cookies["sessionid"] - # Retrieve session. + # Retrieve session. session = @sessions[oldsessionid] - # Eventually create new session. + # Eventually create new session. if session.nil? if auth.nil? @@ -1033,7 +1042,7 @@ if oldsessionid.nil? or oldsessionid.empty? if not auth.nil? and not auth.empty? and not session.authenticated and pad != "/pixel.gif" - # Check authentication + # Check authentication us = vars["rwd_a"] pa = vars["rwd_b"] @@ -1047,6 +1056,7 @@ @sessions[session.sessionid] = session end else + session.authenticated = true @sessions[session.sessionid] = session end else @@ -1057,20 +1067,21 @@ vars = {} end - # Avoid timeout. + # Avoid timeout. session.touch if pad == "/" - # Serve methods/callbacks. + # Serve methods/callbacks. - # Build new page. + # Build new page. download = "" + downloadfile = "" res = "" - done = session.render(res, pad, vars, download) + done = session.render(res, pad, vars, download, downloadfile, req.pda?) begin if download.empty? @@ -1084,7 +1095,8 @@ resp << res else resp["Content-Type"] = "application/octet-stream" - resp["Content-Disposition"] = "attachment; filename=data" + resp["Content-Disposition"] = "attachment;" + resp["Content-Disposition"] = "attachment; filename=%s" % downloadfile unless downloadfile.empty? resp << download end @@ -1094,7 +1106,7 @@ @sessions.delete(session.sessionid) end - # Eventually delete this session. + # Eventually delete this session. if done @sessions.delete(session.sessionid) @@ -1102,7 +1114,7 @@ if @localbrowsing resp.flush - if @browserstarted and @browserthread.alive? + if @browserstarted and not @browserthread.nil? and @browserthread.alive? puts "Waiting for the browser to terminate..." @browserthread.join @@ -1114,17 +1126,32 @@ else - # Serve files. + # Serve files. if pad == "/pixel.gif" resp["Cache-Control"] = "max-age=86400" resp["Content-Type"] = "image/gif" resp << $rwd_pixel else - if (File.file?(pad.sub(/^\/*/, ""))) - resp << File.new(pad.sub(/^\/*/, ""), "rb").read rescue nil + if session.authenticated + pwd = Dir.pwd + file = File.expand_path(pad.gsub(/^\/*/, ""), $rwd_files) + + if not file.index(pwd) == 0 + resp["Content-Type"] = "text/html" + resp.response = "HTTP/1.0 400 BAD REQUEST" + resp << "<html><body><p><b>Bad Request.</b> (<tt>#{pad}</tt>)</p></body></html>" + elsif File.file?(file) + resp << File.new(file, "rb").read rescue nil + else + resp["Content-Type"] = "text/html" + resp.response = "HTTP/1.0 404 NOT FOUND" + resp << "<html><body><p><b>Not found.</b> (<tt>#{pad}</tt>)</p></body></html>" + end else - resp.response = "HTTP/1.0 404 NOT FOUND" + resp["Content-Type"] = "text/html" + resp.response = "HTTP/1.0 ??? NOT AUTHORIZED" + resp << "<html><body><p><b>Not Authorized.</b></p></body></html>" end end @@ -1134,7 +1161,7 @@ end end -$rwd_html = " +$rwd_html_1 = " <!-- Generated by RubyWebDialog. --> <!-- For more information, please contact Erik Veenstra <rwd@erikveen.dds.nl>. --> <html> @@ -1410,6 +1437,78 @@ </html> " +$rwd_html_2 = " +<!-- Generated by RubyWebDialog. --> +<!-- For more information, please contact Erik Veenstra <rwd@erikveen.dds.nl>. --> +<html> + <head> + <title>%TITLE%</title> + + <meta http-equiv=´Content-Type´ content=´text/html; charset=ISO-8859-15´> + + <link rel=´shortcut icon´ href=´%LOGO%´> + + <script type=´text/javascript´> + <!-- + function BodyGo() { + $RWD_FOCUS$ + } + //--> + </script> + </head> + + <body bgcolor=´white´ onload=´BodyGo()´ link=´#000000´ vlink=´#000000´ alink=´#000000´> + <form name=´bodyform´ action=´/´ method=´post´> + <table align=´center´ border=´0´ cellspacing=´0´ cellpadding=´0´ width=´100%´ height=´100%´> + + <tr align=´center´> + <td align=´center´ bgcolor=´#444488´> + + <table align=´left´ border=´0´ cellspacing=´1´ cellpadding=´0´> + <tr align=´center´> + <td align=´border´><img src=´%LOGO%´ width=´14´ height=´14´></td> + <td align=´center´><b><small><font color=´#FFFFFF´> %TITLE% </font></small></b></td> + </tr> + </table> + + <table align=´right´ border=´0´ cellspacing=´1´ cellpadding=´0´> + <tr align=´center´> + <!-- %HELPBUTTON% --><td align=´center´ bgcolor=´#EEEEEE´><b><small><a href=´javascript:document.bodyform.rwd_action.value=\"rwd_help\";document.bodyform.submit();´> ? </a></small></b></td> + <!-- %BACKBUTTONS% --><td align=´center´ bgcolor=´#EEEEEE´><b><small><a href=´javascript:document.bodyform.rwd_action.value=\"rwd_main\";document.bodyform.submit();´> << </a></small></b></td> + <!-- %BACKBUTTONS% --><td align=´center´ bgcolor=´#EEEEEE´><b><small><a href=´javascript:document.bodyform.rwd_action.value=\"rwd_back\";document.bodyform.submit();´> < </a></small></b></td> + <!-- %CLOSEBUTTON% --><td align=´center´ bgcolor=´#EEEEEE´><b><small><a href=´javascript:document.bodyform.rwd_action.value=\"rwd_quit\";document.bodyform.submit();´> X </a></small></b></td> + </tr> + </table> + + </td> + </tr> + + <!-- + <tr align=´center´> + <td align=´center´ bgcolor=´#FFFFFF´> </td> + </tr> + --> + + <tr align=´center´> + <td align=´center´ bgcolor=´#FFFFFF´> + + <table align=´center´ border=´0´ cellspacing=´0´ cellpadding=´0´> + + %BODY% + + </table> + + <input name=´rwd_action´ value=´$RWD_FIRSTACTION$´ type=´hidden´> + <input name=´rwd_session´ value=´$RWD_SESSION$´ type=´hidden´> + </td> + </tr> + + </table> + </form> + </body> +</html> +" + $rwd_pixel = " R0lGODlhAQABAOcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoK CgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZ @@ -1432,4 +1531,5 @@ CgD/ACwAAAAAAQABAAAIBAD/BQQAOw== ".unpack("m").shift -$rwd_html1, $rwd_html2 = $rwd_html.split(/^\s*%BODY%\s*\r*$/) +$rwd_html_11, $rwd_html_12 = $rwd_html_1.split(/^\s*%BODY%\s*\r*$/) +$rwd_html_21, $rwd_html_22 = $rwd_html_2.split(/^\s*%BODY%\s*\r*$/) diff -ur rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/sgml.lib.rb rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/sgml.lib.rb --- rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/sgml.lib.rb 2004-08-21 10:56:03.000000000 +0200 +++ rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/sgml.lib.rb 2004-09-03 12:26:26.000000000 +0200 @@ -25,11 +25,13 @@ end def prechildren_to_s(res) - res << "#{CGI.unescapeHTML(@text)} " + #res << "#{CGI.unescapeHTML(@text)} " + res << @text end def prechildren_to_sgml(res) - res << "#{CGI.unescapeHTML(@text)}" + #res << "#{CGI.unescapeHTML(@text)}" + res << @text end end