+ Fixed such that TDosStream functions correctly.

This commit is contained in:
michael 1998-05-22 15:41:12 +00:00
parent ed8a63512c
commit 761c27abbc

View File

@ -11,17 +11,20 @@ Var errno : Longint;
FUNCTION FileOpen (Var FileName: AsciiZ; Mode: Word): THandle;
Var LinuxMode : Word;
Var LinuxMode : longint;
BEGIN
LinuxMode:=0;
if (Mode and stCreate)=stCreate then LinuxMode:=Open_Creat;
if (Mode and stOpenRead)=stOpenRead then LinuxMode:=LinuxMode or Open_RdOnly;
If (Mode and stOpenWrite)=stOpenWrite then LinuxMode:=LinuxMode or Open_WrOnly;
if (Mode and stOpen)=stOpen then LinuxMode:=LinuxMode or Open_RdWr;
FileOpen:=SYS_Open (pchar(@FileName[0]),438 {666 octal},LinuxMode);
if (Mode and stCreate)=stCreate then
LinuxMode:=Open_Creat;
Case (Mode and 3) of
0 : LinuxMode:=LinuxMode or Open_RdOnly;
1 : LinuxMode:=LinuxMode or Open_WrOnly;
2 : LinuxMode:=LinuxMode or Open_RdWr;
end;
FileOpen:=SYS_Open (pchar(@FileName[0]),LinuxMode,438 {666 octal});
If FileOpen=-1 then FileOpen:=0;
DosStreamError:=Errno;
FileOpen:=Errno;
END;
FUNCTION FileRead (Handle: THandle; Var BufferArea; BufferLength: Sw_Word;
@ -29,7 +32,7 @@ Var BytesMoved: Sw_Word): Word;
BEGIN
BytesMoved:=Sys_read (Handle,Pchar(@BufferArea),BufferLength);
DosStreamError:=Errno;
FileRead := Errno;
FileRead:=Errno;
END;
FUNCTION FileWrite (Handle: THandle; Var BufferArea; BufferLength: Sw_Word;
@ -65,7 +68,7 @@ Var sr : syscallregs;
BEGIN
sr.reg2:=Handle;
sr.reg3:=FileSize;
Syscall(syscall_nr_Truncate,sr);
Syscall(syscall_nr_fTruncate,sr);
If Errno=0 then
SetFileSize:=0
else