mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-09 00:11:17 +12:00
That should do it
This commit is contained in:
parent
b1b6a5d8c3
commit
37cfd78afd
9 changed files with 22 additions and 29 deletions
|
@ -1,16 +1,13 @@
|
|||
#include "FSPath.h"
|
||||
|
||||
#ifdef BOOST_OS_LINUX
|
||||
|
||||
FSPath& FSPath::operator/ (const FSPath & other)
|
||||
{
|
||||
*this /= other;
|
||||
return *this;
|
||||
}
|
||||
#ifndef BOOST_OS_UNIX
|
||||
FSPath& FSPath::operator/= (const FSPath & other)
|
||||
{
|
||||
fs::path::operator/=(other);
|
||||
}
|
||||
#else
|
||||
|
||||
FSPath& FSPath::operator/= (const FSPath & other)
|
||||
{
|
||||
// todo: implement caching.
|
||||
|
@ -20,9 +17,9 @@ FSPath& FSPath::operator/= (const FSPath & other)
|
|||
fs::path correctedPath = empty() ? other.root_path() : *this;
|
||||
|
||||
// helper function to convert a path's alphabet characters to lowercase.
|
||||
auto static lowercase_path = [](fs::path const & path)
|
||||
auto static lowercase_path = [](FSPath const & path)
|
||||
{
|
||||
std::wstring string = path.wstring();
|
||||
std::string string = path.string();
|
||||
for (auto& i : string)
|
||||
{
|
||||
i = std::isalpha(i) ? std::tolower(i) : i;
|
||||
|
@ -47,19 +44,13 @@ FSPath& FSPath::operator/= (const FSPath & other)
|
|||
}
|
||||
|
||||
// if we can't iterate directory, just copy the original case.
|
||||
if(listErr)
|
||||
if(listErr || !found)
|
||||
{
|
||||
correctedPath /= it;
|
||||
found = true;
|
||||
}
|
||||
|
||||
if (!found)
|
||||
break;
|
||||
}
|
||||
|
||||
if (found)
|
||||
*this = correctedPath;
|
||||
|
||||
*this = FSPath(correctedPath);
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,8 +6,9 @@ class FSPath : public fs::path {
|
|||
FSPath() = default;
|
||||
|
||||
template <class T>
|
||||
FSPath(const T & other) : fs::path(other) {};
|
||||
FSPath(const T& other) : fs::path(other) {};
|
||||
|
||||
#ifdef BOOST_OS_UNIX
|
||||
template <class T>
|
||||
static FSPath Convert(const T& input)
|
||||
{
|
||||
|
@ -15,4 +16,5 @@ class FSPath : public fs::path {
|
|||
}
|
||||
FSPath& operator/= (const FSPath & other);
|
||||
FSPath& operator/ (const FSPath & other);
|
||||
#endif
|
||||
};
|
|
@ -219,9 +219,9 @@ FSCVirtualFile* FSCVirtualFile_Host::OpenFile(const FSPath& path, FSC_ACCESS_FLA
|
|||
|
||||
/* Device implementation */
|
||||
|
||||
class fscDeviceHostFSC : public fscDeviceC {
|
||||
public:
|
||||
|
||||
class fscDeviceHostFSC : public fscDeviceC
|
||||
{
|
||||
public:
|
||||
FSCVirtualFile* fscDeviceOpenByPath(std::wstring_view path, FSC_ACCESS_FLAG accessFlags, void* ctx, sint32* fscStatus) override
|
||||
{
|
||||
*fscStatus = FSC_STATUS_OK;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue