DEADSOFTWARE

ignore more log writing/creating errors
[d2df-sdl.git] / src / engine / e_log.pas
index b877db33511abbfde8f1b28c08dec9acac867130..e82bfb41149a0533db9173023bafbfe3cce249d2 100644 (file)
@@ -1,3 +1,4 @@
+{$R-}
 unit e_log;
 
 interface
@@ -36,33 +37,43 @@ begin
   if FileName = '' then Exit;
 
   Assign(LogFile, FileName);
-  if FileExists(FileName) then
-    Append(LogFile)
-  else
-    Rewrite(LogFile);
-  if FirstRecord then
-  begin
-    Writeln(LogFile, '--- Log started at '+TimeToStr(Time)+' ---');
-    FirstRecord := False;
+  try
+    if FileExists(FileName) then
+      Append(LogFile)
+    else
+      Rewrite(LogFile);
+    try
+      if FirstRecord then
+      begin
+        Writeln(LogFile, '--- Log started at '+TimeToStr(Time)+' ---');
+        FirstRecord := False;
+      end;
+      case RecordCategory of
+        MSG_FATALERROR: Prefix := '!!!';
+        MSG_WARNING:    Prefix := '!  ';
+        MSG_NOTIFY:     Prefix := '***';
+      end;
+      if WriteTime then
+        Writeln(LogFile, '['+TimeToStr(Time)+'] '+Prefix+' '+TextLine)
+      else
+        Writeln(LogFile, Prefix+' '+TextLine);
+    finally
+      Close(LogFile);
+    end;
+  except // sorry
   end;
-  case RecordCategory of
-    MSG_FATALERROR: Prefix := '!!!';
-    MSG_WARNING:    Prefix := '!  ';
-    MSG_NOTIFY:     Prefix := '***';
-  end;
-  if WriteTime then
-    Writeln(LogFile, '['+TimeToStr(Time)+'] '+Prefix+' '+TextLine)
-  else
-    Writeln(LogFile, Prefix+' '+TextLine);
-  Close(LogFile);
 end;
 
 procedure e_InitLog(fFileName: String; fWriteMode: TWriteMode);
 begin
  FileName := fFileName;
  if fWriteMode = WM_NEWFILE then
-  if FileExists(FileName) then
-   DeleteFile(FileName);
+ begin
+   try
+     if FileExists(FileName) then DeleteFile(FileName);
+   except // sorry
+   end;
+ end;
  FirstRecord := True;
 end;