diff -ur rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/CHANGELOG rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/CHANGELOG
--- rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/CHANGELOG	2006-08-06 19:32:36.000000000 +0200
+++ rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/CHANGELOG	2007-04-15 21:04:06.000000000 +0200
@@ -1,12 +1,30 @@
 ----------------------------------------------------------------
 
+0.5.2 - 15.04.2007
+
+* Fixed a bug when using the gem as library.
+
+* Fixed a bug concerning RUBYSCRIPT2EXE.userdir(file) (as well
+  as RUBYSCRIPT2EXE.appdir(file)) and full pathnames.
+
+* Replaced %TEMP% by %HOME%/eee, or %USERPROFILE%/eee, or
+  %TEMP%/eee, or c:/eee (on Windows). Replaced /tmp by
+  $HOME/.eee, or /tmp/.eee (on Linux/Darwin). This is to avoid
+  "Insecure world writable dir".
+
+* Introduced RUBYSCRIPT2EXE.exedir and
+  RUBYSCRIPT2EXE.executable.
+
+----------------------------------------------------------------
+
 0.5.1 - 06.08.2006
 
 * Fixed a bug when using the big rubyscript2exe.rb (the RBA) as
   library.
 
-* Fixed a bug in RUBYSCRIPT2EXE.appdir. Added
-  RUBYSCRIPT2EXE.userdir.
+* Fixed a bug in RUBYSCRIPT2EXE.appdir.
+
+* Added RUBYSCRIPT2EXE.userdir.
 
 * Added RUBYSCRIPT2EXE.rubyw=.
 
diff -ur rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/eee.pas rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/eee.pas
--- rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/eee.pas	2006-08-06 19:33:04.000000000 +0200
+++ rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/eee.pas	2007-04-15 21:31:50.000000000 +0200
@@ -1079,11 +1079,31 @@
     appname	:= t.appname;
   end;
 
-  temp	:= getshortpathname(getenv('TEMP'));
+  temp		:= getshortpathname(getenv('HOME'));
   if (temp = '') then begin
-    temp	:= '/tmp'
+  temp		:= getshortpathname(getenv('USERPROFILE'));
+    if (temp = '') then begin
+      temp	:= getshortpathname(getenv('TEMP'));
+      if (temp = '') then begin
+        {$IFDEF WIN32}
+          temp	:= 'c:';
+        {$ELSE}
+          temp	:= '/tmp';
+        {$ENDIF}
+      end;
+    end;
   end;
 
+  {$IFDEF WIN32}
+    temp	:= temp + slash + 'eee';
+  {$ELSE}
+    temp	:= temp + slash + '.eee';
+  {$ENDIF}
+
+  {$I-}
+    mkdir(temp);				if (ioresult <> 0) then;
+  {$I+}
+
   getdir2(0, orgdir);
   chdir2(temp, false);
     {$I-}
diff -ur rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/ev/dependencies.rb rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/ev/dependencies.rb
--- rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/ev/dependencies.rb	2006-08-06 19:33:04.000000000 +0200
+++ rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/ev/dependencies.rb	2007-04-15 21:31:49.000000000 +0200
@@ -12,7 +12,7 @@
 
   paden << File.dirname(file)
 
-  windir1	= (ENV["WINDIR"] || "").gsub(/\\/, "/").downcase
+  windir1	= (ENV["SYSTEMROOT"] || ENV["WINDIR"] || "").gsub(/\\/, "/").downcase
   drive		= windir1.scan(/^(.):/).shift.shift
   windir2	= windir1.sub(/^#{drive}:/, "/cygdrive/#{drive.downcase}")
 
@@ -72,6 +72,8 @@
       libs	= `ldd #{tempfile}`.split(/\r*\n/).collect{|line| line.split(/\s+/)[3]}			if linux?
       libs	= `otool -L #{tempfile}`.split(/\r*\n/)[1..-1].collect{|line| line.split(/\s+/)[1]}	if darwin?
 
+      libs ||= []
+
       libs.compact.each do |lib|
         if File.file?(lib) and not res.include?(lib)
           todo << lib
diff -ur rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/ev/ftools.rb rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/ev/ftools.rb
--- rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/ev/ftools.rb	2006-08-06 19:33:04.000000000 +0200
+++ rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/ev/ftools.rb	2007-04-15 21:31:50.000000000 +0200
@@ -62,6 +62,7 @@
 
   def self.find(entry=nil, mask=nil)
     entry	= "."	if entry.nil?
+    entry	= entry.to_s
 
     entry	= entry.gsub(/[\/\\]*$/, "")	unless entry.nil?
 
@@ -95,58 +96,57 @@
 
     res.sort
   end
-end
 
-class File
-  def self.rollbackup(file, mode=nil)
-    backupfile	= file + ".RB.BACKUP"
-    controlfile	= file + ".RB.CONTROL"
-    res		= nil
+  def self.home(*args, &block)
+    dir	= nil
 
-    File.touch(file)    unless File.file?(file)
+    dir	||= ENV["HOME"]
+    dir	||= ENV["USERPROFILE"]
+    dir	||= "c:/"
 
-	# Rollback
+    handle_home_and_temp(dir, *args, &block)
+  end
 
-    if File.file?(backupfile) and File.file?(controlfile)
-      $stderr.puts "Restoring #{file}..."
+  def self.temp(*args, &block)
+    dir	= nil
 
-      File.copy(backupfile, file)				# Rollback from phase 3
-    end
+    dir	||= ENV["TMPDIR"]
+    dir	||= ENV["TMP"]
+    dir	||= ENV["TEMP"]
+    dir	||= "/tmp"
 
-	# Reset
+    handle_home_and_temp(dir, *args, &block)
+  end
 
-    File.delete(backupfile)	if File.file?(backupfile)	# Reset from phase 2 or 3
-    File.delete(controlfile)	if File.file?(controlfile)	# Reset from phase 3 or 4
+  private
 
-	# Backup
+  def self.handle_home_and_temp(dir, *args, &block)
+    file	= File.join(*args)
+    file	= file.gsub(/\\/, "/")
+    file	= file.gsub(/\/+/, "/")
+    file	= file.gsub(/^\/+/, "")
+    file	= file.gsub(/\/+$/, "")
+
+    dir		= dir.gsub(/\\/, "/")
+    dir		= dir.gsub(/\/+/, "/")
+    dir		= dir.gsub(/\/+$/, "")
+    dir		= File.expand_path(file, dir)
 
-    File.copy(file, backupfile)					# Enter phase 2
-    File.touch(controlfile)					# Enter phase 3
+    res		= dir
 
-	# The real thing
+    if block
+      pdir	= Dir.pwd
 
-    if block_given?
-      if mode.nil?
-        res	= yield
-      else
-        File.open(file, mode) do |f|
-          res	= yield(f)
-        end
-      end
+      Dir.chdir(dir)	# Ruby 1.6 doesn't handle Dir.chdir(&block).
+        res	= block.call(res)
+      Dir.chdir(pdir)
     end
 
-	# Cleanup
-
-    File.delete(backupfile)					# Enter phase 4
-    File.delete(controlfile)					# Enter phase 5
-
-	# Return, like File.open
-
-    res	= File.open(file, (mode or "r"))	unless block_given?
-
     res
   end
+end
 
+class File
   def self.touch(file)
     if File.exists?(file)
       File.utime(Time.now, File.mtime(file), file)
diff -ur rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb
--- rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb	2006-08-06 19:33:04.000000000 +0200
+++ rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb	2007-04-15 21:31:49.000000000 +0200
@@ -1,3 +1,5 @@
+require "rubyscript2exe"
+
 temp	= File.expand_path((ENV["TMPDIR"] or ENV["TMP"] or ENV["TEMP"] or "/tmp").gsub(/\\/, "/"))
 dir	= "#{temp}/oldandnewlocation.#{Process.pid}"
 
@@ -40,7 +42,7 @@
   oldlocation
 rescue NameError
   def oldlocation(file="")
-    dir	= ENV["OLDDIR"]
+    dir	= (ENV["OLDDIR"] || RUBYSCRIPT2EXE.userdir) rescue "."
     res	= nil
 
     if block_given?
@@ -61,7 +63,7 @@
   newlocation
 rescue NameError
   def newlocation(file="")
-    dir	= ENV["NEWDIR"]
+    dir	= (ENV["NEWDIR"] || RUBYSCRIPT2EXE.appdir) rescue "."
     res	= nil
 
     if block_given?
@@ -82,7 +84,7 @@
   applocation
 rescue NameError
   def applocation(file="")
-    dir	= ENV["APPDIR"]
+    dir	= (ENV["APPDIR"] || RUBYSCRIPT2EXE.appdir) rescue "."
     res	= nil
 
     if block_given?
diff -ur rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/init.rb rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/init.rb
--- rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/init.rb	2006-08-06 18:40:35.000000000 +0200
+++ rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/init.rb	2007-04-10 20:06:14.000000000 +0200
@@ -1,12 +1,6 @@
-$: << File.dirname(File.expand_path(__FILE__))
-
-$".delete "rubyscript2exe.rb"
-
-if defined?(oldlocation)
-  oldlocation do
-    require "rubyscript2exe"
-  end
-else
+begin
+  load File.join(File.dirname(__FILE__), "rubyscript2exe.rb")
+rescue LoadError
   require "rubyscript2exe"
 end
 
@@ -75,9 +69,27 @@
   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] [parameters]
                or
-	       ruby #{usagescript} application[/] [--rubyscript2exe-rubyw|--rubyscript2exe-ruby] [--rubyscript2exe-nostrip]
+	       ruby #{usagescript} application[/] [parameters]
+
+	Where parameter is on of the following:
+
+         --rubyscript2exe-rubyw     Avoid the popping up of a DOS box. (It's
+                                    annoying in the test period... No puts and
+                                    p anymore... Only use it for distributing
+                                    your application. See Logging.)
+         --rubyscript2exe-ruby      Force the popping up of a DOS box (default).
+         --rubyscript2exe-nostrip   Avoid stripping. The binaries (ruby and
+                                    *.so) on Linux and Darwin are stripped by
+                                    default to reduce the size of the resulting
+                                    executable.
+         --rubyscript2exe-strace    Start the embedded application with strace
+                                    (Linux only, for debugging only).
+         --rubyscript2exe-tk        (experimental) Embed not only the Ruby
+                                    bindings for TK, but TK itself as well.
+         --rubyscript2exe-verbose   Verbose mode.
+         --rubyscript2exe-quiet     Quiet mode.
 
 	On Linux and Darwin, there's no difference between ruby and rubyw.
 
@@ -143,7 +155,7 @@
 
 rubyw	= false
 rubyw	= true		if script =~ /\.rbw$/
-rubyw	= true		if RUBYSCRIPT2EXE::RUBYW
+rubyw	= true		if RUBYSCRIPT2EXE::REQUIRE2LIB_FROM_APP[:rubyw]
 rubyw	= false		if RUBY
 rubyw	= true		if RUBYW
 
@@ -156,9 +168,9 @@
 
 $stderr.puts "Copying files..."	unless QUIET
 
-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([RUBYSCRIPT2EXE::REQUIRE2LIB_FROM_APP[:dlls]].flatten.collect{|s| oldlocation(s)}, bindir2)
+copyto([RUBYSCRIPT2EXE::REQUIRE2LIB_FROM_APP[:bin]].flatten.collect{|s| oldlocation(s)}, bindir2)
+copyto([RUBYSCRIPT2EXE::REQUIRE2LIB_FROM_APP[: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?)
@@ -173,7 +185,7 @@
 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 RUBYSCRIPT2EXE::TK
+if TK or RUBYSCRIPT2EXE::REQUIRE2LIB_FROM_APP[:tk]
   if File.file?("#{libdir2}/tk.rb")
     $stderr.puts "Copying TCL/TK..."	unless QUIET
 
@@ -187,7 +199,7 @@
   end
 end
 
-if not NOSTRIP and RUBYSCRIPT2EXE::STRIP and (linux? or darwin?)
+if not NOSTRIP and RUBYSCRIPT2EXE::REQUIRE2LIB_FROM_APP[:strip] and (linux? or darwin?)
   $stderr.puts "Stripping..."	unless QUIET
 
   system("cd #{bindir2} ; strip --strip-all * 2> /dev/null")
@@ -264,9 +276,9 @@
   f.puts "  ARGV.concat(RUBYSCRIPT2EXE::PARMSLIST.split(/\000/))"
   f.puts "end"
 
-  f.puts "# Set the RubyGems environment"
+  if RUBYSCRIPT2EXE::REQUIRE2LIB_FROM_APP[:rubygems]
+    f.puts "# Set the RubyGems environment"
 
-  if RUBYSCRIPT2EXE::RUBYGEMS
     f.puts "ENV.keys.each do |key|"
     f.puts "  ENV.delete(key)	if key =~ /^gem_/i"
     f.puts "end"
@@ -295,9 +307,11 @@
 
 	# ??? 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/* ; #{strace} %tempdir%/bin/#{rubyexe} -r %tempdir%/bootstrap.rb -T1 %tempdir%/empty.rb %tempdir%/app/#{apprb}"
+    f.puts "t chmod +x %tempdir%/bin/*"
+    f.puts "c export PATH=%tempdir%/bin:$PATH ; export LD_LIBRARY_PATH=%tempdir%/bin:$LD_LIBRARY_PATH ; #{strace} %tempdir%/bin/#{rubyexe} -r %tempdir%/bootstrap.rb -T1 %tempdir%/empty.rb %tempdir%/app/#{apprb}"
   elsif darwin?
-    f.puts "c PATH=%tempdir%/bin:$PATH ; export DYLD_LIBRARY_PATH=%tempdir%/bin:$DYLD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/bootstrap.rb -T1 %tempdir%/empty.rb %tempdir%/app/#{apprb}"
+    f.puts "t chmod +x %tempdir%/bin/*"
+    f.puts "c export PATH=%tempdir%/bin:$PATH ; export DYLD_LIBRARY_PATH=%tempdir%/bin:$DYLD_LIBRARY_PATH ; %tempdir%/bin/#{rubyexe} -r %tempdir%/bootstrap.rb -T1 %tempdir%/empty.rb %tempdir%/app/#{apprb}"
   elsif cygwin?
     f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir1%/bootstrap.rb -T1 %tempdir1%/empty.rb %tempdir1%/app/#{apprb}"
   else
@@ -328,7 +342,7 @@
 tmplocation do
   ENV["EEE_EXE"]	= eeeexe
   ENV["EEE_DIR"]	= Dir.pwd
-  ENV["EEE_TEMPDIR"]	= RUBYSCRIPT2EXE::TEMPDIR	if RUBYSCRIPT2EXE::TEMPDIR
+  ENV["EEE_TEMPDIR"]	= RUBYSCRIPT2EXE::REQUIRE2LIB_FROM_APP[:tempdir]	if RUBYSCRIPT2EXE::REQUIRE2LIB_FROM_APP[:tempdir]
 
   eeebin1	= newlocation("eee.exe")
   eeebin1	= newlocation("eee_linux")	if linux?
diff -ur rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/require2lib.rb rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/require2lib.rb
--- rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/require2lib.rb	2006-08-06 19:33:04.000000000 +0200
+++ rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/require2lib.rb	2007-04-15 21:31:50.000000000 +0200
@@ -1,5 +1,6 @@
 require "ev/ftools"
 require "rbconfig"
+require "rubyscript2exe"
 
 exit	if __FILE__ == $0
 
@@ -127,11 +128,15 @@
     unless LOADSCRIPT == ORGDIR
       File.open(LOADSCRIPT, "w") do |f|
         f.puts "module RUBYSCRIPT2EXE"
+        f.puts "  REQUIRE2LIB_FROM_APP={}"
+
         RUBYSCRIPT2EXE.class_variables.each do |const|
           const	= const[2..-1]
-          f.puts "  #{const.upcase}=#{RUBYSCRIPT2EXE.send(const).inspect}"
+
+          f.puts "  REQUIRE2LIB_FROM_APP[:#{const}]=#{RUBYSCRIPT2EXE.send(const).inspect}"
         end
-        f.puts "  RUBYGEMS=#{rubygems.inspect}"
+
+        f.puts "  REQUIRE2LIB_FROM_APP[:rubygems]=#{rubygems.inspect}"
         f.puts "end"
       end
     end
@@ -139,10 +144,10 @@
 end
 
 module Kernel
-  alias :old_load :load
+  alias :require2lib_load :load
   def load(filename, wrap=false)
     REQUIRE2LIB::LOADED << filename	unless REQUIRE2LIB::LOADED.include?(filename)
 
-    old_load(filename, wrap)
+    require2lib_load(filename, wrap)
   end
 end
diff -ur rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/rubyscript2exe.rb rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/rubyscript2exe.rb
--- rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/rubyscript2exe.rb	2006-08-06 19:33:04.000000000 +0200
+++ rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/rubyscript2exe.rb	2007-04-15 21:31:50.000000000 +0200
@@ -31,19 +31,26 @@
   def self.strip=(b)	; @@strip = b	; end
 
   def self.appdir(file=nil, &block)
-    dir	= File.dirname(File.expand_path($0, USERDIR))
-    dir	= File.expand_path(File.join(TEMPDIR, "app"))		if is_compiled? and defined?(TEMPDIR)
-
-    _use_given_dir(dir, file, &block)
+    if is_compiled? and defined?(TEMPDIR)
+      use_given_dir(File.expand_path(File.join(TEMPDIR, "app")), file, &block)
+    else
+      use_given_dir(File.dirname(File.expand_path($0, USERDIR)), file, &block)
+    end
   end
 
   def self.userdir(file=nil, &block)
-    dir	= USERDIR
+    use_given_dir(USERDIR, file, &block)
+  end
 
-    _use_given_dir(USERDIR, file, &block)
+  def self.exedir(file=nil, &block)
+    if is_compiled? and defined?(APPEXE)
+      use_given_dir(File.dirname(APPEXE), file, &block)
+    else
+      use_given_dir(File.dirname(File.expand_path($0)), file, &block)
+    end
   end
 
-  def self._use_given_dir(dir, file, &block)
+  def self.use_given_dir(dir, *file, &block)
     if block
       pdir	= Dir.pwd
 
@@ -51,13 +58,15 @@
         res	= block[]
       Dir.chdir(pdir)
     else
-      res	= File.join(*([dir, file].compact))
+      file	= file.compact
+      res	= File.expand_path(File.join(*file), dir)
     end
 
     res
   end
+
   class << self
-    private :_use_given_dir
+    private :use_given_dir
   end
 
   def self.is_compiling?
@@ -68,6 +77,14 @@
     defined?(COMPILED)
   end
 
+  def self.executable
+    if is_compiled? and defined?(APPEXE)
+      APPEXE
+    else
+      File.expand_path($0)
+    end
+  end
+
   verbose	= $VERBOSE
   $VERBOSE	= nil
   s		= ENV["PATH"].dup
diff -ur rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/VERSION rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/VERSION
--- rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/VERSION	2006-08-06 19:33:04.000000000 +0200
+++ rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/VERSION	2007-04-15 21:31:49.000000000 +0200
@@ -1 +1 @@
-0.5.1
+0.5.2
Binary files rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/eee.exe and rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/eee.exe differ
Binary files rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/eee_linux and rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/eee_linux differ
Binary files rubyscript2exe-0.5.1.tar.gz/rubyscript2exe/eeew.exe and rubyscript2exe-0.5.2.tar.gz/rubyscript2exe/eeew.exe differ