diff -ur rubyscript2exe-0.1.15.tar.gz/rubyscript2exe/eee.pas rubyscript2exe-0.1.16.tar.gz/rubyscript2exe/eee.pas --- rubyscript2exe-0.1.15.tar.gz/rubyscript2exe/eee.pas 2004-05-14 22:48:30.000000000 +0200 +++ rubyscript2exe-0.1.16.tar.gz/rubyscript2exe/eee.pas 2004-06-10 13:57:22.000000000 +0200 @@ -16,6 +16,7 @@ length : longint; number : longint; who : string[255]; + exename : string[32]; end; var @@ -38,6 +39,7 @@ i : longint; dir : string[255]; parms : string; + quotedparms : string; justextract : boolean; @@ -168,14 +170,29 @@ assign(eeefile, paramstr(1)); reset(eeefile); - if (paramcount > 2) then assign(infile, paramstr(3)) - else assign(infile, paramstr(0)); + if (paramcount > 2) then begin + assign(infile, paramstr(3)); + t.exename := paramstr(3); + end + else begin + assign(infile, paramstr(0)); + t.exename := paramstr(0); + end; + reset(infile, 1); t.length := filesize(infile); blockcopy(infile, outfile, t.length, false); close(infile); t.number := 0; + t.who := me; + + s := ´\´; + i := pos(s, t.exename); + while (i > 0) do begin + t.exename := copy(t.exename, i+length(s), length(t.exename)-(i+length(s))+1); + i := pos(s, t.exename); + end; repeat readln(eeefile, s); @@ -218,8 +235,6 @@ end; until eof(eeefile); - t.who := me; - blockwrite(outfile, t, sizeof(t)); close(eeefile); @@ -273,6 +288,13 @@ i := pos(s, tekst2); end; + s := ´%quotedparms%´; + i := pos(s, tekst2); + while (i > 0) do begin + tekst2 := copy(tekst2, 1, i-1) + quotedparms + copy(tekst2, i+length(s), length(tekst2)-(i+length(s))+1); + i := pos(s, tekst2); + end; + // writeln(h.klasse, ´ ´, tekst2); if (h.klasse = ´f´) then begin @@ -320,7 +342,7 @@ assign(infile, paramstr(0)); reset(infile, 1); - assign(outfile, ´eee.exe´); + assign(outfile, t.exename); rewrite(outfile); blockcopy(infile, outfile, t.length, false); close(outfile); @@ -365,16 +387,19 @@ justextract := false; parms := ´´; + quotedparms := ´´; for teller := 1 to paramcount do begin if (paramstr(teller) = ´--eee-justextract´) then begin justextract := true; end; - if (parms = ´´) then begin - parms := ´´´´ + paramstr(teller) + ´´´´; + if ((parms = ´´) and (quotedparms = ´´)) then begin + parms := paramstr(teller); + quotedparms := ´´´´ + paramstr(teller) + ´´´´; end else begin - parms := parms + ´ ´´´ + paramstr(teller) + ´´´´; + parms := parms + ´ ´ + paramstr(teller); + quotedparms := quotedparms + ´ ´´´ + paramstr(teller) + ´´´´; end; end; diff -ur rubyscript2exe-0.1.15.tar.gz/rubyscript2exe/ev/ftools.rb rubyscript2exe-0.1.16.tar.gz/rubyscript2exe/ev/ftools.rb --- rubyscript2exe-0.1.15.tar.gz/rubyscript2exe/ev/ftools.rb 2004-05-15 11:59:12.000000000 +0200 +++ rubyscript2exe-0.1.16.tar.gz/rubyscript2exe/ev/ftools.rb 2004-06-11 13:17:48.000000000 +0200 @@ -19,7 +19,7 @@ end end - def self.rollbackup(file) + def self.rollbackup(file, mode=nil) backupfile = file + ".RB.BACKUP" controlfile = file + ".RB.CONTROL" @@ -30,27 +30,43 @@ if File.file?(backupfile) and File.file?(controlfile) $stdout.puts "Restoring #{file}..." - File.copy(backupfile, file) # Rollback from fase 3 + File.copy(backupfile, file) # Rollback from phase 3 end # Reset - File.delete(backupfile) if File.file?(backupfile) # Reset from fase 2 or 3 - File.delete(controlfile) if File.file?(controlfile) # Reset from fase 3 or 4 + 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 # Backup - File.copy(file, backupfile) # Enter fase 2 - File.touch(controlfile) # Enter fase 3 + File.copy(file, backupfile) # Enter phase 2 + File.touch(controlfile) # Enter phase 3 # The real thing - yield if block_given? + if block_given? + if mode.nil? + yield + else + File.open(file, mode) do |f| + yield(f) + end + end + end # Cleanup - File.delete(backupfile) # Enter fase 4 - File.delete(controlfile) # Enter fase 5 + File.delete(backupfile) # Enter phase 4 + File.delete(controlfile) # Enter phase 5 + + # Return, like File.open + + if block_given? + return nil + else + return File.open(file, (mode or "r")) + end end def self.touch(file) diff -ur rubyscript2exe-0.1.15.tar.gz/rubyscript2exe/init.rb rubyscript2exe-0.1.16.tar.gz/rubyscript2exe/init.rb --- rubyscript2exe-0.1.15.tar.gz/rubyscript2exe/init.rb 2004-04-28 22:14:55.000000000 +0200 +++ rubyscript2exe-0.1.16.tar.gz/rubyscript2exe/init.rb 2004-06-09 11:17:38.000000000 +0200 @@ -60,7 +60,8 @@ puts "Gathering files..." - copy("#{bindir}/#{rubyexe}", rubyexe) + copy("#{bindir}/ruby.exe", "ruby.exe") + copy("#{bindir}/rubyw.exe", "rubyw.exe") copy("#{bindir}/#{libruby}", libruby) copy("#{bindir}/#{msvcr71}", msvcr71) if msvcr71 move("#{oldlocation("rubyrequired.tar")}", "rubyrequired.tar") @@ -73,7 +74,8 @@ puts "Creating #{app}.exe ..." File.open("app.eee", "w") do |f| - f.puts "f #{rubyexe}" + f.puts "f ruby.exe" + f.puts "f rubyw.exe" f.puts "f #{libruby}" f.puts "f #{msvcr71}" if msvcr71 f.puts "f rubyrequired.rb" @@ -81,16 +83,16 @@ f.puts "t #{rubyexe} rubyrequired.rb --tar2rubyscript-justextract" - f.puts "c %tempdir%/#{rubyexe} -I %tempdir%/rubyrequired %tempdir%/app.rb %parms%" + f.puts "c %tempdir%/#{rubyexe} -I %tempdir%/rubyrequired %tempdir%/app.rb %quotedparms%" end if rubyw - exe = "eeew.exe" + eeeexe = "eeew.exe" else - exe = "eee.exe" + eeeexe = "eee.exe" end - execute("./eee app.eee #{app}.exe #{exe}") + execute("./eee app.eee #{app}.exe #{eeeexe}") copy("#{app}.exe", oldlocation) end Binary files rubyscript2exe-0.1.15.tar.gz/rubyscript2exe/eee.exe and rubyscript2exe-0.1.16.tar.gz/rubyscript2exe/eee.exe differ Binary files rubyscript2exe-0.1.15.tar.gz/rubyscript2exe/eeew.exe and rubyscript2exe-0.1.16.tar.gz/rubyscript2exe/eeew.exe differ