浏览代码

FIX: Extract files with zero UNIX time

Alexander Koblov 2 年之前
父节点
当前提交
49f29d47a3
共有 1 个文件被更改,包括 7 次插入6 次删除
  1. 7 6
      plugins/wcx/zip/src/fparchive/abutils.pas

+ 7 - 6
plugins/wcx/zip/src/fparchive/abutils.pas

@@ -321,8 +321,8 @@ const
   MinutesInDay    =  1440;  {Number of minutes in a day}
 
 
-  function AbUnixTimeToLocalDateTime(UnixTime : LongInt) : TDateTime;
-  function AbLocalDateTimeToUnixTime(DateTime : TDateTime) : LongInt;
+  function AbUnixTimeToLocalDateTime(UnixTime : Int64) : TDateTime;
+  function AbLocalDateTimeToUnixTime(DateTime : TDateTime) : Int64;
 
   function AbDosFileDateToDateTime(FileDate, FileTime : Word) : TDateTime;
   function AbDateTimeToDosFileDate(Value : TDateTime) : LongInt;
@@ -376,6 +376,7 @@ uses
   AbExcept,
   DCOSUtils,
   DCStrUtils,
+  DCBasicTypes,
   DCDateTimeUtils;
 
 (*
@@ -1038,7 +1039,7 @@ Result := Result * SecondsInMinute;
 end;
 {$ENDIF}
 { -------------------------------------------------------------------------- }
-function AbUnixTimeToLocalDateTime(UnixTime : LongInt) : TDateTime;
+function AbUnixTimeToLocalDateTime(UnixTime : Int64) : TDateTime;
 { convert UTC unix date to Delphi TDateTime in local timezone }
 {$IFDEF MSWINDOWS}
 var
@@ -1060,12 +1061,12 @@ begin
 {$ENDIF}
 {$IFDEF UNIX}
 begin
-  Result := FileDateToDateTime(UnixTime);
+  Result := UnixFileTimeToDateTime(TUnixFileTime(UnixTime));
 {$ENDIF}
 end;
 
 { -------------------------------------------------------------------------- }
-function AbLocalDateTimeToUnixTime(DateTime : TDateTime) : LongInt;
+function AbLocalDateTimeToUnixTime(DateTime : TDateTime) : Int64;
 { convert local Delphi TDateTime to UTC unix date }
 {$IFDEF MSWINDOWS}
 var
@@ -1085,7 +1086,7 @@ begin
 {$ENDIF}
 {$IFDEF UNIX}
 begin
-  Result := DateTimeToFileDate(DateTime);
+  Result := Int64(DateTimeToUnixFileTime(DateTime));
 {$ENDIF}
 end;
 { -------------------------------------------------------------------------- }