| Index: third_party/lzma/v4_65/files/CPP/7zip/Archive/Common/ParseProperties.cpp
|
| diff --git a/third_party/lzma/v4_65/files/CPP/7zip/Archive/Common/ParseProperties.cpp b/third_party/lzma/v4_65/files/CPP/7zip/Archive/Common/ParseProperties.cpp
|
| deleted file mode 100644
|
| index 5cd849e2933d1862a26bc7bdef3140e7d6eb5ac6..0000000000000000000000000000000000000000
|
| --- a/third_party/lzma/v4_65/files/CPP/7zip/Archive/Common/ParseProperties.cpp
|
| +++ /dev/null
|
| @@ -1,177 +0,0 @@
|
| -// ParseProperties.cpp
|
| -
|
| -#include "StdAfx.h"
|
| -
|
| -#include "ParseProperties.h"
|
| -
|
| -#include "Common/StringToInt.h"
|
| -#include "Common/MyCom.h"
|
| -
|
| -HRESULT ParsePropValue(const UString &name, const PROPVARIANT &prop, UInt32 &resValue)
|
| -{
|
| - if (prop.vt == VT_UI4)
|
| - {
|
| - if (!name.IsEmpty())
|
| - return E_INVALIDARG;
|
| - resValue = prop.ulVal;
|
| - }
|
| - else if (prop.vt == VT_EMPTY)
|
| - {
|
| - if(!name.IsEmpty())
|
| - {
|
| - const wchar_t *start = name;
|
| - const wchar_t *end;
|
| - UInt64 v = ConvertStringToUInt64(start, &end);
|
| - if (end - start != name.Length())
|
| - return E_INVALIDARG;
|
| - resValue = (UInt32)v;
|
| - }
|
| - }
|
| - else
|
| - return E_INVALIDARG;
|
| - return S_OK;
|
| -}
|
| -
|
| -static const int kLogarithmicSizeLimit = 32;
|
| -static const wchar_t kByteSymbol = L'B';
|
| -static const wchar_t kKiloByteSymbol = L'K';
|
| -static const wchar_t kMegaByteSymbol = L'M';
|
| -
|
| -HRESULT ParsePropDictionaryValue(const UString &srcStringSpec, UInt32 &dicSize)
|
| -{
|
| - UString srcString = srcStringSpec;
|
| - srcString.MakeUpper();
|
| -
|
| - const wchar_t *start = srcString;
|
| - const wchar_t *end;
|
| - UInt64 number = ConvertStringToUInt64(start, &end);
|
| - int numDigits = (int)(end - start);
|
| - if (numDigits == 0 || srcString.Length() > numDigits + 1)
|
| - return E_INVALIDARG;
|
| - if (srcString.Length() == numDigits)
|
| - {
|
| - if (number >= kLogarithmicSizeLimit)
|
| - return E_INVALIDARG;
|
| - dicSize = (UInt32)1 << (int)number;
|
| - return S_OK;
|
| - }
|
| - switch (srcString[numDigits])
|
| - {
|
| - case kByteSymbol:
|
| - if (number >= ((UInt64)1 << kLogarithmicSizeLimit))
|
| - return E_INVALIDARG;
|
| - dicSize = (UInt32)number;
|
| - break;
|
| - case kKiloByteSymbol:
|
| - if (number >= ((UInt64)1 << (kLogarithmicSizeLimit - 10)))
|
| - return E_INVALIDARG;
|
| - dicSize = (UInt32)(number << 10);
|
| - break;
|
| - case kMegaByteSymbol:
|
| - if (number >= ((UInt64)1 << (kLogarithmicSizeLimit - 20)))
|
| - return E_INVALIDARG;
|
| - dicSize = (UInt32)(number << 20);
|
| - break;
|
| - default:
|
| - return E_INVALIDARG;
|
| - }
|
| - return S_OK;
|
| -}
|
| -
|
| -HRESULT ParsePropDictionaryValue(const UString &name, const PROPVARIANT &prop, UInt32 &resValue)
|
| -{
|
| - if (name.IsEmpty())
|
| - {
|
| - if (prop.vt == VT_UI4)
|
| - {
|
| - UInt32 logDicSize = prop.ulVal;
|
| - if (logDicSize >= 32)
|
| - return E_INVALIDARG;
|
| - resValue = (UInt32)1 << logDicSize;
|
| - return S_OK;
|
| - }
|
| - if (prop.vt == VT_BSTR)
|
| - return ParsePropDictionaryValue(prop.bstrVal, resValue);
|
| - return E_INVALIDARG;
|
| - }
|
| - return ParsePropDictionaryValue(name, resValue);
|
| -}
|
| -
|
| -bool StringToBool(const UString &s, bool &res)
|
| -{
|
| - if (s.IsEmpty() || s.CompareNoCase(L"ON") == 0 || s.Compare(L"+") == 0)
|
| - {
|
| - res = true;
|
| - return true;
|
| - }
|
| - if (s.CompareNoCase(L"OFF") == 0 || s.Compare(L"-") == 0)
|
| - {
|
| - res = false;
|
| - return true;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -HRESULT SetBoolProperty(bool &dest, const PROPVARIANT &value)
|
| -{
|
| - switch(value.vt)
|
| - {
|
| - case VT_EMPTY:
|
| - dest = true;
|
| - return S_OK;
|
| - case VT_BOOL:
|
| - dest = (value.boolVal != VARIANT_FALSE);
|
| - return S_OK;
|
| - /*
|
| - case VT_UI4:
|
| - dest = (value.ulVal != 0);
|
| - break;
|
| - */
|
| - case VT_BSTR:
|
| - return StringToBool(value.bstrVal, dest) ? S_OK : E_INVALIDARG;
|
| - }
|
| - return E_INVALIDARG;
|
| -}
|
| -
|
| -int ParseStringToUInt32(const UString &srcString, UInt32 &number)
|
| -{
|
| - const wchar_t *start = srcString;
|
| - const wchar_t *end;
|
| - UInt64 number64 = ConvertStringToUInt64(start, &end);
|
| - if (number64 > 0xFFFFFFFF)
|
| - {
|
| - number = 0;
|
| - return 0;
|
| - }
|
| - number = (UInt32)number64;
|
| - return (int)(end - start);
|
| -}
|
| -
|
| -HRESULT ParseMtProp(const UString &name, const PROPVARIANT &prop, UInt32 defaultNumThreads, UInt32 &numThreads)
|
| -{
|
| - if (name.IsEmpty())
|
| - {
|
| - switch(prop.vt)
|
| - {
|
| - case VT_UI4:
|
| - numThreads = prop.ulVal;
|
| - break;
|
| - default:
|
| - {
|
| - bool val;
|
| - RINOK(SetBoolProperty(val, prop));
|
| - numThreads = (val ? defaultNumThreads : 1);
|
| - break;
|
| - }
|
| - }
|
| - }
|
| - else
|
| - {
|
| - UInt32 number;
|
| - int index = ParseStringToUInt32(name, number);
|
| - if (index != name.Length())
|
| - return E_INVALIDARG;
|
| - numThreads = number;
|
| - }
|
| - return S_OK;
|
| -}
|
|
|