From 2199f2a65e75b9a28279f02cb7f72b81869ce606 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Balogh?= Date: Tue, 27 Dec 2016 04:17:27 +0000 Subject: [PATCH] atari: implemented some more bits of sysutils git-svn-id: trunk@35200 - --- rtl/atari/sysutils.pp | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/rtl/atari/sysutils.pp b/rtl/atari/sysutils.pp index 9d23dfa99e..e35ac32c6e 100644 --- a/rtl/atari/sysutils.pp +++ b/rtl/atari/sysutils.pp @@ -217,8 +217,15 @@ end; function FileExists (const FileName : RawByteString) : Boolean; +var + Attr: longint; begin - result:=false; + FileExists:=false; + Attr:=FileGetAttr(FileName); + if Attr < 0 then + exit; + + result:=(Attr and (faVolumeID or faDirectory)) = 0; end; @@ -317,13 +324,18 @@ end; Function FileGetAttr (Const FileName : RawByteString) : Longint; begin - FileGetAttr := -1 + FileGetAttr:=gemdos_fattrib(pchar(FileName),0,0); end; Function FileSetAttr (Const Filename : RawByteString; Attr: longint) : Longint; begin - FileSetAttr := -1; + FileSetAttr:=gemdos_fattrib(pchar(FileName),1,Attr and faAnyFile); + + if FileSetAttr < -1 then + FileSetAttr:=-1 + else + FileSetAttr:=0; end; @@ -361,8 +373,15 @@ begin end; function DirectoryExists(const Directory: RawByteString): Boolean; +var + Attr: longint; begin - result:=false; + DirectoryExists:=false; + Attr:=FileGetAttr(Directory); + if Attr < 0 then + exit; + + result:=(Attr and faDirectory) <> 0; end;