Browse Source

* FileGetDate, FileSetDate linux compilation

git-svn-id: trunk@47397 -
(cherry picked from commit 3ea339400e82ce78d63e4e329f79667baf76f33e)
ondrej 4 years ago
parent
commit
bc7932eb67
3 changed files with 17 additions and 15 deletions
  1. 4 4
      rtl/objpas/sysutils/filutil.inc
  2. 2 2
      rtl/objpas/sysutils/filutilh.inc
  3. 11 9
      rtl/win/sysutils.pp

+ 4 - 4
rtl/objpas/sysutils/filutil.inc

@@ -860,14 +860,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;
 
 

+ 2 - 2
rtl/objpas/sysutils/filutilh.inc

@@ -244,8 +244,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;
 

+ 11 - 9
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}