From 3ea339400e82ce78d63e4e329f79667baf76f33e Mon Sep 17 00:00:00 2001 From: ondrej Date: Thu, 12 Nov 2020 13:55:01 +0000 Subject: [PATCH] * FileGetDate, FileSetDate linux compilation git-svn-id: trunk@47397 - --- rtl/objpas/sysutils/filutil.inc | 8 ++++---- rtl/objpas/sysutils/filutilh.inc | 4 ++-- rtl/win/sysutils.pp | 20 +++++++++++--------- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/rtl/objpas/sysutils/filutil.inc b/rtl/objpas/sysutils/filutil.inc index 22773c458e..234da16d16 100644 --- a/rtl/objpas/sysutils/filutil.inc +++ b/rtl/objpas/sysutils/filutil.inc @@ -843,14 +843,14 @@ begin FileDateTimeUTC:=FileDateToUniversal(aDate); end; -Function FileSetDate (Handle : THandle; const Age: TDateTime) : Boolean; +Function FileSetDate (Handle : THandle; const Age: TDateTime) : Longint; begin - Result := FileSetDate(DateTimeToFileDate(Age)); + Result := FileSetDate(Handle,DateTimeToFileDate(Age)); end; -Function FileSetDateUTC (Handle : THandle; const AgeUTC: TDateTime) : Boolean; +Function FileSetDateUTC (Handle : THandle; const AgeUTC: TDateTime) : Longint; begin - Result := FileSetDate(DateTimeToFileDate(AgeUTC)); + Result := FileSetDate(Handle,UniversalToFileDate(AgeUTC)); end; diff --git a/rtl/objpas/sysutils/filutilh.inc b/rtl/objpas/sysutils/filutilh.inc index 8375169b46..7d36715361 100644 --- a/rtl/objpas/sysutils/filutilh.inc +++ b/rtl/objpas/sysutils/filutilh.inc @@ -235,8 +235,8 @@ Function FileGetDate (Handle : THandle) : Int64; Function FileGetDate (Handle : THandle; out FileDateTime: TDateTime) : Boolean; Function FileGetDateUTC (Handle : THandle; out FileDateTimeUTC: TDateTime) : Boolean; Function FileSetDate (Handle : THandle;Age : Int64) : Longint; -Function FileSetDate (Handle : THandle; const Age: TDateTime) : Boolean; -Function FileSetDateUTC (Handle : THandle; const AgeUTC: TDateTime) : Boolean; +Function FileSetDate (Handle : THandle; const Age: TDateTime) : Longint; +Function FileSetDateUTC (Handle : THandle; const AgeUTC: TDateTime) : Longint; Function GetFileHandle(var f : File):THandle; Function GetFileHandle(var f : Text):THandle; diff --git a/rtl/win/sysutils.pp b/rtl/win/sysutils.pp index b33457d52e..1a511fab51 100644 --- a/rtl/win/sysutils.pp +++ b/rtl/win/sysutils.pp @@ -694,28 +694,30 @@ begin Result := GetLastError; end; -Function FileSetDate (Handle : THandle; const Age: TDateTime) : Boolean; +Function FileSetDate (Handle : THandle; const Age: TDateTime) : Longint; var FT: TFiletime; LT: TFiletime; ST: TSystemTime; begin DateTimeToSystemTime(Age,ST); - Result := - SystemTimeToFileTime(ST,LT) - and LocalFileTimeToFileTime(LT,FT) - and SetFileTime(Handle,nil,nil,@FT); + if SystemTimeToFileTime(ST,LT) and LocalFileTimeToFileTime(LT,FT) + and SetFileTime(Handle,nil,nil,@FT) then + Result:=0 + else + Result:=GetLastError; end; -Function FileSetDateUTC (Handle : THandle; const AgeUTC: TDateTime) : Boolean; +Function FileSetDateUTC (Handle : THandle; const AgeUTC: TDateTime) : Longint; var FT: TFiletime; ST: TSystemTime; begin DateTimeToSystemTime(AgeUTC,ST); - Result := - SystemTimeToFileTime(ST,FT) and - SetFileTime(Handle,nil,nil,@FT); + if SystemTimeToFileTime(ST,FT) and SetFileTime(Handle,nil,nil,@FT) then + Result:=0 + else + Result:=GetLastError; end; {$IFDEF OS_FILESETDATEBYNAME}