Index: third_party/lzma/v4_65/files/CPP/7zip/Common/FileStreams.cpp |
diff --git a/third_party/lzma/v4_65/files/CPP/7zip/Common/FileStreams.cpp b/third_party/lzma/v4_65/files/CPP/7zip/Common/FileStreams.cpp |
deleted file mode 100644 |
index eb7ad3a2a0150dbbd0592788eee7825645efe094..0000000000000000000000000000000000000000 |
--- a/third_party/lzma/v4_65/files/CPP/7zip/Common/FileStreams.cpp |
+++ /dev/null |
@@ -1,261 +0,0 @@ |
-// FileStreams.cpp |
- |
-#include "StdAfx.h" |
- |
-#ifndef _WIN32 |
-#include <fcntl.h> |
-#include <unistd.h> |
-#include <errno.h> |
-#endif |
- |
-#include "FileStreams.h" |
- |
-static inline HRESULT ConvertBoolToHRESULT(bool result) |
-{ |
- #ifdef _WIN32 |
- if (result) |
- return S_OK; |
- DWORD lastError = ::GetLastError(); |
- if (lastError == 0) |
- return E_FAIL; |
- return HRESULT_FROM_WIN32(lastError); |
- #else |
- return result ? S_OK: E_FAIL; |
- #endif |
-} |
- |
-bool CInFileStream::Open(LPCTSTR fileName) |
-{ |
- return File.Open(fileName); |
-} |
- |
-#ifdef USE_WIN_FILE |
-#ifndef _UNICODE |
-bool CInFileStream::Open(LPCWSTR fileName) |
-{ |
- return File.Open(fileName); |
-} |
-#endif |
-#endif |
- |
-bool CInFileStream::OpenShared(LPCTSTR fileName, bool shareForWrite) |
-{ |
- return File.OpenShared(fileName, shareForWrite); |
-} |
- |
-#ifdef USE_WIN_FILE |
-#ifndef _UNICODE |
-bool CInFileStream::OpenShared(LPCWSTR fileName, bool shareForWrite) |
-{ |
- return File.OpenShared(fileName, shareForWrite); |
-} |
-#endif |
-#endif |
- |
-STDMETHODIMP CInFileStream::Read(void *data, UInt32 size, UInt32 *processedSize) |
-{ |
- #ifdef USE_WIN_FILE |
- |
- UInt32 realProcessedSize; |
- bool result = File.ReadPart(data, size, realProcessedSize); |
- if(processedSize != NULL) |
- *processedSize = realProcessedSize; |
- return ConvertBoolToHRESULT(result); |
- |
- #else |
- |
- if(processedSize != NULL) |
- *processedSize = 0; |
- ssize_t res = File.Read(data, (size_t)size); |
- if (res == -1) |
- return E_FAIL; |
- if(processedSize != NULL) |
- *processedSize = (UInt32)res; |
- return S_OK; |
- |
- #endif |
-} |
- |
-#ifndef _WIN32_WCE |
-STDMETHODIMP CStdInFileStream::Read(void *data, UInt32 size, UInt32 *processedSize) |
-{ |
- #ifdef _WIN32 |
- UInt32 realProcessedSize; |
- BOOL res = ::ReadFile(GetStdHandle(STD_INPUT_HANDLE), |
- data, size, (DWORD *)&realProcessedSize, NULL); |
- if(processedSize != NULL) |
- *processedSize = realProcessedSize; |
- if (res == FALSE && GetLastError() == ERROR_BROKEN_PIPE) |
- return S_OK; |
- return ConvertBoolToHRESULT(res != FALSE); |
- |
- #else |
- |
- if(processedSize != NULL) |
- *processedSize = 0; |
- ssize_t res; |
- do |
- { |
- res = read(0, data, (size_t)size); |
- } |
- while (res < 0 && (errno == EINTR)); |
- if (res == -1) |
- return E_FAIL; |
- if(processedSize != NULL) |
- *processedSize = (UInt32)res; |
- return S_OK; |
- |
- #endif |
-} |
- |
-#endif |
- |
-STDMETHODIMP CInFileStream::Seek(Int64 offset, UInt32 seekOrigin, |
- UInt64 *newPosition) |
-{ |
- if(seekOrigin >= 3) |
- return STG_E_INVALIDFUNCTION; |
- |
- #ifdef USE_WIN_FILE |
- |
- UInt64 realNewPosition; |
- bool result = File.Seek(offset, seekOrigin, realNewPosition); |
- if(newPosition != NULL) |
- *newPosition = realNewPosition; |
- return ConvertBoolToHRESULT(result); |
- |
- #else |
- |
- off_t res = File.Seek(offset, seekOrigin); |
- if (res == -1) |
- return E_FAIL; |
- if(newPosition != NULL) |
- *newPosition = (UInt64)res; |
- return S_OK; |
- |
- #endif |
-} |
- |
-STDMETHODIMP CInFileStream::GetSize(UInt64 *size) |
-{ |
- return ConvertBoolToHRESULT(File.GetLength(*size)); |
-} |
- |
- |
-////////////////////////// |
-// COutFileStream |
- |
-HRESULT COutFileStream::Close() |
-{ |
- return ConvertBoolToHRESULT(File.Close()); |
-} |
- |
-STDMETHODIMP COutFileStream::Write(const void *data, UInt32 size, UInt32 *processedSize) |
-{ |
- #ifdef USE_WIN_FILE |
- |
- UInt32 realProcessedSize; |
- bool result = File.WritePart(data, size, realProcessedSize); |
- ProcessedSize += realProcessedSize; |
- if(processedSize != NULL) |
- *processedSize = realProcessedSize; |
- return ConvertBoolToHRESULT(result); |
- |
- #else |
- |
- if(processedSize != NULL) |
- *processedSize = 0; |
- ssize_t res = File.Write(data, (size_t)size); |
- if (res == -1) |
- return E_FAIL; |
- if(processedSize != NULL) |
- *processedSize = (UInt32)res; |
- ProcessedSize += res; |
- return S_OK; |
- |
- #endif |
-} |
- |
-STDMETHODIMP COutFileStream::Seek(Int64 offset, UInt32 seekOrigin, UInt64 *newPosition) |
-{ |
- if(seekOrigin >= 3) |
- return STG_E_INVALIDFUNCTION; |
- #ifdef USE_WIN_FILE |
- |
- UInt64 realNewPosition; |
- bool result = File.Seek(offset, seekOrigin, realNewPosition); |
- if(newPosition != NULL) |
- *newPosition = realNewPosition; |
- return ConvertBoolToHRESULT(result); |
- |
- #else |
- |
- off_t res = File.Seek(offset, seekOrigin); |
- if (res == -1) |
- return E_FAIL; |
- if(newPosition != NULL) |
- *newPosition = (UInt64)res; |
- return S_OK; |
- |
- #endif |
-} |
- |
-STDMETHODIMP COutFileStream::SetSize(Int64 newSize) |
-{ |
- #ifdef USE_WIN_FILE |
- UInt64 currentPos; |
- if(!File.Seek(0, FILE_CURRENT, currentPos)) |
- return E_FAIL; |
- bool result = File.SetLength(newSize); |
- UInt64 currentPos2; |
- result = result && File.Seek(currentPos, currentPos2); |
- return result ? S_OK : E_FAIL; |
- #else |
- return E_FAIL; |
- #endif |
-} |
- |
-#ifndef _WIN32_WCE |
-STDMETHODIMP CStdOutFileStream::Write(const void *data, UInt32 size, UInt32 *processedSize) |
-{ |
- if(processedSize != NULL) |
- *processedSize = 0; |
- |
- #ifdef _WIN32 |
- UInt32 realProcessedSize; |
- BOOL res = TRUE; |
- if (size > 0) |
- { |
- // Seems that Windows doesn't like big amounts writing to stdout. |
- // So we limit portions by 32KB. |
- UInt32 sizeTemp = (1 << 15); |
- if (sizeTemp > size) |
- sizeTemp = size; |
- res = ::WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), |
- data, sizeTemp, (DWORD *)&realProcessedSize, NULL); |
- size -= realProcessedSize; |
- data = (const void *)((const Byte *)data + realProcessedSize); |
- if(processedSize != NULL) |
- *processedSize += realProcessedSize; |
- } |
- return ConvertBoolToHRESULT(res != FALSE); |
- |
- #else |
- |
- ssize_t res; |
- do |
- { |
- res = write(1, data, (size_t)size); |
- } |
- while (res < 0 && (errno == EINTR)); |
- if (res == -1) |
- return E_FAIL; |
- if(processedSize != NULL) |
- *processedSize = (UInt32)res; |
- return S_OK; |
- |
- return S_OK; |
- #endif |
-} |
- |
-#endif |