anchor.diff:                          { 257-264, $101-108, identifier, usually 'ustar'#00'00' }
       UsrName : array [0..AB_TAR_TUSRNAMELEN-1] of Byte;
                           { 265-296, $109-128, username, null terminated ASCII string }
  -    GrpName : array [0..AB_TAR_TGRPNAMELEN-1] of AnsiChar;
  +    GrpName : array [0..AB_TAR_TGRPNAMELEN-1] of Byte;
                           { 297-328, $129-148, groupname, null terminated ASCII string }
       DevMajor: Arr8;     { 329-336, $149-150, major device ID (UNIX style, ASCII coded Octal) }
       DevMinor: Arr8;     { 337-344, $151-158, minor device ID (UNIX style, ASCII coded Octal) }
  
positive.code:     FTarHeaderList.Insert(I+NumHeaders, PHeader);{ Insert: Inserts at base index }
      FTarHeaderTypeList.Insert(I+NumHeaders, Pointer(MD_DATA_HEADER));{ We are only adding MD Data headers here }
      FillChar(PHeader^, AB_TAR_RECORDSIZE, #0); { Zero the whole block }
      Move(TempStr[1], PHeader^, ExtraName-1); { The string is null terminated in the header }
    end
    else { We already copied the entire name, but it must be null terminated }
    begin
  
negative.code:   Strm.Position := StartPos;
  end;
  
  function PadString(const S : string; Places : Integer) : string;
  {
  Pads a string (S) with one right space and as many left spaces as
  needed to fill Places
  