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/Common')
-rwxr-xr-xCPP/Common/C_FileIO.cpp5
-rwxr-xr-xCPP/Common/C_FileIO.h1
-rwxr-xr-xCPP/Common/CommandLineParser.h2
-rwxr-xr-xCPP/Common/ListFileUtils.cpp2
-rwxr-xr-xCPP/Common/MyCom.h15
-rwxr-xr-xCPP/Common/MyInitGuid.h2
-rwxr-xr-xCPP/Common/MyWindows.h15
-rwxr-xr-xCPP/Common/Wildcard.cpp8
8 files changed, 38 insertions, 12 deletions
diff --git a/CPP/Common/C_FileIO.cpp b/CPP/Common/C_FileIO.cpp
index 7d9e00d0..28a1378c 100755
--- a/CPP/Common/C_FileIO.cpp
+++ b/CPP/Common/C_FileIO.cpp
@@ -51,6 +51,11 @@ bool CInFile::Open(const char *name)
return CFileBase::OpenBinary(name, O_RDONLY);
}
+bool CInFile::OpenShared(const char *name, bool)
+{
+ return Open(name);
+}
+
ssize_t CInFile::Read(void *data, size_t size)
{
return read(_handle, data, size);
diff --git a/CPP/Common/C_FileIO.h b/CPP/Common/C_FileIO.h
index 2ad07167..29378dfa 100755
--- a/CPP/Common/C_FileIO.h
+++ b/CPP/Common/C_FileIO.h
@@ -30,6 +30,7 @@ class CInFile: public CFileBase
{
public:
bool Open(const char *name);
+ bool OpenShared(const char *name, bool shareForWrite);
ssize_t Read(void *data, size_t size);
};
diff --git a/CPP/Common/CommandLineParser.h b/CPP/Common/CommandLineParser.h
index f59d8e4c..af698db8 100755
--- a/CPP/Common/CommandLineParser.h
+++ b/CPP/Common/CommandLineParser.h
@@ -3,7 +3,7 @@
#ifndef __COMMON_COMMANDLINEPARSER_H
#define __COMMON_COMMANDLINEPARSER_H
-#include "String.h"
+#include "Common/String.h"
namespace NCommandLineParser {
diff --git a/CPP/Common/ListFileUtils.cpp b/CPP/Common/ListFileUtils.cpp
index ea4cde38..349622ed 100755
--- a/CPP/Common/ListFileUtils.cpp
+++ b/CPP/Common/ListFileUtils.cpp
@@ -24,12 +24,14 @@ bool ReadNamesFromListFile(LPCTSTR fileName, UStringVector &resultStrings, UINT
AString s;
file.ReadToString(s);
UString u;
+ #ifdef CP_UTF8
if (codePage == CP_UTF8)
{
if (!ConvertUTF8ToUnicode(s, u))
return false;
}
else
+ #endif
u = MultiByteToUnicodeString(s, codePage);
if (!u.IsEmpty())
{
diff --git a/CPP/Common/MyCom.h b/CPP/Common/MyCom.h
index 07e8fb66..dcc94f14 100755
--- a/CPP/Common/MyCom.h
+++ b/CPP/Common/MyCom.h
@@ -154,6 +154,13 @@ public:
#define MY_QUERYINTERFACE_ENTRY(i) if (iid == IID_ ## i) \
{ *outObject = (void *)(i *)this; AddRef(); return S_OK; }
+#define MY_QUERYINTERFACE_ENTRY_UNKNOWN(i) if (iid == IID_IUnknown) \
+ { *outObject = (void *)(IUnknown *)(i *)this; AddRef(); return S_OK; }
+
+#define MY_QUERYINTERFACE_BEGIN2(i) MY_QUERYINTERFACE_BEGIN \
+ MY_QUERYINTERFACE_ENTRY_UNKNOWN(i) \
+ MY_QUERYINTERFACE_ENTRY(i)
+
#define MY_QUERYINTERFACE_END return E_NOINTERFACE; }
#define MY_ADDREF_RELEASE \
@@ -168,26 +175,31 @@ STDMETHOD_(ULONG, Release)() { if (--__m_RefCount != 0) \
MY_ADDREF_RELEASE
-#define MY_UNKNOWN_IMP STDMETHOD(QueryInterface)(REFGUID, void **) { \
+#define MY_UNKNOWN_IMP MY_QUERYINTERFACE_BEGIN \
+ MY_QUERYINTERFACE_ENTRY_UNKNOWN(IUnknown) \
MY_QUERYINTERFACE_END \
MY_ADDREF_RELEASE
#define MY_UNKNOWN_IMP1(i) MY_UNKNOWN_IMP_SPEC( \
+ MY_QUERYINTERFACE_ENTRY_UNKNOWN(i) \
MY_QUERYINTERFACE_ENTRY(i) \
)
#define MY_UNKNOWN_IMP2(i1, i2) MY_UNKNOWN_IMP_SPEC( \
+ MY_QUERYINTERFACE_ENTRY_UNKNOWN(i1) \
MY_QUERYINTERFACE_ENTRY(i1) \
MY_QUERYINTERFACE_ENTRY(i2) \
)
#define MY_UNKNOWN_IMP3(i1, i2, i3) MY_UNKNOWN_IMP_SPEC( \
+ MY_QUERYINTERFACE_ENTRY_UNKNOWN(i1) \
MY_QUERYINTERFACE_ENTRY(i1) \
MY_QUERYINTERFACE_ENTRY(i2) \
MY_QUERYINTERFACE_ENTRY(i3) \
)
#define MY_UNKNOWN_IMP4(i1, i2, i3, i4) MY_UNKNOWN_IMP_SPEC( \
+ MY_QUERYINTERFACE_ENTRY_UNKNOWN(i1) \
MY_QUERYINTERFACE_ENTRY(i1) \
MY_QUERYINTERFACE_ENTRY(i2) \
MY_QUERYINTERFACE_ENTRY(i3) \
@@ -195,6 +207,7 @@ STDMETHOD_(ULONG, Release)() { if (--__m_RefCount != 0) \
)
#define MY_UNKNOWN_IMP5(i1, i2, i3, i4, i5) MY_UNKNOWN_IMP_SPEC( \
+ MY_QUERYINTERFACE_ENTRY_UNKNOWN(i1) \
MY_QUERYINTERFACE_ENTRY(i1) \
MY_QUERYINTERFACE_ENTRY(i2) \
MY_QUERYINTERFACE_ENTRY(i3) \
diff --git a/CPP/Common/MyInitGuid.h b/CPP/Common/MyInitGuid.h
index 5bdfeed5..4fc15565 100755
--- a/CPP/Common/MyInitGuid.h
+++ b/CPP/Common/MyInitGuid.h
@@ -8,6 +8,8 @@
#else
#define INITGUID
#include "MyGuidDef.h"
+DEFINE_GUID(IID_IUnknown,
+0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
#endif
#endif
diff --git a/CPP/Common/MyWindows.h b/CPP/Common/MyWindows.h
index a93d750a..e388fb02 100755
--- a/CPP/Common/MyWindows.h
+++ b/CPP/Common/MyWindows.h
@@ -99,6 +99,10 @@ typedef LONG SCODE;
#define MIDL_INTERFACE(x) struct
+#ifdef __cplusplus
+
+DEFINE_GUID(IID_IUnknown,
+0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
struct IUnknown
{
STDMETHOD(QueryInterface) (REFIID iid, void **outObject) PURE;
@@ -111,6 +115,8 @@ struct IUnknown
typedef IUnknown *LPUNKNOWN;
+#endif
+
#define VARIANT_TRUE ((VARIANT_BOOL)-1)
#define VARIANT_FALSE ((VARIANT_BOOL)0)
@@ -149,6 +155,8 @@ typedef WORD PROPVAR_PAD1;
typedef WORD PROPVAR_PAD2;
typedef WORD PROPVAR_PAD3;
+#ifdef __cplusplus
+
typedef struct tagPROPVARIANT
{
VARTYPE vt;
@@ -178,6 +186,11 @@ typedef PROPVARIANT tagVARIANT;
typedef tagVARIANT VARIANT;
typedef VARIANT VARIANTARG;
+MY_EXTERN_C HRESULT VariantClear(VARIANTARG *prop);
+MY_EXTERN_C HRESULT VariantCopy(VARIANTARG *dest, VARIANTARG *src);
+
+#endif
+
MY_EXTERN_C BSTR SysAllocStringByteLen(LPCSTR psz, UINT len);
MY_EXTERN_C BSTR SysAllocString(const OLECHAR *sz);
MY_EXTERN_C void SysFreeString(BSTR bstr);
@@ -185,8 +198,6 @@ MY_EXTERN_C UINT SysStringByteLen(BSTR bstr);
MY_EXTERN_C UINT SysStringLen(BSTR bstr);
MY_EXTERN_C DWORD GetLastError();
-MY_EXTERN_C HRESULT VariantClear(VARIANTARG *prop);
-MY_EXTERN_C HRESULT VariantCopy(VARIANTARG *dest, VARIANTARG *src);
MY_EXTERN_C LONG CompareFileTime(const FILETIME* ft1, const FILETIME* ft2);
#define CP_ACP 0
diff --git a/CPP/Common/Wildcard.cpp b/CPP/Common/Wildcard.cpp
index ddadc7b1..2e938375 100755
--- a/CPP/Common/Wildcard.cpp
+++ b/CPP/Common/Wildcard.cpp
@@ -4,7 +4,6 @@
#include "Wildcard.h"
-static const wchar_t kPeriodChar = L'.';
static const wchar_t kAnyCharsChar = L'*';
static const wchar_t kAnyCharChar = L'?';
@@ -20,8 +19,6 @@ static const UString kIllegalWildCardFileNameChars=
L"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F"
L"\"/:<>\\|";
-static const UString kIllegalFileNameChars = kIllegalWildCardFileNameChars +
- kWildCardCharSet;
static inline bool IsCharDirLimiter(wchar_t c)
{
@@ -147,11 +144,6 @@ bool DoesNameContainWildCard(const UString &path)
namespace NWildcard {
-static inline int BoolToIndex(bool value)
-{
- return value ? 1: 0;
-}
-
/*
M = MaskParts.Size();