Browse Source

Fix for bug ID #33150

git-svn-id: trunk@38304 -
michael 7 years ago
parent
commit
6df643f433
1 changed files with 8 additions and 4 deletions
  1. 8 4
      packages/paszlib/src/zipper.pp

+ 8 - 4
packages/paszlib/src/zipper.pp

@@ -1850,7 +1850,8 @@ Var
   ZVersionReqd : Word;
   ZBitFlag : Word;
   ZipStream : TStream;
-  TmpFileName : String;
+  TmpFileName, Start : String;
+  I : Integer;
 
 Begin
   OpenInput(Item);
@@ -1860,9 +1861,12 @@ Begin
       ZipStream:=TMemoryStream.Create
     else
       begin
-      TmpFileName:=ChangeFileExt(FFileName,'.tmp');
-      if TmpFileName=FFileName then
-        TmpFileName:=TmpFileName+'.tmp';
+      Start := ChangeFileExt(FFileName, '');
+      I := 0;
+      repeat
+        TmpFileName := Format('%s%.5d.tmp', [Start, I]);
+        Inc(I);
+      until not FileExists(TmpFileName);
       ZipStream:=TFileStream.Create(TmpFileName,fmCreate);
       end;
     Try