turns out IOResult is actually IOResult() - a function that clears its result after each call
authorsheepluva
Sun, 30 Nov 2014 23:32:55 +0100
changeset 10595 6781190b053d
parent 10594 7a61f321f399
child 10596 75b5b674387a
turns out IOResult is actually IOResult() - a function that clears its result after each call
hedgewars/uUtils.pas
--- a/hedgewars/uUtils.pas	Sun Nov 30 22:48:28 2014 +0100
+++ b/hedgewars/uUtils.pas	Sun Nov 30 23:32:55 2014 +0100
@@ -514,6 +514,7 @@
 {$IFDEF DEBUGFILE}
 var logfileBase: shortstring;
     i: LongInt;
+    rwfailed: boolean;
 {$ENDIF}
 begin
 {$IFDEF DEBUGFILE}
@@ -538,6 +539,7 @@
     InitCriticalSection(logMutex);
 {$ENDIF}
 {$I-}
+    rwfailed:= false;
     if (length(UserPathPrefix) > 0) then
         begin
         {$IFNDEF PAS2C}
@@ -551,7 +553,8 @@
             begin
             assign(logFile, shortstring(UserPathPrefix) + '/Logs/' + logfileBase + inttostr(i) + '.log');
             Rewrite(logFile);
-            if IOResult = 0 then
+            rwfailed:= (IOResult() <> 0);
+            if (not rwfailed) then
                 break;
             inc(i)
             end;
@@ -559,7 +562,7 @@
 
 {$IFNDEF PAS2C}
     // if everything fails, write to stderr
-    if (length(UserPathPrefix) = 0) or (IOResult <> 0) then
+    if (length(UserPathPrefix) = 0) or (rwfailed) then
         logFile:= stderr;
 {$ENDIF}
 {$I+}