diff options
Diffstat (limited to 'core/fxcrt')
-rw-r--r-- | core/fxcrt/fx_basic_util.cpp | 57 | ||||
-rw-r--r-- | core/fxcrt/fx_stream.cpp | 55 |
2 files changed, 56 insertions, 56 deletions
diff --git a/core/fxcrt/fx_basic_util.cpp b/core/fxcrt/fx_basic_util.cpp index a636b6cb42..704fd18418 100644 --- a/core/fxcrt/fx_basic_util.cpp +++ b/core/fxcrt/fx_basic_util.cpp @@ -6,62 +6,7 @@ #include <algorithm> -#include "core/fxcrt/fx_stream.h" -#include "third_party/base/ptr_util.h" - -FX_FileHandle* FX_OpenFolder(const char* path) { -#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ - auto pData = pdfium::MakeUnique<CFindFileDataA>(); - pData->m_Handle = FindFirstFileExA((CFX_ByteString(path) + "/*.*").c_str(), - FindExInfoStandard, &pData->m_FindData, - FindExSearchNameMatch, nullptr, 0); - if (pData->m_Handle == INVALID_HANDLE_VALUE) - return nullptr; - - pData->m_bEnd = false; - return pData.release(); -#else - return opendir(path); -#endif -} - -bool FX_GetNextFile(FX_FileHandle* handle, - CFX_ByteString* filename, - bool* bFolder) { - if (!handle) - return false; - -#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ - if (handle->m_bEnd) - return false; - - *filename = handle->m_FindData.cFileName; - *bFolder = - (handle->m_FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; - if (!FindNextFileA(handle->m_Handle, &handle->m_FindData)) - handle->m_bEnd = true; - return true; -#else - struct dirent* de = readdir(handle); - if (!de) - return false; - *filename = de->d_name; - *bFolder = de->d_type == DT_DIR; - return true; -#endif -} - -void FX_CloseFolder(FX_FileHandle* handle) { - if (!handle) - return; - -#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ - FindClose(handle->m_Handle); - delete handle; -#else - closedir(handle); -#endif -} +#include "core/fxcrt/fx_system.h" uint32_t GetBits32(const uint8_t* pData, int bitpos, int nbits) { ASSERT(0 < nbits && nbits <= 32); diff --git a/core/fxcrt/fx_stream.cpp b/core/fxcrt/fx_stream.cpp index a64b239546..0cf34aa22e 100644 --- a/core/fxcrt/fx_stream.cpp +++ b/core/fxcrt/fx_stream.cpp @@ -13,6 +13,7 @@ #include "core/fxcrt/fx_safe_types.h" #include "core/fxcrt/ifxcrt_fileaccess.h" +#include "third_party/base/ptr_util.h" namespace { @@ -97,3 +98,57 @@ bool IFX_SeekableStream::WriteBlock(const void* buffer, size_t size) { bool IFX_SeekableStream::WriteString(const CFX_ByteStringC& str) { return WriteBlock(str.unterminated_c_str(), str.GetLength()); } + +FX_FileHandle* FX_OpenFolder(const char* path) { +#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ + auto pData = pdfium::MakeUnique<CFindFileDataA>(); + pData->m_Handle = FindFirstFileExA((CFX_ByteString(path) + "/*.*").c_str(), + FindExInfoStandard, &pData->m_FindData, + FindExSearchNameMatch, nullptr, 0); + if (pData->m_Handle == INVALID_HANDLE_VALUE) + return nullptr; + + pData->m_bEnd = false; + return pData.release(); +#else + return opendir(path); +#endif +} + +bool FX_GetNextFile(FX_FileHandle* handle, + CFX_ByteString* filename, + bool* bFolder) { + if (!handle) + return false; + +#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ + if (handle->m_bEnd) + return false; + + *filename = handle->m_FindData.cFileName; + *bFolder = + (handle->m_FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; + if (!FindNextFileA(handle->m_Handle, &handle->m_FindData)) + handle->m_bEnd = true; + return true; +#else + struct dirent* de = readdir(handle); + if (!de) + return false; + *filename = de->d_name; + *bFolder = de->d_type == DT_DIR; + return true; +#endif +} + +void FX_CloseFolder(FX_FileHandle* handle) { + if (!handle) + return; + +#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ + FindClose(handle->m_Handle); + delete handle; +#else + closedir(handle); +#endif +} |