diff -ur rubyscript2exe-0.1.10.tar.gz/rubyscript2exe/eee.pas rubyscript2exe-0.1.11.tar.gz/rubyscript2exe/eee.pas
--- rubyscript2exe-0.1.10.tar.gz/rubyscript2exe/eee.pas 2004-03-15 22:31:54.000000000 +0100
+++ rubyscript2exe-0.1.11.tar.gz/rubyscript2exe/eee.pas 2004-02-16 22:00:19.000000000 +0100
@@ -31,7 +31,6 @@
s : string[255];
c : string[255];
p : string[255];
- b : array[0..10000000] of byte;
h : header;
t : tail;
teller : longint;
@@ -87,6 +86,72 @@
end;
+procedure bufferxor(var b: array of byte);
+
+var
+ i : longint;
+
+begin
+
+ for i := 0 to sizeof(b)-1 do begin
+ b[i] := 123 xor b[i];
+ end;
+
+end;
+
+
+procedure blockeat(var infile: file; inlength: longint);
+
+var
+ b : array[0..99999] of byte;
+ l : longint;
+ c : longint;
+ n : longint;
+
+begin
+
+ c := trunc(inlength/sizeof(b));
+
+ while (c >= 0) do begin
+ if (c = 0) then l := inlength-(trunc(inlength/sizeof(b))*sizeof(b))
+ else l := sizeof(b);
+
+ blockread(infile, b, l, n);
+
+ dec(c);
+ end;
+
+end;
+
+
+procedure blockcopy(var infile: file; var outfile: file; inlength: longint; encrypt: boolean);
+
+var
+ b : array[0..99999] of byte;
+ l : longint;
+ c : longint;
+ n : longint;
+
+begin
+
+ c := trunc(inlength/sizeof(b));
+
+ while (c >= 0) do begin
+ if (c = 0) then l := inlength-(trunc(inlength/sizeof(b))*sizeof(b))
+ else l := sizeof(b);
+
+ blockread(infile, b, l, n);
+ if (encrypt) then begin
+ bufferxor(b);
+ end;
+ blockwrite(outfile, b, n);
+
+ dec(c);
+ end;
+
+end;
+
+
procedure pakin;
begin
@@ -100,8 +165,8 @@
if (paramcount > 2) then assign(infile, paramstr(3))
else assign(infile, paramstr(0));
reset(infile, 1);
- blockread(infile, b, sizeof(b), t.length);
- blockwrite(outfile, b, t.length);
+ t.length := filesize(infile);
+ blockcopy(infile, outfile, t.length, false);
close(infile);
t.number := 0;
@@ -122,11 +187,9 @@
assign(infile, h.tekst);
reset(infile, 1);
h.length := filesize(infile);
- blockread(infile, b, sizeof(b), h.length);
- close(infile);
-
blockwrite(outfile, h, sizeof(h));
- blockwrite(outfile, b, h.length);
+ blockcopy(infile, outfile, h.length, true);
+ close(infile);
end;
if (klasse = ´c´) then begin
@@ -181,7 +244,7 @@
assign(infile, paramstr(0));
reset(infile, 1);
- blockread(infile, b, t.length);
+ blockeat(infile, t.length);
try
@@ -208,8 +271,7 @@
assign(outfile, workdir + ´\´ + h.tekst);
rewrite(outfile, 1);
- blockread(infile, b, h.length);
- blockwrite(outfile, b, h.length);
+ blockcopy(infile, outfile, h.length, true);
close(outfile);
end;
@@ -263,7 +325,7 @@
assign(infile, paramstr(0));
reset(infile, 1);
- blockread(infile, b, filesize(infile)-sizeof(t));
+ blockeat(infile, filesize(infile)-sizeof(t));
blockread(infile, t, sizeof(t));
close(infile);
Binary files rubyscript2exe-0.1.10.tar.gz/rubyscript2exe/eee.exe and rubyscript2exe-0.1.11.tar.gz/rubyscript2exe/eee.exe differ
Binary files rubyscript2exe-0.1.10.tar.gz/rubyscript2exe/eeew.exe and rubyscript2exe-0.1.11.tar.gz/rubyscript2exe/eeew.exe differ