objinc.inc 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. { 2001/04/16 armin: first version for netware }
  2. {$i errno.inc}
  3. {$i nwsys.inc}
  4. FUNCTION errno : LONGINT;
  5. BEGIN
  6. errno := __get_errno_ptr^;
  7. END;
  8. FUNCTION FileOpen (Var FileName: AsciiZ; Mode: Word): THandle;
  9. VAR NWMode : longint;
  10. BEGIN
  11. NWMode:=0;
  12. if Mode=stCreate then
  13. Begin
  14. NWMode:=O_Creat;
  15. NWMode:=NWMode or O_RdWr;
  16. end
  17. else
  18. Begin
  19. Case (Mode and 3) of
  20. 0 : NWMode:=NWMode or O_RdOnly;
  21. 1 : NWMode:=NWMode or O_WrOnly;
  22. 2 : NWMode:=NWMode or O_RdWr;
  23. end;
  24. end;
  25. FileOpen:=_open (pchar(@FileName[0]),NWMode,0);
  26. If FileOpen=-1 then FileOpen:=0;
  27. DosStreamError:=Errno;
  28. END;
  29. FUNCTION FileRead (Handle: THandle; Var BufferArea; BufferLength: Sw_Word;
  30. Var BytesMoved: Sw_Word): Word;
  31. BEGIN
  32. BytesMoved:=_read (Handle,@BufferArea,BufferLength);
  33. IF BytesMoved = -1 THEN
  34. BEGIN
  35. DosStreamError:=Errno;
  36. FileRead:=Errno;
  37. END ELSE
  38. BEGIN
  39. DosStreamError:=0;
  40. FileRead:=0;
  41. END;
  42. END;
  43. FUNCTION FileWrite (Handle: THandle; Var BufferArea; BufferLength: Sw_Word;
  44. Var BytesMoved: Sw_Word): Word;
  45. BEGIN
  46. BytesMoved:=_write (Handle,@BufferArea,BufferLength);
  47. IF BytesMoved = -1 THEN
  48. BEGIN
  49. DosStreamError:=Errno;
  50. FileWrite:=Errno;
  51. END ELSE
  52. BEGIN
  53. DosStreamError:=0;
  54. FileWrite:=0;
  55. END;
  56. END;
  57. FUNCTION SetFilePos (Handle: THandle; Pos: LongInt; MoveType: Word;
  58. VAR NewPos: LongInt): Word;
  59. BEGIN
  60. NewPos:=_lseek (Handle,Pos,MoveType);
  61. IF NewPos = -1 THEN
  62. SetFilePos:=Errno
  63. ELSE
  64. SetFilePos := 0;
  65. END;
  66. FUNCTION FileClose (Handle: THandle): Word;
  67. BEGIN
  68. _Close (Handle);
  69. DosStreamError:=Errno;
  70. FileClose := Errno;
  71. END;
  72. FUNCTION SetFileSize (Handle: THandle; FileSize: LongInt): Word;
  73. BEGIN
  74. if _chsize (Handle, FileSize) = -1 then
  75. SetFileSize := Errno
  76. else
  77. SetFileSize := 0;
  78. END;