Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pavlov <ipavlov@users.sourceforge.net>2007-06-26 04:00:00 +0400
committerKornel LesiƄski <kornel@geekhood.net>2016-05-28 02:15:52 +0300
commitfd8b1d78b496fe38193bf8c5e86af3b43f0b022d (patch)
tree5b1e3812ed4d8b6037e5035faf3b638849f618e2 /CPP/7zip/Archive/Tar
parent0b33f700a66fcf7f55f92b92e0b3e5c7014d769a (diff)
4.48 beta
Diffstat (limited to 'CPP/7zip/Archive/Tar')
-rwxr-xr-xCPP/7zip/Archive/Tar/TarHandler.cpp18
-rwxr-xr-xCPP/7zip/Archive/Tar/TarItem.h2
-rwxr-xr-xCPP/7zip/Archive/Tar/TarUpdate.h4
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"