diff -ur rubyscript2exe-none.tar.gz/rubyscript2exe/LICENSE rubyscript2exe-0.1.tar.gz/rubyscript2exe/LICENSE
--- rubyscript2exe-none.tar.gz/rubyscript2exe/LICENSE	2004-06-23 00:35:18.000000000 +0200
+++ rubyscript2exe-0.1.tar.gz/rubyscript2exe/LICENSE	2003-10-17 22:08:10.000000000 +0200
@@ -0,0 +1,15 @@
+# Copyright Erik Veenstra <rubyscript2exe@erikveen.dds.nl>
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+# 
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied
+# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+# PURPOSE. See the GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public
+# License along with this program; if not, write to the Free
+# Software Foundation, Inc., 59 Temple Place, Suite 330,
+# Boston, MA 02111-1307 USA.
diff -ur rubyscript2exe-none.tar.gz/rubyscript2exe/README rubyscript2exe-0.1.tar.gz/rubyscript2exe/README
--- rubyscript2exe-none.tar.gz/rubyscript2exe/README	2004-06-23 00:35:18.000000000 +0200
+++ rubyscript2exe-0.1.tar.gz/rubyscript2exe/README	2003-10-17 22:07:54.000000000 +0200
@@ -0,0 +1,4 @@
+Usage: ruby init.rb application[.rb]
+
+For more information, see
+http://www.erikveen.dds.nl/rubyscript2tar/ .
diff -ur rubyscript2exe-none.tar.gz/rubyscript2exe/eee.pas rubyscript2exe-0.1.tar.gz/rubyscript2exe/eee.pas
--- rubyscript2exe-none.tar.gz/rubyscript2exe/eee.pas	2004-06-23 00:35:18.000000000 +0200
+++ rubyscript2exe-0.1.tar.gz/rubyscript2exe/eee.pas	2003-10-19 19:55:59.000000000 +0200
@@ -0,0 +1,216 @@
+uses
+
+  Dos;
+
+type
+
+  header =	record
+		  klasse	: string[1];
+		  tekst		: string[255];
+		  length	: longint;
+		end;
+
+  tail =	record
+		  length	: longint;
+		  number	: longint;
+		  who		: string[255];
+		end;
+
+var
+
+  tempdir	: string;
+  workdir	: string;
+  me		: string;
+  infile	: file of byte;
+  outfile	: file of byte;
+  eeefile	: Text;
+  klasse	: string[1];
+  tekst		: string[255];
+  s		: string[255];
+  b		: array[0..10000000] of byte;
+  h		: header;
+  t		: tail;
+  teller	: longint;
+  i		: longint;
+  dir		: string;
+  parms		: string;
+
+begin
+
+  tempdir	:= ´c:\tmp´;
+  tempdir	:= getenv(´TEMP´);
+
+  me		:= ´Dit is mij herkennigsstring´;
+
+  parms		:= ´´;
+  for teller := 1 to paramcount do begin
+    if (parms = ´´) then begin
+      parms	:= paramstr(teller);
+    end
+    else begin
+      parms	:= parms + ´ ´ + paramstr(teller);
+    end;
+  end;
+
+  filemode	:= 0;
+
+  assign(infile, paramstr(0));
+  reset(infile, 1);
+  blockread(infile, b, filesize(infile)-sizeof(t));
+  blockread(infile, t, sizeof(t));
+  close(infile);
+
+  if (t.who <> me) then begin
+
+		// Pak in.
+
+    assign(outfile, paramstr(2));
+    rewrite(outfile, 1);
+
+    assign(eeefile, paramstr(1));
+    reset(eeefile);
+
+    assign(infile, paramstr(0));
+    reset(infile, 1);
+    blockread(infile, b, sizeof(b), t.length);
+    blockwrite(outfile, b, t.length);
+    close(infile);
+
+    t.number	:= 0;
+
+    repeat
+      readln(eeefile, s);
+
+      if (not (s = ´´) and not (copy(s, 1, 1) = ´#´)) then begin
+        klasse	:= copy(s, 1, 1);
+        tekst	:= copy(s, 3, 255);
+
+        if (klasse = ´f´) then begin
+          h.klasse	:= klasse;
+          h.tekst	:= tekst;
+
+          // writeln(h.klasse, ´ ´, h.tekst);
+
+          assign(infile, h.tekst);
+          reset(infile, 1);
+
+          h.length	:= filesize(infile);
+
+          blockread(infile, b, sizeof(b), h.length);
+
+          blockwrite(outfile, h, sizeof(h));
+          blockwrite(outfile, b, h.length);
+
+          close(infile);
+        end;
+
+        if (klasse = ´c´) then begin
+          h.klasse	:= klasse;
+          h.tekst	:= tekst;
+          h.length	:= 0;
+
+          // writeln(h.klasse, ´ ´, h.tekst);
+
+          blockwrite(outfile, h, sizeof(h));
+        end;
+
+        if (klasse = ´t´) then begin
+          h.klasse	:= klasse;
+          h.tekst	:= tekst;
+          h.length	:= 0;
+
+          // writeln(h.klasse, ´ ´, h.tekst);
+
+          blockwrite(outfile, h, sizeof(h));
+        end;
+
+        t.number	:= t.number + 1;
+      end;
+    until eof(eeefile);
+
+    t.who	:= me;
+
+    blockwrite(outfile, t, sizeof(t));
+
+    close(eeefile);
+
+    close(outfile);
+
+  end
+
+  else begin
+
+		// Pak uit.
+
+    randomize;
+
+    getdir(0, dir);
+    chdir(tempdir);
+      {$I-}
+        repeat
+          str(random(1000), s);
+          workdir	:= ´eee.´ + s;
+          mkdir(workdir);
+        until (ioresult = 0);
+      {$I+}
+
+      workdir	:= tempdir + ´\´ + workdir;
+    chdir(dir);
+
+    assign(infile, paramstr(0));
+    reset(infile, 1);
+    blockread(infile, b, t.length);
+
+    try
+
+      for teller := 1 to t.number do begin
+        blockread(infile, h, sizeof(h));
+
+        s		:= ´%tempdir%´;
+        i		:= pos(s, h.tekst);
+        while (i > 0) do begin
+          h.tekst	:= copy(h.tekst, 1, i-1) + workdir + copy(h.tekst, i+length(s), 255);
+          i	:= pos(s, h.tekst);
+        end;
+
+        s		:= ´%parms%´;
+        i		:= pos(s, h.tekst);
+        while (i > 0) do begin
+          h.tekst	:= copy(h.tekst, 1, i-1) + parms + copy(h.tekst, i+length(s), 255);
+          i	:= pos(s, h.tekst);
+        end;
+
+        // writeln(h.klasse, ´ ´, h.tekst);
+
+        if (h.klasse = ´f´) then begin
+          blockread(infile, b, h.length);
+
+          assign(outfile, workdir + ´\´ + h.tekst);
+          rewrite(outfile, 1);
+          blockwrite(outfile, b, h.length);
+          close(outfile);
+        end;
+
+        if (h.klasse = ´c´) then begin
+          exec(getenv(´COMSPEC´), ´/c ´ + h.tekst);
+        end;
+
+        if (h.klasse = ´t´) then begin
+          getdir(0, dir);
+          chdir(workdir);
+            exec(getenv(´COMSPEC´), ´/c ´ + h.tekst);
+          chdir(dir);
+        end;
+      end;
+
+    finally
+
+      close(infile);
+
+      exec(getenv(´COMSPEC´), ´/c deltree /y ´ + workdir + ´ > nul:´);
+
+    end;
+
+  end;
+
+end.
diff -ur rubyscript2exe-none.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb rubyscript2exe-0.1.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb
--- rubyscript2exe-none.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb	2004-06-23 00:35:18.000000000 +0200
+++ rubyscript2exe-0.1.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb	2003-10-17 22:08:37.000000000 +0200
@@ -0,0 +1,19 @@
+def oldlocation(file="")
+  if block_given?
+    res	= yield
+  else
+    res	= File.expand_path(file, ".")	if not file.nil?
+  end
+
+  res
+end
+
+def newlocation(file="")
+  if block_given?
+    res	= yield
+  else
+    res	= File.expand_path(file, ".")	if not file.nil?
+  end
+
+  res
+end
diff -ur rubyscript2exe-none.tar.gz/rubyscript2exe/init.rb rubyscript2exe-0.1.tar.gz/rubyscript2exe/init.rb
--- rubyscript2exe-none.tar.gz/rubyscript2exe/init.rb	2004-06-23 00:35:18.000000000 +0200
+++ rubyscript2exe-0.1.tar.gz/rubyscript2exe/init.rb	2003-10-17 22:08:37.000000000 +0200
@@ -0,0 +1,77 @@
+require "ev/oldandnewlocation"
+require "rbconfig"
+
+app	= ARGV.shift
+
+Config::CONFIG["bindir"].gsub!(/\//, "\\")
+Config::CONFIG["LIBRUBY_SO"].gsub!(/\//, "\\")
+
+olddir	= oldlocation.gsub!(/\//, "\\")
+newdir	= newlocation.gsub!(/\//, "\\")
+
+if not app.nil?
+  app	= app.dup.gsub(/\.rb$/, "")
+
+  puts "Gathering files..."
+
+  system("copy #{Config::CONFIG["bindir"]}\\ruby.exe . > nul:")
+  system("copy #{Config::CONFIG["bindir"]}\\rubyw.exe . > nul:")
+  system("copy #{Config::CONFIG["bindir"]}\\#{Config::CONFIG["LIBRUBY_SO"]} . > nul:")
+
+  system("copy #{olddir}\\#{app}.rb app.rb > nul:")
+
+  puts "Tracing #{app} ..."
+
+  oldlocation do
+    tar = FileTest.file?("tar.exe")
+    system("copy #{newdir}\\tar.exe . > nul:")	if not tar
+
+    system("ruby -r #{newdir}\\require2tar.rb #{app}.rb #{ARGV.join(" ")}")
+
+    system("del tar.exe > nul:")		if not tar
+  end
+
+  system("move #{olddir}\\rubyrequired.tar . > nul:")
+
+  puts "Packing..."
+
+  system("gzip #{Config::CONFIG["LIBRUBY_SO"]}")
+  system("gzip rubyrequired.tar")
+  system("gzip app.rb")
+
+  File.open("app.eee", "w") do |f|
+    f.puts "f gzip.exe"
+    f.puts "f tar.exe"
+    f.puts "f ruby.exe"
+    f.puts "f rubyw.exe"
+    f.puts "f #{Config::CONFIG["LIBRUBY_SO"]}.gz"
+    f.puts "f rubyrequired.tar.gz"
+    f.puts "f app.rb.gz"
+
+    f.puts "t gzip -d #{Config::CONFIG["LIBRUBY_SO"]}.gz"
+    f.puts "t gzip -d rubyrequired.tar.gz"
+    f.puts "t gzip -d app.rb.gz"
+
+    f.puts "t tar xf rubyrequired.tar"
+
+    f.puts "c %tempdir%\\ruby -I %tempdir%\\rubyrequired %tempdir%\\app.rb %parms%"
+  end
+
+  if FileTest.file?("c:\\gnu\\root\\bin\\win32\\fpc.exe")
+    puts "Creating eee.exe ..."
+
+    system("c:\\gnu\\root\\bin\\win32\\fpc.exe -gl -S2 eee")
+    system("copy eee.exe s:\\ > nul:")
+  end
+
+  puts "Creating #{app}.exe ..."
+
+  system("eee.exe app.eee #{olddir}\\#{app}.exe")
+
+  system("del ruby.exe")
+  system("del rubyw.exe")
+  system("del #{Config::CONFIG["LIBRUBY_SO"]}.gz")
+  system("del rubyrequired.tar.gz")
+  system("del app.rb.gz")
+  system("del app.eee")
+end
diff -ur rubyscript2exe-none.tar.gz/rubyscript2exe/require2tar.rb rubyscript2exe-0.1.tar.gz/rubyscript2exe/require2tar.rb
--- rubyscript2exe-none.tar.gz/rubyscript2exe/require2tar.rb	2004-06-23 00:35:18.000000000 +0200
+++ rubyscript2exe-0.1.tar.gz/rubyscript2exe/require2tar.rb	2003-10-17 22:08:37.000000000 +0200
@@ -0,0 +1,110 @@
+JustCopy	= ARGV.include?("--require2tar-justcopy")
+JustEV		= ARGV.include?("--require2tar-justev")
+
+ARGV.delete_if do |arg|
+  arg =~ /^--require2tar-/
+end
+
+at_exit do
+  include Require
+
+  createtar
+end
+
+module Require
+
+  def createtar
+    temp	= ENV["TEMP"]
+    temp	= "/tmp"	if temp.nil?
+    tmpdir	= File.expand_path("rubyrequired2tar.#{Process.pid}", temp)
+    tardir	= "rubyrequired"
+    tarfile	= "rubyrequired.tar"
+    todir	= File.expand_path(tardir, tmpdir)
+
+    mkdirs("#{todir}/")
+
+    $".delete_if{|req| not req =~ /^ev\//}	if JustEV
+
+    $".each do |req|
+      found	= false
+
+      $:.each do |lib|
+        if not found
+          file	= File.expand_path(req, lib)
+          if FileTest.file?(file)
+            found		= true
+            fromfile	= file
+            tofile	= File.expand_path(req, todir)
+            tofile	= req	if JustCopy
+
+            #puts "Found #{fromfile} ."
+
+            copy(fromfile, tofile)
+          end
+        end
+      end
+
+      if not found
+        puts "Can´t find #{req} ."
+      end
+    end
+
+    if not JustCopy
+      copy("tar.exe", File.expand_path("tar.exe", tmpdir))	if FileTest.file?("tar.exe")
+
+      pdir	= Dir.pwd
+      s		= "tar chf #{File.expand_path(tarfile)} #{tardir}"
+      Dir.chdir(tmpdir)
+        puts "Creating #{tarfile} ..."
+
+        system(s)
+      Dir.chdir(pdir)
+    end
+
+    recursivedelete(tmpdir)
+  end
+
+  def copy(fromfile, tofile)
+    mkdirs(tofile)
+
+    if not FileTest.file?(tofile)
+      File.open(tofile, "wb") do |f|
+        f.write(File.new(fromfile, "rb").read)
+      end
+    end
+  end
+
+  def mkdirs(file)
+    dir, file	= file.gsub(/[\/\\]/, "/").split(/\//, 2)
+
+    if not file.nil?
+      dir	= "#{dir}/"
+
+      Dir.mkdir(dir)	if not FileTest.directory?(dir)
+
+      pdir = Dir.pwd
+      Dir.chdir(dir)
+        mkdirs(file)
+      Dir.chdir(pdir)
+    end
+  end
+
+  def recursivedelete(entry)
+    if FileTest.file?(entry)
+      File.delete(entry)
+    end
+
+    if FileTest.directory?(entry)
+      pdir = Dir.pwd
+
+      Dir.chdir(entry)
+        Dir.new(".").each do |e|
+          recursivedelete(e)	if not [".", ".."].include?(e)
+        end
+      Dir.chdir(pdir)
+
+      Dir.rmdir(entry)
+    end
+  end
+
+end
diff -ur rubyscript2exe-none.tar.gz/rubyscript2exe/tar2rubyscript.rb rubyscript2exe-0.1.tar.gz/rubyscript2exe/tar2rubyscript.rb
--- rubyscript2exe-none.tar.gz/rubyscript2exe/tar2rubyscript.rb	2004-06-23 00:35:18.000000000 +0200
+++ rubyscript2exe-0.1.tar.gz/rubyscript2exe/tar2rubyscript.rb	2003-10-17 22:08:37.000000000 +0200
@@ -0,0 +1,81 @@
+scriptfile	= ARGV.shift
+tarfile		= ARGV.shift
+rbfile		= ARGV.shift
+licensefile	= ARGV.shift
+
+tarfile.dup.gsub!(/[\/\\]$/, "")
+
+if tarfile.nil?
+  puts "Usage: ruby tar2rubyscript.rb application.tar [application.rb [license.txt]]"
+  puts "       or"
+  puts "       ruby tar2rubyscript.rb application/ [application.rb [license.txt]]"
+  puts ""
+  puts "The second option needs the external program ´tar´ for creating"
+  puts "the archive internally."
+
+  exit 1
+end
+
+if not FileTest.exist?(tarfile)
+  puts "#{tarfile} doesn´t exist."
+  exit
+end
+
+if not licensefile.nil? and not FileTest.file?(licensefile)
+  puts "#{licensefile} doesn´t exist."
+  exit
+end
+
+
+script	= nil
+archive	= nil
+
+File.open(scriptfile)			{|f| script	= f.read}
+
+if FileTest.file?(tarfile)
+  File.open(tarfile, "rb")		{|f| archive	= [f.read].pack("m").split("\n").collect{|s| "# " + s}.join("\n")}
+end
+
+if FileTest.directory?(tarfile)
+  orgdir	= Dir.pwd
+
+  Dir.chdir(tarfile)
+
+  if FileTest.file?("tar2rubyscript.bat")
+    puts "\".\\tar2rubyscript.bat\""
+    system(".\\tar2rubyscript.bat")
+  end
+
+  if FileTest.file?("tar2rubyscript.sh")
+    puts "\". ./tar2rubyscript.sh\""
+    system("sh -c \". ./tar2rubyscript.sh\"")
+  end
+
+  Dir.chdir("..")
+
+  IO.popen("tar ch #{tarfile.sub(/.*[\/\\]/, "")}", "rb")	{|f| archive	= [f.read].pack("m").split("\n").collect{|s| "# " + s}.join("\n")}
+
+  Dir.chdir(orgdir)
+end
+
+if not licensefile.nil?
+  lic	= nil	; File.open(licensefile)	{|f| lic	= f.readlines}
+
+  lic.collect! do |line|
+    line.gsub!(/[\r\n]/, "")
+    line	= "# #{line}"	unless line =~ /^[ \t]*#/
+    line
+  end
+
+  script	= "# License, not of this script, but of the application it contains:\n#\n" + lic.join("\n") + "\n\n" + script
+end
+
+rbfile	= tarfile.gsub(/\.tar$/, "") + ".rb"	if (rbfile.nil? or File.basename(rbfile) == "-")
+
+File.open(rbfile, "wb") do |f|
+  f.write script
+  f.write "\n"
+  f.write "\n"
+  f.write archive
+  f.write "\n"
+end
diff -ur rubyscript2exe-none.tar.gz/rubyscript2exe/tarrubyscript.rb rubyscript2exe-0.1.tar.gz/rubyscript2exe/tarrubyscript.rb
--- rubyscript2exe-none.tar.gz/rubyscript2exe/tarrubyscript.rb	2004-06-23 00:35:18.000000000 +0200
+++ rubyscript2exe-0.1.tar.gz/rubyscript2exe/tarrubyscript.rb	2003-10-17 22:08:37.000000000 +0200
@@ -0,0 +1,305 @@
+# Tar2RubyScript constants
+
+JustExtract	= ARGV.include?("--tar2rubyscript-justextract")
+
+ARGV.concat	[]
+
+ARGV.delete_if do |arg|
+  arg =~ /^--tar2rubyscript-/
+end
+
+# Tar constants
+
+BLOCKSIZE	= 512
+
+NAMELEN		= 100
+MODELEN		= 8
+UIDLEN		= 8
+GIDLEN		= 8
+CHKSUMLEN	= 8
+SIZELEN		= 12
+MAGICLEN	= 8
+MODTIMELEN	= 12
+UNAMELEN	= 32
+GNAMELEN	= 32
+DEVLEN		= 8
+TMAGIC		= ´ustar´
+GNU_TMAGIC	= ´ustar  ´
+
+LF_OLDFILE	= ´\0´
+LF_FILE		= ´0´
+LF_LINK		= ´1´
+LF_SYMLINK	= ´2´
+LF_CHAR		= ´3´
+LF_BLOCK	= ´4´
+LF_DIR		= ´5´
+LF_FIFO		= ´6´
+LF_CONTIG	= ´7´
+
+class Reader
+  def initialize(filehandle)
+    @fp	= filehandle
+  end
+
+  def extract
+    each do |entry|
+      entry.extract
+    end
+  end
+
+  def each
+    @fp.rewind
+
+    while entry	= next_entry
+      yield(entry)
+    end
+  end
+
+  def next_entry
+    buf	= @fp.read(BLOCKSIZE)
+
+    if buf.length < BLOCKSIZE or buf == "\000" * BLOCKSIZE
+      entry	= nil
+    else
+      entry	= Entry.new(buf, @fp)
+    end
+
+    entry
+  end
+end
+
+class Entry
+  attr_reader(:header, :data)
+
+  def initialize(header, fp)
+    @header	= Header.new(header)
+
+    if @header.file?
+      padding	= (BLOCKSIZE - (@header.size % BLOCKSIZE)) % BLOCKSIZE
+
+      @data	= fp.read(@header.size)	if @header.size > 0
+      dummy	= fp.read(padding)	if padding > 0
+    end
+  end
+
+  def extract
+    if not @header.name.empty?
+      if @header.dir?
+        begin
+          Dir.mkdir(@header.name, @header.mode)
+        rescue SystemCallError => e
+          puts "Couldn´t create dir #{@header.name}: " + e.message
+        end
+      else
+        if @header.file?
+          begin
+            File.open(@header.name, "wb") do |fp|
+              fp.write(@data)
+              fp.chmod(@header.mode)
+            end
+          rescue => e
+            puts "Couldn´t create file #{@header.name}: " + e.message
+          end
+        else
+          puts "Couldn´t handle entry #{@header.name}"
+        end
+      end
+
+      #File.chown(@header.uid, @header.gid, @header.name)
+      #File.utime(Time.now, @header.mtime, @header.name)
+    end
+  end
+end
+
+class Header
+  attr_reader(:name, :uid, :gid, :size, :mtime, :uname, :gname, :mode)
+
+  def initialize(header)
+    fields	= header.unpack(´A100 A8 A8 A8 A12 A12 A8 A1 A100 A8 A32 A32 A8 A8´)
+    types	= [´str´, ´oct´, ´oct´, ´oct´, ´oct´, ´time´, ´oct´, ´str´, ´str´, ´str´, ´str´, ´str´, ´oct´, ´oct´]
+
+    begin
+      converted	= []
+      while field = fields.shift
+        type	= types.shift
+
+        case type
+        when ´str´	then converted.push(field)
+        when ´oct´	then converted.push(field.oct)
+        when ´time´	then converted.push(Time::at(field.oct))
+        end
+      end
+
+      @name, @mode, @uid, @gid, @size, @mtime, @chksum, @linkflag, @linkname, @magic, @uname, @gname, @devmajor, @devminor	= converted
+
+      @name.gsub!(/^\.\//, "")
+
+      @raw	= header
+    rescue ArgumentError => e
+      raise "Couldn´t determine a real value for a field (#{field})"
+    end
+
+    raise "Magic header value ´#{@magic}´ is invalid."	if @magic != TMAGIC and @magic != GNU_TMAGIC
+
+    @linkflag	= LF_FILE			if @linkflag == LF_OLDFILE or @linkflag == LF_CONTIG
+    @linkflag	= LF_DIR			if @name[-1] == ´/´ and @linkflag == LF_FILE
+    @linkname	= @linkname[1,-1]		if @linkname[0] == ´/´
+    @size	= 0				if @size < 0
+    @name	= @linkname + ´/´ + @name	if @linkname.size > 0
+  end
+
+  def file?
+    @linkflag == LF_FILE
+  end
+
+  def dir?
+    @linkflag == LF_DIR
+  end
+end
+
+class TempSpace
+  def initialize
+    @archive	= File.new($0, "rb").read.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
+    @olddir	= Dir.pwd
+    temp	= ENV["TEMP"]
+    temp	= "/tmp"	if temp.nil?
+    @tempdir	= "#{temp}/tar2rubyscript.d.#{Process.pid}"
+    @tempfile	= "#{temp}/tar2rubyscript.f.#{Process.pid}"
+
+    @newdir=@tempdir
+  end
+
+  def eval
+    Dir.mkdir(@tempdir)	if not FileTest.exists?(@tempdir)
+
+    newlocation do
+
+		# Create the temp environment.
+
+      File.open(@tempfile, "wb")	{|f| f.write @archive}
+      File.open(@tempfile, "rb")	{|f| Reader.new(f).extract}
+
+		# Eventually look for a subdirectory.
+
+      entries	= Dir.entries(".")
+      entries.delete(".")
+      entries.delete("..")
+
+      if entries.length == 1
+        entry	= entries.shift.dup
+        if FileTest.directory?(entry)
+          @newdir	= "#{@tempdir}/#{entry}"
+        end
+      end
+    end
+
+		# Remember all File objects.
+
+    @ioobjects	= []
+    ObjectSpace::each_object(File) do |obj|
+      @ioobjects << obj
+    end
+
+    at_exit do
+
+		# Close all File objects, opened in init.rb .
+
+      ObjectSpace::each_object(File) do |obj|
+        obj.close	if (not obj.closed? and not @ioobjects.include?(obj))
+      end
+
+		# Remove the temp environment.
+
+      Dir.chdir(@olddir)
+
+      recursivedelete(@tempfile)
+      recursivedelete(@tempdir)
+    end
+
+		# Execute init.rb .
+
+    newlocation do
+      File.open("init.rb") do |f|
+        instance_eval(f.read)
+      end
+    end
+  end
+
+  def recursivedelete(entry)
+    if FileTest.file?(entry)
+      File.delete(entry)
+    end
+
+    if FileTest.directory?(entry)
+      pdir = Dir.pwd
+
+      Dir.chdir(entry)
+        Dir.new(".").each do |e|
+          recursivedelete(e)	if not [".", ".."].include?(e)
+        end
+      Dir.chdir(pdir)
+
+      Dir.rmdir(entry)
+    end
+  end
+
+  def oldlocation(file="")
+    if block_given?
+      pdir	= Dir.pwd
+
+      Dir.chdir(@olddir)
+        res	= yield
+      Dir.chdir(pdir)
+    else
+      res	= File.expand_path(file, @olddir)	if not file.nil?
+    end
+
+    res
+  end
+
+  def newlocation(file="")
+    if block_given?
+      pdir	= Dir.pwd
+
+      Dir.chdir(@newdir)
+        res	= yield
+      Dir.chdir(pdir)
+    else
+      res	= File.expand_path(file, @newdir)	if not file.nil?
+    end
+
+    res
+  end
+end
+
+class Extract
+  def initialize
+    @archive	= File.new($0, "rb").read.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
+    temp	= ENV["TEMP"]
+    temp	= "/tmp"	if temp.nil?
+    @tempfile	= "#{temp}/tar2rubyscript.f.#{Process.pid}"
+  end
+
+  def extract
+    begin
+
+		# Create the temp environment.
+
+      File.open(@tempfile, "wb")	{|f| f.write @archive}
+      File.open(@tempfile, "rb")	{|f| Reader.new(f).extract}
+
+    ensure
+
+		# Remove the temp environment.
+
+      File.delete(@tempfile)
+
+    end
+  end
+end
+
+if JustExtract
+  Extract.new.extract
+else
+  TempSpace.new.eval
+end
Binary files rubyscript2exe-none.tar.gz/rubyscript2exe/eee.exe and rubyscript2exe-0.1.tar.gz/rubyscript2exe/eee.exe differ
Binary files rubyscript2exe-none.tar.gz/rubyscript2exe/gzip.exe and rubyscript2exe-0.1.tar.gz/rubyscript2exe/gzip.exe differ
Binary files rubyscript2exe-none.tar.gz/rubyscript2exe/tar.exe and rubyscript2exe-0.1.tar.gz/rubyscript2exe/tar.exe differ