diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/CHANGELOG rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/CHANGELOG
--- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/CHANGELOG	2006-06-28 17:17:28.000000000 +0200
+++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/CHANGELOG	2006-07-29 20:27:05.000000000 +0200
@@ -1,5 +1,25 @@
 ----------------------------------------------------------------
 
+0.5.0 - 29.07.2006
+
+* Added support for directories.
+
+* Introduced require "rubyscript2exe.rb".
+
+* Added a check for readability in EEE.
+
+* Replaced RUBYSCRIPT2EXE_* by RUBYSCRIPT.*= and
+  RUBYSCRIPT2EXE::* (see application.rb).
+
+* Added RUBYSCRIPT2EXE.appdir(item) and
+  RUBYSCRIPT2EXE.is_compil*?.
+
+* If you already used RubyScript2Exe before, please reread the
+  section "From Inside your Application", since it isn't 100%
+  backwards compatible.
+
+----------------------------------------------------------------
+
 0.4.4 - 28.06.2006
 
 * Fixed a bug concerning "ENV.delete(key)".
diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/eee.pas rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/eee.pas
--- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/eee.pas	2006-06-28 17:18:44.000000000 +0200
+++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/eee.pas	2006-07-29 20:28:12.000000000 +0200
@@ -812,6 +812,7 @@
   infile	: file of byte;
   outfile	: file of byte;
   i		: longint;
+  n		: longint;
 
 begin
 
@@ -837,9 +838,11 @@
 
   for i := 1 to t.number do begin
     {$I-}
-      gzread(zfile, addr(h), sizeof(h));	if (ioresult <> 0) then error('Couldn''t read: "' + workfile + '"');
+      n	:= gzread(zfile, addr(h), sizeof(h));	if (ioresult <> 0) then error('Couldn''t read: "' + workfile + '"');
     {$I+}
 
+    if (n <> sizeof(h)) then error('Couldn''t read: "' + workfile + '"');
+
     klasse	:= h.klasse;
     tekst2	:= h.tekst;
 
diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/init.rb rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/init.rb
--- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/init.rb	2006-06-28 09:57:40.000000000 +0200
+++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/init.rb	2006-07-29 18:39:59.000000000 +0200
@@ -1,7 +1,12 @@
+$".delete "rubyscript2exe.rb"
+require "rubyscript2exe"
+
+if __FILE__ == $0
+
 $: << File.dirname(File.expand_path(__FILE__))
 
 required	= $"
-required	= required.reject{|a| File.dirname(a) == ALLINONERUBY_TEMPDIR}	if defined?(ALLINONERUBY_TEMPDIR)
+required	= required.reject{|a| File.dirname(a) == ALLINONERUBY::TEMPDIR}	if defined?(ALLINONERUBY::TEMPDIR)
 required	= required.collect{|a| "-r '#{a}'"}
 
 require "ev/oldandnewlocation"
@@ -9,7 +14,7 @@
 require "ev/ftools"
 require "rbconfig"
 
-exit	if defined?(REQUIRE2LIB)
+exit	if RUBYSCRIPT2EXE.is_compiling?
 
 def backslashes(s)
   s	= s.gsub(/^\.\//, "").gsub(/\//, "\\\\")	if windows?
@@ -41,6 +46,7 @@
     tofile	= File.expand_path(File.basename(fromfile), dest)
 
     $stderr.puts "Copying #{fromfile} ..."	if VERBOSE
+
     File.copy(fromfile, tofile)			unless File.file?(tofile)
   end
 end
@@ -61,7 +67,9 @@
   usagescript	= "rubyscript2exe.rb"	if defined?(TAR2RUBYSCRIPT)
   $stderr.puts <<-EOF
 
-	Usage: ruby #{usagescript} application[.rb[w]] [--rubyscript2exe-rubyw|--rubyscript2exe-ruby] [--rubyscript2exe-nostrip]
+	Usage: ruby #{usagescript} application.rb[w] [--rubyscript2exe-rubyw|--rubyscript2exe-ruby] [--rubyscript2exe-nostrip]
+               or
+	       ruby #{usagescript} application[/] [--rubyscript2exe-rubyw|--rubyscript2exe-ruby] [--rubyscript2exe-nostrip]
 
 	On Linux and Darwin, there's no difference between ruby and rubyw.
 
@@ -83,7 +91,6 @@
 libdir2	= tmplocation("lib/")
 appdir2	= tmplocation("app/")
 
-script	= "#{script}.rb"	unless script =~ /\.rbw?$/
 app	= File.basename(script.gsub(/\.rbw?$/, ""))
 
 $stderr.puts "Tracing #{app} ..."	unless QUIET
@@ -98,12 +105,28 @@
 ENV["REQUIRE2LIB_LOADSCRIPT"]	= loadscript
 
 oldlocation do
-  command	= backslashes("#{bindir1}/ruby") + " #{required.join(" ")} #{libs.join(" ")} -r '#{newlocation("require2lib.rb")}' '#{script}' #{verbose} #{quiet} #{argv.join(" ")}"
+  unless File.exist?(script)
+    $stderr.puts "#{script} doesn't exist."
+
+    exit 1
+  end
+
+  apprb	= script		if File.file?(script)
+  apprb	= "#{script}/init.rb"	if File.directory?(script)
+
+  unless File.file?(apprb)
+    $stderr.puts "#{apprb} doesn't exist."
+
+    exit 1
+  end
+
+  command	= backslashes("#{bindir1}/ruby") + " #{required.join(" ")} #{libs.join(" ")} -r '#{newlocation("require2lib.rb")}' '#{apprb}' #{verbose} #{quiet} #{argv.join(" ")}"
 
   system(command)
 
   unless File.file?(loadscript)
     $stderr.puts "Couldn't execute this command (rc=#{$?}):\n#{command}"
+    $stderr.puts "Stopped."
 
     exit 16
   end
@@ -124,23 +147,24 @@
 
 $stderr.puts "Copying files..."	unless QUIET
 
-copyto([RUBYSCRIPT2EXE_DLLS].flatten.collect{|s| oldlocation(s)}, bindir2)	if defined?(RUBYSCRIPT2EXE_DLLS)
-copyto([RUBYSCRIPT2EXE_BIN].flatten.collect{|s| oldlocation(s)}, bindir2)	if defined?(RUBYSCRIPT2EXE_BIN)
-copyto([RUBYSCRIPT2EXE_LIB].flatten.collect{|s| oldlocation(s)}, libdir2)	if defined?(RUBYSCRIPT2EXE_LIB)
-
-copyto(rubyexe, bindir2)	if linux? or darwin?	if File.file?(rubyexe)
-copyto(ldds(rubyexe), bindir2)	if linux? or darwin?
-
-copyto(rubyexe, bindir2)	if windows? or cygwin?	if File.file?(rubyexe)
-copyto(rubywexe, bindir2)	if windows? or cygwin?	if File.file?(rubyexe)
-copyto(dlls(rubyexe), bindir2)	if windows? or cygwin?
+copyto([RUBYSCRIPT2EXE::DLLS].flatten.collect{|s| oldlocation(s)}, bindir2)
+copyto([RUBYSCRIPT2EXE::BIN].flatten.collect{|s| oldlocation(s)}, bindir2)
+copyto([RUBYSCRIPT2EXE::LIB].flatten.collect{|s| oldlocation(s)}, libdir2)
+
+copyto(rubyexe, bindir2)	if (linux? or darwin?) and File.file?(rubyexe)
+copyto(ldds(rubyexe), bindir2)	if (linux? or darwin?)
+
+copyto(rubyexe, bindir2)	if (windows? or cygwin?) and File.file?(rubyexe)
+copyto(rubywexe, bindir2)	if (windows? or cygwin?) and File.file?(rubywexe)
+copyto(dlls(rubyexe), bindir2)	if (windows? or cygwin?) and File.file?(rubyexe)
 
-copyto([oldlocation(script)], appdir2)
+copyto(oldlocation(script), appdir2)	if File.file?(oldlocation(script))
+Dir.copy(oldlocation(script), appdir2)	if File.directory?(oldlocation(script))
 
 copyto(Dir.find(libdir2, /\.(so|o|dll)$/i).collect{|file| ldds(file)}, bindir2)	if linux? or darwin?
 copyto(Dir.find(libdir2, /\.(so|o|dll)$/i).collect{|file| dlls(file)}, bindir2)	if windows? or cygwin?
 
-if TK or defined?(RUBYSCRIPT2EXE_TK)
+if TK or RUBYSCRIPT2EXE::TK
   if File.file?("#{libdir2}/tk.rb")
     $stderr.puts "Copying TCL/TK..."	unless QUIET
 
@@ -180,10 +204,15 @@
 File.open(tmplocation("bootstrap.rb"), "w") do |f|
   f.puts "# Set up the environment"
 
+  f.puts "module RUBYSCRIPT2EXE"
+  f.puts "end"
+
   f.puts "dir	= File.expand_path(File.dirname(__FILE__))"
   f.puts "dir.sub!(/^.:/, '/cygdrive/%s' % $&[0..0].downcase)	if dir =~ /^.:/"	if cygwin?
-  f.puts "bin	= dir + '/bin'"
-  f.puts "lib	= dir + '/lib'"
+  f.puts "bin		= dir + '/bin'"
+  f.puts "lib		= dir + '/lib'"
+  f.puts "appbin	= dir + '/app/bin'"
+  f.puts "applib	= dir + '/app/lib'"
 
   f.puts "verbose	= $VERBOSE"
   f.puts "$VERBOSE	= nil"
@@ -198,6 +227,7 @@
 
   f.puts "$:.clear"
   f.puts "$: << lib"
+  f.puts "$: << applib"
 
   f.puts "# Load eee.info"
 
@@ -214,16 +244,16 @@
   f.puts "  end"
   f.puts "  lines.each do |line|"
   f.puts "    k, v	= line.strip.split(/\s*=\s*/, 2)"
-  f.puts "    k.gsub!(/^EEE_/, 'RUBYSCRIPT2EXE_')"
-  f.puts "    v	= File.expand_path(v)	if k == 'RUBYSCRIPT2EXE_APPEXE'"
-  f.puts "    eval('%s=%s' % [k, v.inspect])"
+  f.puts "    k.gsub!(/^EEE_/, '')"
+  f.puts "    v	= File.expand_path(v)	if k == 'APPEXE'"
+  f.puts "    RUBYSCRIPT2EXE.module_eval{const_set(k, v)}"
   f.puts "  end"
-  f.puts "  ARGV.concat(RUBYSCRIPT2EXE_PARMSLIST.split(/\000/))"
+  f.puts "  ARGV.concat(RUBYSCRIPT2EXE::PARMSLIST.split(/\000/))"
   f.puts "end"
 
   f.puts "# Set the RubyGems environment."
 
-  if RUBYSCRIPT2EXE_RUBYGEMS
+  if RUBYSCRIPT2EXE::RUBYGEMS
     f.puts "ENV.keys.each do |key|"
     f.puts "  ENV.delete(key)	if key =~ /^gem_/i"
     f.puts "end"
@@ -231,9 +261,13 @@
     f.puts "require 'rubygems'"
   end
 
+  f.puts "module RUBYSCRIPT2EXE"
+  f.puts "  RUBYEXE	= '#{rubyexe}'"
+  f.puts "  COMPILED	= true"
+  f.puts "end"
+
   f.puts "# Start the application"
 
-  f.puts "RUBYSCRIPT2EXE	= '#{rubyexe}'"
   f.puts "load($0 = ARGV.shift)"
 end
 
@@ -248,8 +282,10 @@
   f.puts "r app"
   f.puts "i eee.info"
 
-  apprb	= File.basename(script)
+  apprb	= File.basename(script)	if File.file?(oldlocation(script))
+  apprb	= "init.rb"	if File.directory?(oldlocation(script))
 
+	# ??? nog iets met app/bin?
   if linux?
     f.puts "c PATH=%tempdir%/bin:$PATH ; export LD_LIBRARY_PATH=%tempdir%/bin:$LD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/bootstrap.rb -T1 %tempdir%/empty.rb %tempdir%/app/#{apprb}"
   elsif darwin?
@@ -261,6 +297,18 @@
   end
 end
 
+too_long	= File.read(tmplocation(appeee)).split(/\r*\n/).select{|line| line.length > 255}
+
+unless too_long.empty?
+  too_long.each do |line|
+    $stderr.puts "Line is too long (#{line.length}): #{line}"
+  end
+
+  $stderr.puts "Stopped."
+
+  exit 16
+end
+
 from	= newlocation(eeeexe)
 from	= applocation(eeeexe)	unless File.file?(from)
 from	= oldlocation(eeeexe)	unless File.file?(from)
@@ -272,7 +320,7 @@
 tmplocation do
   ENV["EEE_EXE"]	= eeeexe
   ENV["EEE_DIR"]	= Dir.pwd
-  ENV["EEE_TEMPDIR"]	= RUBYSCRIPT2EXE_TEMPDIR	if defined?(RUBYSCRIPT2EXE_TEMPDIR)
+  ENV["EEE_TEMPDIR"]	= RUBYSCRIPT2EXE::TEMPDIR	if RUBYSCRIPT2EXE::TEMPDIR
 
   eeebin1	= newlocation("eee.exe")
   eeebin1	= newlocation("eee_linux")	if linux?
@@ -311,3 +359,5 @@
 oldlocation do
   system(backslashes("reshacker -modify #{tmplocation(appexe)}, #{appexe}, #{appico}, icon,appicon,"))	if File.file?(appico) and (windows? or cygwin?)
 end
+
+end	# if __FILE__ == $0
diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/require2lib.rb rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/require2lib.rb
--- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/require2lib.rb	2006-06-28 17:18:44.000000000 +0200
+++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/require2lib.rb	2006-07-29 20:28:12.000000000 +0200
@@ -3,25 +3,16 @@
 
 exit	if __FILE__ == $0
 
-$require2lib_loaded	= []
-
-REQUIRE2LIB	= true	unless defined?(REQUIRE2LIB)
-
-module Kernel
-  alias :old_load :load
-  def load(filename, wrap=false)
-    $require2lib_loaded << filename	unless $require2lib_loaded.include?(filename)
-
-    old_load(filename, wrap)
-  end
+module RUBYSCRIPT2EXE
 end
 
-module Require
+module REQUIRE2LIB
   JUSTRUBYLIB	= ARGV.include?("--require2lib-justrubylib")
   JUSTSITELIB	= ARGV.include?("--require2lib-justsitelib")
   RUBYGEMS	= (not JUSTRUBYLIB)
   VERBOSE	= ARGV.include?("--require2lib-verbose")
   QUIET		= (ARGV.include?("--require2lib-quiet") and not VERBOSE)
+  LOADED	= []
 
   ARGV.delete_if{|arg| arg =~ /^--require2lib-/}
 
@@ -35,7 +26,7 @@
   at_exit do
     Dir.chdir(ORGDIR)
 
-    Require.gatherlibs
+    REQUIRE2LIB.gatherlibs
   end
 
   def self.gatherlibs
@@ -57,6 +48,8 @@
     pureruby	= true
 
     if rubygems
+      require "fileutils"	# Hack ???
+
       requireablefiles	= []
 
       Dir.mkdir(File.expand_path("rubyscript2exe.gems", LIBDIR))
@@ -96,7 +89,7 @@
       end
     end
 
-    ($" + $require2lib_loaded).each do |req|
+    ($" + LOADED).each do |req|
       catch :found do
         $:.each do |lib|
           fromfile	= File.expand_path(req, lib)
@@ -133,12 +126,23 @@
 
     unless LOADSCRIPT == ORGDIR
       File.open(LOADSCRIPT, "w") do |f|
-        f.puts "RUBYSCRIPT2EXE_DLLS	= #{RUBYSCRIPT2EXE_DLLS.inspect}"	if defined?(RUBYSCRIPT2EXE_DLLS)
-        f.puts "RUBYSCRIPT2EXE_BIN	= #{RUBYSCRIPT2EXE_BIN.inspect}"	if defined?(RUBYSCRIPT2EXE_BIN)
-        f.puts "RUBYSCRIPT2EXE_LIB	= #{RUBYSCRIPT2EXE_LIB.inspect}"	if defined?(RUBYSCRIPT2EXE_LIB)
-        f.puts "RUBYSCRIPT2EXE_TEMPDIR	= #{RUBYSCRIPT2EXE_TEMPDIR.inspect}"	if defined?(RUBYSCRIPT2EXE_TEMPDIR)
-        f.puts "RUBYSCRIPT2EXE_RUBYGEMS	= #{rubygems.inspect}"
+        f.puts "module RUBYSCRIPT2EXE"
+        RUBYSCRIPT2EXE.class_variables.each do |const|
+          const	= const[2..-1]
+          f.puts "  #{const.upcase}=#{RUBYSCRIPT2EXE.send(const).inspect}"
+        end
+        f.puts "  RUBYGEMS=#{rubygems.inspect}"
+        f.puts "end"
       end
     end
   end
 end
+
+module Kernel
+  alias :old_load :load
+  def load(filename, wrap=false)
+    REQUIRE2LIB::LOADED << filename	unless REQUIRE2LIB::LOADED.include?(filename)
+
+    old_load(filename, wrap)
+  end
+end
diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/rubyscript2exe.rb rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/rubyscript2exe.rb
--- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/rubyscript2exe.rb	2006-07-29 20:29:13.373843640 +0200
+++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/rubyscript2exe.rb	2006-07-29 20:28:11.000000000 +0200
@@ -0,0 +1,47 @@
+module RUBYSCRIPT2EXE
+  @@dlls	= []
+  @@bin		= []
+  @@lib		= []
+  @@tempdir	= nil
+  @@tk		= false
+
+  def self.dlls		; @@dlls	; end
+  def self.dlls=(a)	; @@dlls = a	; end
+
+  def self.bin		; @@bin		; end
+  def self.bin=(a)	; @@bin = a	; end
+
+  def self.lib		; @@lib		; end
+  def self.lib=(a)	; @@lib = a	; end
+
+  def self.tempdir	; @@tempdir	; end
+  def self.tempdir=(s)	; @@tempdir = s	; end
+
+  def self.tk		; @@tk		; end
+  def self.tk=(b)	; @@tk = b	; end
+
+  def self.appdir(file=nil, &block)
+    dir	= File.dirname(File.expand_path($0))
+    dir	= File.expand_path(File.join(TEMPDIR, "app"))		if not defined?(TAR2RUBYSCRIPT) and is_compiled? and defined?(TEMPDIR)
+
+    if block
+      pdir	= Dir.pwd
+
+      Dir.chdir(dir)
+        res	= block[]
+      Dir.chdir(pdir)
+    else
+      res	= File.join(*([dir, file].compact))
+    end
+
+    res
+  end
+
+  def self.is_compiling?
+    defined?(REQUIRE2LIB)
+  end
+
+  def self.is_compiled?
+    defined?(COMPILED)
+  end
+end
diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/VERSION rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/VERSION
--- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/VERSION	2006-06-28 17:18:44.000000000 +0200
+++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/VERSION	2006-07-29 20:28:11.000000000 +0200
@@ -1 +1 @@
-0.4.4
+0.5.0
Binary files rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/eee.exe and rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/eee.exe differ
Binary files rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/eee_linux and rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/eee_linux differ
Binary files rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/eeew.exe and rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/eeew.exe differ