"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "CPP/7zip/Archive/Wim/WimHandlerOut.cpp" between
p7zip_15.14.1_src_all.tar.gz and p7zip_16.02_src_all.tar.gz

About: p7zip is a command-line file archiver with a high compression ratio (a port of the Windows program 7za.exe).

WimHandlerOut.cpp  (p7zip_15.14.1_src_all):WimHandlerOut.cpp  (p7zip_16.02_src_all)
skipping to change at line 1317 skipping to change at line 1317
if (isUpdate) if (isUpdate)
{ {
const CHeader &srcHeader = _volumes[1].Header; const CHeader &srcHeader = _volumes[1].Header;
header.Flags = srcHeader.Flags; header.Flags = srcHeader.Flags;
header.Version = srcHeader.Version; header.Version = srcHeader.Version;
header.ChunkSize = srcHeader.ChunkSize; header.ChunkSize = srcHeader.ChunkSize;
header.ChunkSizeBits = srcHeader.ChunkSizeBits; header.ChunkSizeBits = srcHeader.ChunkSizeBits;
} }
Byte buf[kHeaderSizeMax]; {
header.WriteTo(buf); Byte buf[kHeaderSizeMax];
RINOK(WriteStream(outStream, buf, kHeaderSizeMax)); header.WriteTo(buf);
RINOK(WriteStream(outStream, buf, kHeaderSizeMax));
}
UInt64 curPos = kHeaderSizeMax; UInt64 curPos = kHeaderSizeMax;
CInStreamWithSha1 *inShaStreamSpec = new CInStreamWithSha1; CInStreamWithSha1 *inShaStreamSpec = new CInStreamWithSha1;
CMyComPtr<ISequentialInStream> inShaStream = inShaStreamSpec; CMyComPtr<ISequentialInStream> inShaStream = inShaStreamSpec;
CLimitedSequentialInStream *inStreamLimitedSpec = NULL; CLimitedSequentialInStream *inStreamLimitedSpec = NULL;
CMyComPtr<CLimitedSequentialInStream> inStreamLimited; CMyComPtr<CLimitedSequentialInStream> inStreamLimited;
if (_volumes.Size() == 2) if (_volumes.Size() == 2)
{ {
skipping to change at line 1716 skipping to change at line 1718
if (secBufs.Size() == 0) if (secBufs.Size() == 0)
{ {
// we can write 0 here only if there is no security data, imageX does it, // we can write 0 here only if there is no security data, imageX does it,
// but some programs expect size = 8 // but some programs expect size = 8
Set32((Byte *)meta, 8); // size of security data Set32((Byte *)meta, 8); // size of security data
// Set32((Byte *)meta, 0); // Set32((Byte *)meta, 0);
} }
else else
{ {
unsigned i; unsigned k;
for (i = 0; i < secBufs.Size(); i++, pos += 8) for (k = 0; k < secBufs.Size(); k++, pos += 8)
{ {
Set64(meta + pos, secBufs[i].Size()); Set64(meta + pos, secBufs[k].Size());
} }
for (i = 0; i < secBufs.Size(); i++) for (k = 0; k < secBufs.Size(); k++)
{ {
const CByteBuffer &buf = secBufs[i]; const CByteBuffer &buf = secBufs[k];
size_t size = buf.Size(); size_t size = buf.Size();
if (size != 0) if (size != 0)
{ {
memcpy(meta + pos, buf, size); memcpy(meta + pos, buf, size);
pos += size; pos += size;
} }
} }
while ((pos & 7) != 0) while ((pos & 7) != 0)
meta[pos++] = 0; meta[pos++] = 0;
Set32((Byte *)meta, (UInt32)pos); // size of security data Set32((Byte *)meta, (UInt32)pos); // size of security data
skipping to change at line 1848 skipping to change at line 1850
Set16((Byte *)xmlBuf + 2 + i * 2, utf16[i]); Set16((Byte *)xmlBuf + 2 + i * 2, utf16[i]);
RINOK(WriteStream(outStream, (const Byte *)xmlBuf, xmlSize)); RINOK(WriteStream(outStream, (const Byte *)xmlBuf, xmlSize));
} }
header.XmlResource.UnpackSize = header.XmlResource.PackSize = xmlSize; header.XmlResource.UnpackSize = header.XmlResource.PackSize = xmlSize;
header.XmlResource.Offset = curPos; header.XmlResource.Offset = curPos;
header.XmlResource.Flags = NResourceFlags::kMetadata; header.XmlResource.Flags = NResourceFlags::kMetadata;
outStream->Seek(0, STREAM_SEEK_SET, NULL); outStream->Seek(0, STREAM_SEEK_SET, NULL);
header.NumImages = trees.Size(); header.NumImages = trees.Size();
header.WriteTo(buf); {
return WriteStream(outStream, buf, kHeaderSizeMax); Byte buf[kHeaderSizeMax];
header.WriteTo(buf);
return WriteStream(outStream, buf, kHeaderSizeMax);
}
COM_TRY_END COM_TRY_END
} }
}} }}
 End of changes. 6 change blocks. 
10 lines changed or deleted 15 lines changed or added

Home  |  About  |  All  |  Newest  |  Fossies Dox  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTPS