"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "CPP/7zip/Archive/SplitHandler.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).

SplitHandler.cpp  (p7zip_15.14.1_src_all):SplitHandler.cpp  (p7zip_16.02_src_all)
skipping to change at line 190 skipping to change at line 190
seqName._changedPart = ext.RightPtr(numLetters); seqName._changedPart = ext.RightPtr(numLetters);
seqName._splitStyle = splitStyle; seqName._splitStyle = splitStyle;
if (prefix.Len() < 1) if (prefix.Len() < 1)
_subName.SetFromAscii("file"); _subName.SetFromAscii("file");
else else
_subName.SetFrom(prefix, prefix.Len() - 1); _subName.SetFrom(prefix, prefix.Len() - 1);
UInt64 size; UInt64 size;
{ {
/*
NCOM::CPropVariant prop; NCOM::CPropVariant prop;
RINOK(volumeCallback->GetProperty(kpidSize, &prop)); RINOK(volumeCallback->GetProperty(kpidSize, &prop));
if (prop.vt != VT_UI8) if (prop.vt != VT_UI8)
return E_INVALIDARG; return E_INVALIDARG;
size = prop.uhVal.QuadPart; size = prop.uhVal.QuadPart;
*/
RINOK(stream->Seek(0, STREAM_SEEK_END, &size));
RINOK(stream->Seek(0, STREAM_SEEK_SET, NULL));
} }
_totalSize += size; _totalSize += size;
_sizes.Add(size); _sizes.Add(size);
_streams.Add(stream); _streams.Add(stream);
{ {
UInt64 numFiles = _streams.Size(); const UInt64 numFiles = _streams.Size();
RINOK(callback->SetCompleted(&numFiles, NULL)); RINOK(callback->SetCompleted(&numFiles, NULL));
} }
for (;;) for (;;)
{ {
UString fullName; UString fullName;
if (!seqName.GetNextName(fullName)) if (!seqName.GetNextName(fullName))
break; break;
CMyComPtr<IInStream> nextStream; CMyComPtr<IInStream> nextStream;
HRESULT result = volumeCallback->GetStream(fullName, &nextStream); HRESULT result = volumeCallback->GetStream(fullName, &nextStream);
if (result == S_FALSE) if (result == S_FALSE)
break; break;
if (result != S_OK) if (result != S_OK)
return result; return result;
if (!stream) if (!nextStream)
break; break;
{ {
/*
NCOM::CPropVariant prop; NCOM::CPropVariant prop;
RINOK(volumeCallback->GetProperty(kpidSize, &prop)); RINOK(volumeCallback->GetProperty(kpidSize, &prop));
if (prop.vt != VT_UI8) if (prop.vt != VT_UI8)
return E_INVALIDARG; return E_INVALIDARG;
size = prop.uhVal.QuadPart; size = prop.uhVal.QuadPart;
*/
RINOK(nextStream->Seek(0, STREAM_SEEK_END, &size));
RINOK(nextStream->Seek(0, STREAM_SEEK_SET, NULL));
} }
_totalSize += size; _totalSize += size;
_sizes.Add(size); _sizes.Add(size);
_streams.Add(nextStream); _streams.Add(nextStream);
{ {
UInt64 numFiles = _streams.Size(); const UInt64 numFiles = _streams.Size();
RINOK(callback->SetCompleted(&numFiles, NULL)); RINOK(callback->SetCompleted(&numFiles, NULL));
} }
} }
if (_streams.Size() == 1) if (_streams.Size() == 1)
{ {
if (splitStyle) if (splitStyle)
return S_FALSE; return S_FALSE;
} }
return S_OK; return S_OK;
 End of changes. 7 change blocks. 
3 lines changed or deleted 11 lines changed or added

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