anchor.diff:      FGZHeader : TAbGzHeader;
       FIsText : Boolean;
       FCRC16 : ShortInt;
  -    FXLen  : ShortInt;
       FExtraField, FFileComment : string;
       FIncludeHeaderCrc: Boolean;
   
     protected
  -    function GetExtraField: string;
       function GetFileSystem: TAbGzFileSystem;
  -    function GetFileComment: string;
       function GetHeaderCRC: Word;
       function GetHasExtraField: Boolean;
       function GetHasFileComment: Boolean;
  
positive.code: 
  procedure TAbGzipItem.SetExtraField(const Value: string);
  begin
    FExtraField := '';
  
    if Value > '' then begin
      FExtraField := Value;
      FGzHeader.Flags := FGzHeader.Flags or AB_GZ_FLAG_FEXTRA;
    end
    else begin
      FGzHeader.Flags := FGzHeader.Flags and not AB_GZ_FLAG_FEXTRA;
    end;
  end;
  
  procedure TAbGzipItem.SetFileComment(const Value: string);
  begin
    FFileComment := '';
  
    if Value > '' then begin
      FFileComment := Value;
      FGzHeader.Flags := FGzHeader.Flags or AB_GZ_FLAG_FCOMMENT;
    end
    else begin
      FGzHeader.Flags := FGzHeader.Flags and not AB_GZ_FLAG_FCOMMENT;
    end;
  end;
  
  procedure TAbGzipItem.SetFileName(const Value: string);
  begin
    if inherited FileName <> '' then
       inherited SetFileName('');
  
    if Value > '' then begin
      inherited SetFileName(Value) { + #0};
      FGzHeader.Flags := FGzHeader.Flags or AB_GZ_FLAG_FNAME;
    end
    else begin
      FGzHeader.Flags := FGzHeader.Flags and not AB_GZ_FLAG_FNAME;
    end;
  end;
  
  procedure TAbGzipItem.SetFileSystem(const Value: TAbGzFileSystem);
  
negative.code:     try
        GzItem.CompressedSize := 0;
        GzItem.CRC32 := 0;
        GzItem.DiskFileName := ExpandFileName(FileSpec);
        GzItem.FileName := FixName(FileSpec);
        Result := GzItem;
      except
        Result := nil;
  