anchor.diff:      FFileName := string(UnicodeName);
     end
     {$IFDEF MSWINDOWS}
  -  else if (GetACP <> GetOEMCP) and ((Hi(VersionMadeBy) = 0) or IsOEM(FItemInfo.FileName)) then begin
  +  else if (GetACP <> GetOEMCP) and ((HostOS = hosDOS) or IsOEM(FItemInfo.FileName)) then begin
       SetLength(FFileName, Length(FItemInfo.FileName));
       OemToCharBuff(PAnsiChar(FItemInfo.FileName), PChar(FFileName), Length(FFileName));
     end
  
positive.code:   inherited SetFileName(Value);
    {$IFDEF MSWINDOWS}
    FItemInfo.IsUTF8 := False;
    VersionMadeBy := Low(VersionMadeBy);
    if TryEncode(Value, CP_OEMCP, False, AnsiName) then
      {no-op}
    else if (GetACP <> GetOEMCP) and TryEncode(Value, CP_ACP, False, AnsiName) then
      VersionMadeBy := VersionMadeBy or $0B00
    else if TryEncode(Value, CP_OEMCP, True, AnsiName) then
      {no-op}
    else if (GetACP <> GetOEMCP) and TryEncode(Value, CP_ACP, True, AnsiName) then
      VersionMadeBy := VersionMadeBy or $0B00
    else
      FItemInfo.IsUTF8 := True;
    if FItemInfo.IsUTF8 then
  
negative.code: procedure TAbZipItem.SetGeneralPurposeBitFlag( Value : Word );
  begin
    FItemInfo.GeneralPurposeBitFlag := Value;
  end;
  { -------------------------------------------------------------------------- }
  procedure TAbZipItem.SetHostOS( Value : TAbZipHostOS );
  begin
    FItemInfo.VersionMadeBy := Low(FItemInfo.VersionMadeBy) or
      Word(Ord(Value)) shl 8;
  end;
  { -------------------------------------------------------------------------- }
  procedure TAbZipItem.SetInternalFileAttributes( Value : Word );
  