diff options
author | Igor Pavlov <ipavlov@users.sourceforge.net> | 2007-06-26 04:00:00 +0400 |
---|---|---|
committer | Kornel LesiĆski <kornel@geekhood.net> | 2016-05-28 02:15:52 +0300 |
commit | fd8b1d78b496fe38193bf8c5e86af3b43f0b022d (patch) | |
tree | 5b1e3812ed4d8b6037e5035faf3b638849f618e2 /CPP/7zip/Archive/Tar | |
parent | 0b33f700a66fcf7f55f92b92e0b3e5c7014d769a (diff) |
4.48 beta
Diffstat (limited to 'CPP/7zip/Archive/Tar')
-rwxr-xr-x | CPP/7zip/Archive/Tar/TarHandler.cpp | 18 | ||||
-rwxr-xr-x | CPP/7zip/Archive/Tar/TarItem.h | 2 | ||||
-rwxr-xr-x | CPP/7zip/Archive/Tar/TarUpdate.h | 4 |
3 files changed, 17 insertions, 7 deletions
diff --git a/CPP/7zip/Archive/Tar/TarHandler.cpp b/CPP/7zip/Archive/Tar/TarHandler.cpp index 9c2cd006..f2c83caf 100755 --- a/CPP/7zip/Archive/Tar/TarHandler.cpp +++ b/CPP/7zip/Archive/Tar/TarHandler.cpp @@ -113,8 +113,22 @@ STDMETHODIMP CHandler::Open(IInStream *stream, } } if (_items.Size() == 0) - return S_FALSE; - + { + CMyComPtr<IArchiveOpenVolumeCallback> openVolumeCallback; + if (!openArchiveCallback) + return S_FALSE; + openArchiveCallback->QueryInterface(IID_IArchiveOpenVolumeCallback, (void **)&openVolumeCallback); + if (!openVolumeCallback) + return S_FALSE; + NCOM::CPropVariant propVariant; + RINOK(openVolumeCallback->GetProperty(kpidName, &propVariant)); + if (propVariant.vt != VT_BSTR) + return S_FALSE; + UString baseName = propVariant.bstrVal; + baseName = baseName.Right(4); + if (baseName.CompareNoCase(L".tar") != 0) + return S_FALSE; + } _inStream = stream; } /* diff --git a/CPP/7zip/Archive/Tar/TarItem.h b/CPP/7zip/Archive/Tar/TarItem.h index 71fff7ba..10b57cd0 100755 --- a/CPP/7zip/Archive/Tar/TarItem.h +++ b/CPP/7zip/Archive/Tar/TarItem.h @@ -6,7 +6,7 @@ #include <time.h> #include "Common/Types.h" -#include "Common/String.h" +#include "Common/MyString.h" #include "../Common/ItemNameUtils.h" #include "TarHeader.h" diff --git a/CPP/7zip/Archive/Tar/TarUpdate.h b/CPP/7zip/Archive/Tar/TarUpdate.h index 92f5cebb..67d671f5 100755 --- a/CPP/7zip/Archive/Tar/TarUpdate.h +++ b/CPP/7zip/Archive/Tar/TarUpdate.h @@ -3,10 +3,6 @@ #ifndef __TAR_UPDATE_H #define __TAR_UPDATE_H -#include "Common/Vector.h" -#include "Common/Types.h" -#include "Common/String.h" - #include "../IArchive.h" #include "TarItem.h" |