mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-24 13:49:30 +02:00
*fix fileopen (please OS2,EMX maintainers have a look)
git-svn-id: trunk@3858 -
This commit is contained in:
parent
8e5e1d8cdb
commit
42bd89095f
@ -410,6 +410,7 @@ asm
|
|||||||
mov eax, 7F2Bh
|
mov eax, 7F2Bh
|
||||||
call syscall
|
call syscall
|
||||||
pop ebx
|
pop ebx
|
||||||
|
//check me, should return feInvalidHandle(=-1) if fail, other negative returned value are no more errors
|
||||||
end {['eax', 'ebx', 'ecx', 'edx']};
|
end {['eax', 'ebx', 'ecx', 'edx']};
|
||||||
|
|
||||||
|
|
||||||
|
@ -419,7 +419,8 @@ begin
|
|||||||
FHandle:=FileCreate(AFileName)
|
FHandle:=FileCreate(AFileName)
|
||||||
else
|
else
|
||||||
FHAndle:=FileOpen(AFileName,Mode);
|
FHAndle:=FileOpen(AFileName,Mode);
|
||||||
If FHandle<0 then
|
|
||||||
|
If (FHandle=feInvalidHandle) then
|
||||||
If Mode=fmcreate then
|
If Mode=fmcreate then
|
||||||
raise EFCreateError.createfmt(SFCreateError,[AFileName])
|
raise EFCreateError.createfmt(SFCreateError,[AFileName])
|
||||||
else
|
else
|
||||||
@ -435,7 +436,8 @@ begin
|
|||||||
FHandle:=FileCreate(AFileName)
|
FHandle:=FileCreate(AFileName)
|
||||||
else
|
else
|
||||||
FHAndle:=FileOpen(AFileName,Mode);
|
FHAndle:=FileOpen(AFileName,Mode);
|
||||||
If FHandle<0 then
|
|
||||||
|
If (FHandle=feInvalidHandle) then
|
||||||
If Mode=fmcreate then
|
If Mode=fmcreate then
|
||||||
raise EFCreateError.createfmt(SFCreateError,[AFileName])
|
raise EFCreateError.createfmt(SFCreateError,[AFileName])
|
||||||
else
|
else
|
||||||
|
@ -68,6 +68,9 @@ Const
|
|||||||
fsFromCurrent = 1;
|
fsFromCurrent = 1;
|
||||||
fsFromEnd = 2;
|
fsFromEnd = 2;
|
||||||
|
|
||||||
|
{ File errors }
|
||||||
|
feInvalidHandle : THandle = -1; //return value on FileOpen error
|
||||||
|
|
||||||
Function FileOpen (Const FileName : string; Mode : Integer) : THandle;
|
Function FileOpen (Const FileName : string; Mode : Integer) : THandle;
|
||||||
Function FileCreate (Const FileName : String) : THandle;
|
Function FileCreate (Const FileName : String) : THandle;
|
||||||
Function FileCreate (Const FileName : String; Mode : Integer) : THandle;
|
Function FileCreate (Const FileName : String; Mode : Integer) : THandle;
|
||||||
|
@ -65,7 +65,7 @@
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
fd:=FileOpen(FileName,fmOpenRead);
|
fd:=FileOpen(FileName,fmOpenRead);
|
||||||
If (Fd>=0) then
|
If (Fd<>feInvalidHandle) then
|
||||||
try
|
try
|
||||||
Result:=FileSetDate(fd,Age);
|
Result:=FileSetDate(fd,Age);
|
||||||
finally
|
finally
|
||||||
|
@ -466,7 +466,8 @@ begin
|
|||||||
If Rc=0 then
|
If Rc=0 then
|
||||||
FileOpen:=Handle
|
FileOpen:=Handle
|
||||||
else
|
else
|
||||||
FileOpen:=-RC;
|
FileOpen:=feInvalidHandle; //FileOpen:=-RC;
|
||||||
|
//should return feInvalidHandle(=-1) if fail, other negative returned value are no more errors
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function FileCreate (const FileName: string): longint;
|
function FileCreate (const FileName: string): longint;
|
||||||
|
@ -158,6 +158,7 @@ begin
|
|||||||
result := CreateFile(@FN[1], dword(AccessMode[Mode and 3]),
|
result := CreateFile(@FN[1], dword(AccessMode[Mode and 3]),
|
||||||
dword(ShareMode[(Mode and $F0) shr 4]), nil, OPEN_EXISTING,
|
dword(ShareMode[(Mode and $F0) shr 4]), nil, OPEN_EXISTING,
|
||||||
FILE_ATTRIBUTE_NORMAL, 0);
|
FILE_ATTRIBUTE_NORMAL, 0);
|
||||||
|
//if fail api return feInvalidHandle (INVALIDE_HANDLE=feInvalidHandle=-1)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -147,6 +147,7 @@ begin
|
|||||||
result := CreateFile(fn, dword(AccessMode[Mode and 3]),
|
result := CreateFile(fn, dword(AccessMode[Mode and 3]),
|
||||||
dword(ShareMode[(Mode and $F0) shr 4]), nil, OPEN_EXISTING,
|
dword(ShareMode[(Mode and $F0) shr 4]), nil, OPEN_EXISTING,
|
||||||
FILE_ATTRIBUTE_NORMAL, 0);
|
FILE_ATTRIBUTE_NORMAL, 0);
|
||||||
|
//if fail api return feInvalidHandle (INVALIDE_HANDLE=feInvalidHandle=-1)
|
||||||
FreeMem(fn);
|
FreeMem(fn);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user