diff options
author | Igor Pavlov <ipavlov@users.sourceforge.net> | 2008-05-05 04:00:00 +0400 |
---|---|---|
committer | Kornel LesiĆski <kornel@geekhood.net> | 2016-05-28 02:15:55 +0300 |
commit | 3901bf0ab88106a5b031cba7bc18d60cdebf7eef (patch) | |
tree | 808a2489abed822223b118b64e0553db80af6087 /CPP/7zip/Archive/Zip/ZipUpdate.cpp | |
parent | bd1fa36322ac27f5715433b388742893d6524516 (diff) |
4.58 beta
Diffstat (limited to 'CPP/7zip/Archive/Zip/ZipUpdate.cpp')
-rwxr-xr-x | CPP/7zip/Archive/Zip/ZipUpdate.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/CPP/7zip/Archive/Zip/ZipUpdate.cpp b/CPP/7zip/Archive/Zip/ZipUpdate.cpp index 6cfa64e2..2ec08981 100755 --- a/CPP/7zip/Archive/Zip/ZipUpdate.cpp +++ b/CPP/7zip/Archive/Zip/ZipUpdate.cpp @@ -69,12 +69,19 @@ static void SetFileHeader( item.UnPackSize = updateItem.Size; bool isDirectory; + item.ClearFlags(); + if (updateItem.NewProperties) { isDirectory = updateItem.IsDirectory; item.Name = updateItem.Name; + item.SetUtf8(updateItem.IsUtf8); item.ExternalAttributes = updateItem.Attributes; item.Time = updateItem.Time; + item.NtfsMTime = updateItem.NtfsMTime; + item.NtfsATime = updateItem.NtfsATime; + item.NtfsCTime = updateItem.NtfsCTime; + item.NtfsTimeIsDefined = updateItem.NtfsTimeIsDefined; } else isDirectory = item.IsDirectory(); @@ -86,7 +93,6 @@ static void SetFileHeader( item.ExtractVersion.HostOS = kExtractHostOS; item.InternalAttributes = 0; // test it - item.ClearFlags(); item.SetEncrypted(!isDirectory && options.PasswordIsDefined); if (isDirectory) { @@ -341,7 +347,13 @@ static HRESULT UpdateItemOldData(COutArchive &archive, // item.ExternalAttributes = updateItem.Attributes; // Test it item.Name = updateItem.Name; + item.SetUtf8(updateItem.IsUtf8); item.Time = updateItem.Time; + item.NtfsMTime = updateItem.NtfsMTime; + item.NtfsATime = updateItem.NtfsATime; + item.NtfsCTime = updateItem.NtfsCTime; + item.NtfsTimeIsDefined = updateItem.NtfsTimeIsDefined; + item.CentralExtra.RemoveUnknownSubBlocks(); item.LocalExtra.RemoveUnknownSubBlocks(); |