diff --git a/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs b/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs index 572108f0f..6986c7ec3 100644 --- a/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs +++ b/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs @@ -526,7 +526,7 @@ public int HostSystem set { - versionMadeBy &= 0xff; + versionMadeBy &= 0x00ff; versionMadeBy |= (ushort)((value & 0xff) << 8); } } diff --git a/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs b/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs index 0db9cc7f0..e82c6ce2f 100644 --- a/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs +++ b/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs @@ -428,7 +428,7 @@ public ZipFile(string name) public ZipFile(FileStream file) : this(file, false) { - + } /// @@ -489,7 +489,7 @@ public ZipFile(FileStream file, bool leaveOpen) public ZipFile(Stream stream) : this(stream, false) { - + } /// @@ -2157,7 +2157,7 @@ private int WriteCentralDirectoryHeader(ZipEntry entry) WriteLEInt(ZipConstants.CentralHeaderSignature); // Version made by - WriteLEShort(ZipConstants.VersionMadeBy); + WriteLEShort((entry.HostSystem << 8) | entry.VersionMadeBy); // Version required to extract WriteLEShort(entry.Version); diff --git a/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs b/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs index ab711d19b..c3dd31af2 100644 --- a/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs +++ b/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs @@ -750,7 +750,7 @@ public override void Finish() foreach (ZipEntry entry in entries) { WriteLeInt(ZipConstants.CentralHeaderSignature); - WriteLeShort(ZipConstants.VersionMadeBy); + WriteLeShort((entry.HostSystem << 8) | entry.VersionMadeBy); WriteLeShort(entry.Version); WriteLeShort(entry.Flags); WriteLeShort((short)entry.CompressionMethodForHeader);