*fix fileopen (please OS2,EMX maintainers have a look)

git-svn-id: trunk@3858 -
This commit is contained in:
oro06 2006-06-13 08:15:35 +00:00
parent 8e5e1d8cdb
commit 42bd89095f
7 changed files with 13 additions and 4 deletions

View File

@ -410,6 +410,7 @@ asm
mov eax, 7F2Bh
call syscall
pop ebx
//check me, should return feInvalidHandle(=-1) if fail, other negative returned value are no more errors
end {['eax', 'ebx', 'ecx', 'edx']};

View File

@ -419,7 +419,8 @@ begin
FHandle:=FileCreate(AFileName)
else
FHAndle:=FileOpen(AFileName,Mode);
If FHandle<0 then
If (FHandle=feInvalidHandle) then
If Mode=fmcreate then
raise EFCreateError.createfmt(SFCreateError,[AFileName])
else
@ -435,7 +436,8 @@ begin
FHandle:=FileCreate(AFileName)
else
FHAndle:=FileOpen(AFileName,Mode);
If FHandle<0 then
If (FHandle=feInvalidHandle) then
If Mode=fmcreate then
raise EFCreateError.createfmt(SFCreateError,[AFileName])
else

View File

@ -68,6 +68,9 @@ Const
fsFromCurrent = 1;
fsFromEnd = 2;
{ File errors }
feInvalidHandle : THandle = -1; //return value on FileOpen error
Function FileOpen (Const FileName : string; Mode : Integer) : THandle;
Function FileCreate (Const FileName : String) : THandle;
Function FileCreate (Const FileName : String; Mode : Integer) : THandle;

View File

@ -65,7 +65,7 @@
begin
fd:=FileOpen(FileName,fmOpenRead);
If (Fd>=0) then
If (Fd<>feInvalidHandle) then
try
Result:=FileSetDate(fd,Age);
finally

View File

@ -466,7 +466,8 @@ begin
If Rc=0 then
FileOpen:=Handle
else
FileOpen:=-RC;
FileOpen:=feInvalidHandle; //FileOpen:=-RC;
//should return feInvalidHandle(=-1) if fail, other negative returned value are no more errors
end;
function FileCreate (const FileName: string): longint;

View File

@ -158,6 +158,7 @@ begin
result := CreateFile(@FN[1], dword(AccessMode[Mode and 3]),
dword(ShareMode[(Mode and $F0) shr 4]), nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
//if fail api return feInvalidHandle (INVALIDE_HANDLE=feInvalidHandle=-1)
end;

View File

@ -147,6 +147,7 @@ begin
result := CreateFile(fn, dword(AccessMode[Mode and 3]),
dword(ShareMode[(Mode and $F0) shr 4]), nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
//if fail api return feInvalidHandle (INVALIDE_HANDLE=feInvalidHandle=-1)
FreeMem(fn);
end;