anchor.diff:      ModTime    : Int64;    { Last time of Modification, in UnixTime }
       ChkSumPass : Boolean;  { Header Check sum found to be good }
       LinkFlag   : AnsiChar; { Link Flag, Echos the actual File Type of this Item. }
  -    ItemType   : TarItemType; { Item Type Assigned from LinkFlag Header Types. }
  +    ItemType   : TAbTarItemType; { Item Type Assigned from LinkFlag Header Types. }
       LinkName   : string;   { Link Name }
       Magic      : AnsiString;   { Magic value }
       Version    : Integer;  { Version Number }
  
positive.code:   if FTarItem.ArchiveFormat <> UNKNOWN_FORMAT then
      Exit;{ We have already set the format. }
    { In the previous header parsing if pax headers are detected the format is changed }
    { Also if gnu headers it is defined as a GNU format. }
  
    { The final index is the Item index that is the header we parse for now }
    { These Detections are referenced from the GNU Tar. }
    if(PTarHeader.Magic.value = AB_TAR_MAGIC_VAL) then
    begin { We have one of three types, STAR_FORMAT, USTAR_FORMAT, POSIX_FORMAT }
      { This compare is ported from the GNU Tar: Comment out for now... }
  {    if(PTarHeader.star.Prefix[130] = #00) and
        (PTarHeader.star.Atime[0] in ['0'..'7']) and
        (PTarHeader.star.Atime[11] = #20) and
        (PTarHeader.star.Ctime[0]in ['0'..'7']) and
        (PTarHeader.star.Ctime[11] = #20) then
        begin
        FTarItme.ArchiveType := STAR_FORMAT;
      end }
      { else if } { POSIX uses the existance of x headers }
  
negative.code: 
    { add to unix second count }
    UT := UT + AbDateTimeToUnixTime(T);
  
    SetModTime(UT);
  end;
  
  procedure TAbTarItem.SetLastModTimeAsDateTime(const Value: TDateTime);
  begin
    // TAR stores always Unix time.
    SetModTime(AbDateTimeToUnixTime(Value));    // also updates headers
  end;
  
  procedure TAbTarItem.SetLinkFlag(Value: AnsiChar);
  