{ 2001/04/16 armin: first version for netware } {$i errno.inc} {$i nwsys.inc} FUNCTION errno : LONGINT; BEGIN errno := __get_errno_ptr^; END; FUNCTION FileOpen (Var FileName: AsciiZ; Mode: Word): THandle; VAR NWMode : longint; BEGIN NWMode:=0; if Mode=stCreate then Begin NWMode:=O_Creat; NWMode:=NWMode or O_RdWr; end else Begin Case (Mode and 3) of 0 : NWMode:=NWMode or O_RdOnly; 1 : NWMode:=NWMode or O_WrOnly; 2 : NWMode:=NWMode or O_RdWr; end; end; FileOpen:=_open (pchar(@FileName[0]),NWMode,0); If FileOpen=-1 then FileOpen:=0; DosStreamError:=Errno; END; FUNCTION FileRead (Handle: THandle; Var BufferArea; BufferLength: Sw_Word; Var BytesMoved: Sw_Word): Word; BEGIN BytesMoved:=_read (Handle,@BufferArea,BufferLength); IF BytesMoved = -1 THEN BEGIN DosStreamError:=Errno; FileRead:=Errno; END ELSE BEGIN DosStreamError:=0; FileRead:=0; END; END; FUNCTION FileWrite (Handle: THandle; Var BufferArea; BufferLength: Sw_Word; Var BytesMoved: Sw_Word): Word; BEGIN BytesMoved:=_write (Handle,@BufferArea,BufferLength); IF BytesMoved = -1 THEN BEGIN DosStreamError:=Errno; FileWrite:=Errno; END ELSE BEGIN DosStreamError:=0; FileWrite:=0; END; END; FUNCTION SetFilePos (Handle: THandle; Pos: LongInt; MoveType: Word; VAR NewPos: LongInt): Word; BEGIN NewPos:=_lseek (Handle,Pos,MoveType); IF NewPos = -1 THEN SetFilePos:=Errno ELSE SetFilePos := 0; END; FUNCTION FileClose (Handle: THandle): Word; BEGIN _Close (Handle); DosStreamError:=Errno; FileClose := Errno; END; FUNCTION SetFileSize (Handle: THandle; FileSize: LongInt): Word; BEGIN if _chsize (Handle, FileSize) = -1 then SetFileSize := Errno else SetFileSize := 0; END;