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:
Diffstat (limited to 'CPP/7zip/Archive/Tar/TarHandler.h')
-rw-r--r--[-rwxr-xr-x]CPP/7zip/Archive/Tar/TarHandler.h32
1 files changed, 24 insertions, 8 deletions
diff --git a/CPP/7zip/Archive/Tar/TarHandler.h b/CPP/7zip/Archive/Tar/TarHandler.h
index 9251edf6..23854767 100755..100644
--- a/CPP/7zip/Archive/Tar/TarHandler.h
+++ b/CPP/7zip/Archive/Tar/TarHandler.h
@@ -3,12 +3,15 @@
#ifndef __TAR_HANDLER_H
#define __TAR_HANDLER_H
-#include "Common/MyCom.h"
-#include "../IArchive.h"
+#include "../../../Common/MyCom.h"
+
+#include "../../../Windows/PropVariant.h"
#include "../../Compress/CopyCoder.h"
-#include "TarItem.h"
+#include "../IArchive.h"
+
+#include "TarIn.h"
namespace NArchive {
namespace NTar {
@@ -17,13 +20,15 @@ class CHandler:
public IInArchive,
public IArchiveOpenSeq,
public IInArchiveGetStream,
+ public ISetProperties,
public IOutArchive,
public CMyUnknownImp
{
+public:
CObjectVector<CItemEx> _items;
CMyComPtr<IInStream> _stream;
CMyComPtr<ISequentialInStream> _seqStream;
-
+private:
UInt32 _curIndex;
bool _latestIsRead;
CItemEx _latestItem;
@@ -31,8 +36,16 @@ class CHandler:
UInt64 _phySize;
UInt64 _headersSize;
bool _phySizeDefined;
- AString _errorMessage;
- bool _isSparse;
+ EErrorType _error;
+ bool _isArc;
+
+ // bool _isSparse;
+ bool _thereIsPaxExtendedHeader;
+
+ bool _forceCodePage;
+ UInt32 _specifiedCodePage;
+ UInt32 _curCodePage;
+ UInt32 _openCodePage;
NCompress::CCopyCoder *copyCoderSpec;
CMyComPtr<ICompressCoder> copyCoder;
@@ -40,12 +53,13 @@ class CHandler:
HRESULT ReadItem2(ISequentialInStream *stream, bool &filled, CItemEx &itemInfo);
HRESULT Open2(IInStream *stream, IArchiveOpenCallback *callback);
HRESULT SkipTo(UInt32 index);
-
+ void TarStringToUnicode(const AString &s, NWindows::NCOM::CPropVariant &prop, bool toOs = false) const;
public:
- MY_UNKNOWN_IMP4(
+ MY_UNKNOWN_IMP5(
IInArchive,
IArchiveOpenSeq,
IInArchiveGetStream,
+ ISetProperties,
IOutArchive
)
@@ -53,7 +67,9 @@ public:
INTERFACE_IOutArchive(;)
STDMETHOD(OpenSeq)(ISequentialInStream *stream);
STDMETHOD(GetStream)(UInt32 index, ISequentialInStream **stream);
+ STDMETHOD(SetProperties)(const wchar_t **names, const PROPVARIANT *values, UInt32 numProps);
+ void Init();
CHandler();
};