DEADSOFTWARE

fix file rewrite on win32
[d2df-editor.git] / src / editor / g_resources.pas
index 6a5dbeedd227e3c8da2cc61bd07e6828342b6028..880b7275ed6ded678f95139c45db3fb15cc44dcd 100644 (file)
@@ -52,7 +52,11 @@ implementation
     f.RemoveResource(section, name);
     f.AddResource(data, len, name, section);
     if FileExists(wad) then
-      ASSERT(RenameFile(wad, wad + '.bak'));
+    begin
+      if FileExists(wad + '.bak') then
+        ASSERT(DeleteFile(wad + '.bak'));
+      ASSERT(RenameFile(wad, wad + '.bak'))
+    end;
     f.SaveTo(wad);
     f.Free;
     res := 0
@@ -115,7 +119,11 @@ implementation
     ts.Free;
 
     if FileExists(wad) then
-      ASSERT(RenameFile(wad, wad + '.bak'));
+    begin
+      if FileExists(wad + '.bak') then
+        ASSERT(DeleteFile(wad + '.bak'));
+      ASSERT(RenameFile(wad, wad + '.bak'))
+    end;
     ASSERT(RenameFile(tmp, wad));
     res := 0
   end;
@@ -201,7 +209,11 @@ implementation
     ts.Free;
 
     if FileExists(wad) then
-      ASSERT(RenameFile(wad, wad + '.bak'));
+    begin
+      if FileExists(wad + '.bak') then
+        ASSERT(DeleteFile(wad + '.bak'));
+      ASSERT(RenameFile(wad, wad + '.bak'))
+    end;
     ASSERT(RenameFile(tmp, wad));
     res := 0
   end;
@@ -251,6 +263,7 @@ implementation
       begin
         len := stream.Size;
         GetMem(data, len);
+        ASSERT(data <> nil);
         //stream.ReadBuffer(data, len); (* leads to segfault *)
         for i := 0 to len - 1 do
           data[i] := stream.ReadByte();
@@ -284,6 +297,7 @@ implementation
           begin
             len := stream1.Size;
             GetMem(data, len);
+            ASSERT(data <> nil);
             //stream1.ReadBuffer(data, len); (* leads to segfault *)
             for i := 0 to len - 1 do
               data[i] := stream1.ReadByte();