4.55 beta

This commit is contained in:
Igor Pavlov
2007-09-05 00:00:00 +00:00
committed by Kornel Lesiński
parent b82f80647d
commit b67ffe691b
11 changed files with 35 additions and 25 deletions

View File

@@ -7,7 +7,7 @@
CLocalProgress::CLocalProgress() CLocalProgress::CLocalProgress()
{ {
ProgressOffset = InSize = OutSize = 0; ProgressOffset = InSize = OutSize = 0;
SendRatio = true; SendRatio = SendProgress = true;
} }
void CLocalProgress::Init(IProgress *progress, bool inSizeIsMain) void CLocalProgress::Init(IProgress *progress, bool inSizeIsMain)
@@ -31,7 +31,9 @@ STDMETHODIMP CLocalProgress::SetRatioInfo(const UInt64 *inSize, const UInt64 *ou
} }
inSizeNew += ProgressOffset; inSizeNew += ProgressOffset;
outSizeNew += ProgressOffset; outSizeNew += ProgressOffset;
return _progress->SetCompleted(_inSizeIsMain ? &inSizeNew : &outSizeNew); if (SendProgress)
return _progress->SetCompleted(_inSizeIsMain ? &inSizeNew : &outSizeNew);
return S_OK;
} }
HRESULT CLocalProgress::SetCur() HRESULT CLocalProgress::SetCur()

View File

@@ -20,6 +20,7 @@ public:
UInt64 InSize; UInt64 InSize;
UInt64 OutSize; UInt64 OutSize;
bool SendRatio; bool SendRatio;
bool SendProgress;
CLocalProgress(); CLocalProgress();
void Init(IProgress *progress, bool inSizeIsMain); void Init(IProgress *progress, bool inSizeIsMain);

View File

@@ -1,8 +1,8 @@
#define MY_VER_MAJOR 4 #define MY_VER_MAJOR 4
#define MY_VER_MINOR 54 #define MY_VER_MINOR 55
#define MY_VER_BUILD 0 #define MY_VER_BUILD 0
#define MY_VERSION "4.54 beta" #define MY_VERSION "4.55 beta"
#define MY_7ZIP_VERSION "7-Zip 4.54 beta" #define MY_7ZIP_VERSION "7-Zip 4.55 beta"
#define MY_DATE "2007-09-04" #define MY_DATE "2007-09-05"
#define MY_COPYRIGHT "Copyright (c) 1999-2007 Igor Pavlov" #define MY_COPYRIGHT "Copyright (c) 1999-2007 Igor Pavlov"
#define MY_VERSION_COPYRIGHT_DATE MY_VERSION " " MY_COPYRIGHT " " MY_DATE #define MY_VERSION_COPYRIGHT_DATE MY_VERSION " " MY_COPYRIGHT " " MY_DATE

View File

@@ -226,8 +226,10 @@ STDMETHODIMP CAgent::DoOperation(
if (updatePairs2[i].NewData) if (updatePairs2[i].NewData)
numFiles++; numFiles++;
RINOK(updateCallback100->SetNumFiles(numFiles)); if (updateCallback100)
{
RINOK(updateCallback100->SetNumFiles(numFiles));
}
CUpdateCallbackAgent updateCallbackAgent; CUpdateCallbackAgent updateCallbackAgent;
updateCallbackAgent.SetCallback(updateCallback100); updateCallbackAgent.SetCallback(updateCallback100);

View File

@@ -41,7 +41,6 @@ void CArchiveExtractCallback::Init(
{ {
_stdOutMode = stdOutMode; _stdOutMode = stdOutMode;
_numErrors = 0; _numErrors = 0;
_ratioMode = false;
_unpTotal = 1; _unpTotal = 1;
_packTotal = packSize; _packTotal = packSize;
@@ -50,6 +49,7 @@ void CArchiveExtractCallback::Init(
_extractCallback2.QueryInterface(IID_ICompressProgressInfo, &_compressProgress); _extractCallback2.QueryInterface(IID_ICompressProgressInfo, &_compressProgress);
LocalProgressSpec->Init(extractCallback2, true); LocalProgressSpec->Init(extractCallback2, true);
LocalProgressSpec->SendProgress = false;
_itemDefaultName = itemDefaultName; _itemDefaultName = itemDefaultName;
_utcLastWriteTimeDefault = utcLastWriteTimeDefault; _utcLastWriteTimeDefault = utcLastWriteTimeDefault;
@@ -97,8 +97,6 @@ STDMETHODIMP CArchiveExtractCallback::SetCompleted(const UInt64 *completeValue)
if (_multiArchives) if (_multiArchives)
{ {
if (_ratioMode)
return S_OK;
if (completeValue != NULL) if (completeValue != NULL)
{ {
UInt64 packCur = LocalProgressSpec->InSize + MyMultDiv64(*completeValue, _unpTotal, _packTotal); UInt64 packCur = LocalProgressSpec->InSize + MyMultDiv64(*completeValue, _unpTotal, _packTotal);
@@ -112,7 +110,6 @@ STDMETHODIMP CArchiveExtractCallback::SetCompleted(const UInt64 *completeValue)
STDMETHODIMP CArchiveExtractCallback::SetRatioInfo(const UInt64 *inSize, const UInt64 *outSize) STDMETHODIMP CArchiveExtractCallback::SetRatioInfo(const UInt64 *inSize, const UInt64 *outSize)
{ {
COM_TRY_BEGIN COM_TRY_BEGIN
_ratioMode = true;
return _localProgress->SetRatioInfo(inSize, outSize); return _localProgress->SetRatioInfo(inSize, outSize);
COM_TRY_END COM_TRY_END
} }

View File

@@ -105,7 +105,6 @@ public:
CLocalProgress *LocalProgressSpec; CLocalProgress *LocalProgressSpec;
CMyComPtr<ICompressProgressInfo> _localProgress; CMyComPtr<ICompressProgressInfo> _localProgress;
bool _ratioMode;
UInt64 _packTotal; UInt64 _packTotal;
UInt64 _unpTotal; UInt64 _unpTotal;

View File

@@ -91,6 +91,7 @@ HRESULT DecompressArchives(
CExtractOptions options = optionsSpec; CExtractOptions options = optionsSpec;
int i; int i;
UInt64 totalPackSize = 0; UInt64 totalPackSize = 0;
CRecordVector<UInt64> archiveSizes;
for (i = 0; i < archivePaths.Size(); i++) for (i = 0; i < archivePaths.Size(); i++)
{ {
const UString &archivePath = archivePaths[i]; const UString &archivePath = archivePaths[i];
@@ -99,6 +100,7 @@ HRESULT DecompressArchives(
throw "there is no such archive"; throw "there is no such archive";
if (archiveFileInfo.IsDirectory()) if (archiveFileInfo.IsDirectory())
throw "can't decompress folder"; throw "can't decompress folder";
archiveSizes.Add(archiveFileInfo.Size);
totalPackSize += archiveFileInfo.Size; totalPackSize += archiveFileInfo.Size;
} }
CArchiveExtractCallback *extractCallbackSpec = new CArchiveExtractCallback; CArchiveExtractCallback *extractCallbackSpec = new CArchiveExtractCallback;
@@ -145,8 +147,15 @@ HRESULT DecompressArchives(
{ {
archivePaths.Delete(index); archivePaths.Delete(index);
archivePathsFull.Delete(index); archivePathsFull.Delete(index);
totalPackSize -= archiveSizes[index];
archiveSizes.Delete(index);
} }
} }
if (archiveLink.VolumePaths.Size() != 0)
{
totalPackSize += archiveLink.VolumesSize;
RINOK(extractCallback->SetTotal(totalPackSize));
}
#ifndef _NO_CRYPTO #ifndef _NO_CRYPTO
UString password; UString password;
@@ -160,7 +169,7 @@ HRESULT DecompressArchives(
options.DefaultItemName = archiveLink.GetDefaultItemName(); options.DefaultItemName = archiveLink.GetDefaultItemName();
RINOK(DecompressArchive( RINOK(DecompressArchive(
archiveLink.GetArchive(), archiveLink.GetArchive(),
archiveFileInfo.Size, archiveFileInfo.Size + archiveLink.VolumesSize,
archiveLink.GetDefaultItemName(), archiveLink.GetDefaultItemName(),
wildcardCensor, options, extractCallback, extractCallbackSpec, errorMessage)); wildcardCensor, options, extractCallback, extractCallbackSpec, errorMessage));
extractCallbackSpec->LocalProgressSpec->InSize += archiveFileInfo.Size + extractCallbackSpec->LocalProgressSpec->InSize += archiveFileInfo.Size +

View File

@@ -410,14 +410,6 @@ SOURCE=..\Common\OpenArchive.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Common\ProgressUtils.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\ProgressUtils.h
# End Source File
# Begin Source File
SOURCE=..\Common\PropIDUtils.cpp SOURCE=..\Common\PropIDUtils.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
@@ -550,6 +542,14 @@ SOURCE=..\..\Common\FileStreams.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\Common\ProgressUtils.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\ProgressUtils.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\StreamUtils.cpp SOURCE=..\..\Common\StreamUtils.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File

View File

@@ -2,7 +2,7 @@
;Defines ;Defines
!define VERSION_MAJOR 4 !define VERSION_MAJOR 4
!define VERSION_MINOR 54 !define VERSION_MINOR 55
!define VERSION_POSTFIX_FULL " beta" !define VERSION_POSTFIX_FULL " beta"
!ifdef WIN64 !ifdef WIN64
!ifdef IA64 !ifdef IA64

View File

@@ -1,7 +1,7 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<?define VerMajor = "4" ?> <?define VerMajor = "4" ?>
<?define VerMinor = "54" ?> <?define VerMinor = "55" ?>
<?define VerBuild = "00" ?> <?define VerBuild = "00" ?>
<?define MmVer = "$(var.VerMajor).$(var.VerMinor)" ?> <?define MmVer = "$(var.VerMajor).$(var.VerMinor)" ?>
<?define MmHex = "0$(var.VerMajor)$(var.VerMinor)" ?> <?define MmHex = "0$(var.VerMajor)$(var.VerMinor)" ?>

View File

@@ -1,4 +1,4 @@
7-Zip 4.54 Sources 7-Zip 4.55 Sources
------------------ ------------------
7-Zip is a file archiver for Windows 95/98/ME/NT/2000/2003/XP/Vista. 7-Zip is a file archiver for Windows 95/98/ME/NT/2000/2003/XP/Vista.