Zipper: fixed UTF-8 encoded names

This commit is contained in:
emeric
2020-08-27 13:44:16 +02:00
parent a785847b9c
commit d652a6791f
2 changed files with 5 additions and 4 deletions
+4 -3
View File
@@ -40,7 +40,8 @@ namespace Zip
enum GeneralPurposeFlag : std::uint16_t enum GeneralPurposeFlag : std::uint16_t
{ {
UseDataDescriptor = 1 << 3, UseDataDescriptor = 1 << 3,
LanguageEncoding = 1 << 11,
}; };
enum CompressionMethod : std::uint16_t enum CompressionMethod : std::uint16_t
@@ -315,7 +316,7 @@ namespace Zip
header.setSignature(); header.setSignature();
header.setVersionNeededToExtract(1, 0); header.setVersionNeededToExtract(1, 0);
header.setGeneralPurposeFlags(0); header.setGeneralPurposeFlags(ZipHeader::GeneralPurposeFlag::LanguageEncoding);
header.setCrc32UncompressedData(_currentFile->second.fileCrc32); header.setCrc32UncompressedData(_currentFile->second.fileCrc32);
switch (_compMethod) switch (_compMethod)
{ {
@@ -422,7 +423,7 @@ namespace Zip
header.setSignature(); header.setSignature();
header.setVersionMadeBy(2, 0); header.setVersionMadeBy(2, 0);
header.setVersionNeededToExtract(1, 0); header.setVersionNeededToExtract(1, 0);
header.setGeneralPurposeFlags(0); header.setGeneralPurposeFlags(ZipHeader::GeneralPurposeFlag::LanguageEncoding);
switch (_compMethod) switch (_compMethod)
{ {
case CompressionMethod::NoCompression: case CompressionMethod::NoCompression:
+1 -1
View File
@@ -58,7 +58,7 @@ int main(int argc, char* argv[])
while (!zipper.isComplete()) while (!zipper.isComplete())
{ {
std::array<std::byte, 65536> buffer; std::array<std::byte, 1000000> buffer;
std::cout << "Call" << std::endl; std::cout << "Call" << std::endl;
std::size_t nbWrittenBytes {zipper.writeSome(buffer.data(), buffer.size())}; std::size_t nbWrittenBytes {zipper.writeSome(buffer.data(), buffer.size())};