|
@@ -56,14 +56,20 @@ BEGIN
|
|
|
END;
|
|
|
|
|
|
FUNCTION SetFileSize (Handle: THandle; FileSize: LongInt): Word;
|
|
|
+
|
|
|
+Var sr : syscallregs;
|
|
|
{$IFDEF DOSSETFILE1}
|
|
|
-VAR Actual, Buf: LongInt;
|
|
|
-{$ENDIF}
|
|
|
+ Actual, Buf: LongInt;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
BEGIN
|
|
|
- if Sys_Truncate(Handle,FileSize)=0 then
|
|
|
- SetFileSize:=0
|
|
|
+ sr.reg2:=Handle;
|
|
|
+ sr.reg3:=FileSize;
|
|
|
+ Syscall(syscall_nr_Truncate,sr);
|
|
|
+ If Errno=0 then
|
|
|
+ SetFileSize:=0
|
|
|
else
|
|
|
- SetFileSize:=103;
|
|
|
+ SetFileSize:=103;
|
|
|
{$IFDEF DOSSETFILE1}
|
|
|
If (Actual = FileSize) Then Begin { No position error }
|
|
|
Actual := FileWrite(Handle, Pointer(@Buf), 0,Actual); { Truncate the file }
|