Core: Get Zip files to use utf16 paths
This commit is contained in:
parent
2ec9ed08a4
commit
58a13b8e28
|
@ -2,3 +2,4 @@
|
|||
|
||||
#include "../../3rdParty/zlib/contrib/minizip/unzip.h"
|
||||
#include "../../3rdParty/zlib/contrib/minizip/zip.h"
|
||||
#include "../../3rdParty/zlib/contrib/minizip/iowin32.h"
|
|
@ -136,7 +136,9 @@ bool CN64Rom::AllocateAndLoadN64Image(const char * FileLoc, bool LoadBootCodeOnl
|
|||
|
||||
bool CN64Rom::AllocateAndLoadZipImage(const char * FileLoc, bool LoadBootCodeOnly)
|
||||
{
|
||||
unzFile file = unzOpen(FileLoc);
|
||||
zlib_filefunc64_def ffunc;
|
||||
fill_win32_filefunc64W(&ffunc);
|
||||
unzFile file = unzOpen2_64(stdstr(FileLoc).ToUTF16().c_str() , &ffunc);
|
||||
if (file == nullptr)
|
||||
{
|
||||
return false;
|
||||
|
|
|
@ -352,7 +352,9 @@ bool CRomList::LoadDataFromRomFile(const char * FileName, uint8_t * Data, int32_
|
|||
unz_file_info info;
|
||||
char zname[132];
|
||||
unzFile file;
|
||||
file = unzOpen(FileName);
|
||||
zlib_filefunc64_def ffunc;
|
||||
fill_win32_filefunc64W(&ffunc);
|
||||
file = unzOpen2_64(stdstr(FileName).ToUTF16().c_str(), &ffunc);
|
||||
if (file == nullptr)
|
||||
{
|
||||
return false;
|
||||
|
|
|
@ -1089,7 +1089,6 @@ void CRomBrowser::SelectRomDir(void)
|
|||
|
||||
std::wstring title = wGS(SELECT_ROM_DIR);
|
||||
|
||||
WriteTrace(TraceUserInterface, TraceDebug, "1");
|
||||
stdstr RomDir = g_Settings->LoadStringVal(RomList_GameDir).c_str();
|
||||
bi.hwndOwner = m_MainWindow;
|
||||
bi.pidlRoot = nullptr;
|
||||
|
@ -1098,28 +1097,15 @@ void CRomBrowser::SelectRomDir(void)
|
|||
bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS | BIF_USENEWUI;
|
||||
bi.lpfn = (BFFCALLBACK)SelectRomDirCallBack;
|
||||
bi.lParam = (UINT_PTR)RomDir.c_str();
|
||||
WriteTrace(TraceUserInterface, TraceDebug, "2");
|
||||
if ((pidl = SHBrowseForFolder(&bi)) != nullptr)
|
||||
{
|
||||
WriteTrace(TraceUserInterface, TraceDebug, "3");
|
||||
char Directory[_MAX_PATH];
|
||||
if (SHGetPathFromIDListA(pidl, Directory))
|
||||
wchar_t Directory[_MAX_PATH];
|
||||
if (SHGetPathFromIDList(pidl, Directory))
|
||||
{
|
||||
int32_t len = (int32_t)((UINT_PTR)strlen(Directory));
|
||||
|
||||
WriteTrace(TraceUserInterface, TraceDebug, "4");
|
||||
if (Directory[len - 1] != '\\')
|
||||
{
|
||||
strcat(Directory, "\\");
|
||||
}
|
||||
WriteTrace(TraceUserInterface, TraceDebug, "5");
|
||||
WriteTrace(TraceUserInterface, TraceDebug, "6");
|
||||
g_Settings->SaveString(RomList_GameDir, Directory);
|
||||
WriteTrace(TraceUserInterface, TraceDebug, "7");
|
||||
Notify().AddRecentDir(Directory);
|
||||
WriteTrace(TraceUserInterface, TraceDebug, "8");
|
||||
CPath RomDir(stdstr().FromUTF16(Directory), "");
|
||||
g_Settings->SaveString(RomList_GameDir, RomDir.GetDriveDirectory());
|
||||
Notify().AddRecentDir(RomDir.GetDriveDirectory().c_str());
|
||||
RefreshRomList();
|
||||
WriteTrace(TraceUserInterface, TraceDebug, "9");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue