From b2ae86d142c39c7440a268f04ab94f73cc3bda4a Mon Sep 17 00:00:00 2001 From: Jonathan Li Date: Sat, 14 Jul 2018 00:51:56 +0100 Subject: [PATCH] pcsx2: Pass UTF-8 pathnames to plugins Fixes empty log and ini directory paths being passed to the plugins on Windows when the pathnames contain characters not present in the current system codepage. Fixes the inability to create snapshots when the pathname contains non-ASCII characters on Linux (Windows requires more pathname handling fixes). --- pcsx2/PluginManager.cpp | 8 ++------ pcsx2/gui/GlobalCommands.cpp | 2 +- pcsx2/gui/Saveslots.cpp | 2 +- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/pcsx2/PluginManager.cpp b/pcsx2/PluginManager.cpp index d822d6c449..cc0d75e1bb 100644 --- a/pcsx2/PluginManager.cpp +++ b/pcsx2/PluginManager.cpp @@ -1732,10 +1732,8 @@ void SysCorePlugins::SendSettingsFolder() ScopedLock lock( m_mtx_PluginStatus ); if( m_SettingsFolder.IsEmpty() ) return; - wxCharBuffer buffer(m_SettingsFolder.mb_str(wxConvFile)); - const PluginInfo* pi = tbl_PluginInfo; do { - if( m_info[pi->id] ) m_info[pi->id]->CommonBindings.SetSettingsDir( buffer ); + if( m_info[pi->id] ) m_info[pi->id]->CommonBindings.SetSettingsDir( m_SettingsFolder.utf8_str() ); } while( ++pi, pi->shortname != NULL ); } @@ -1758,10 +1756,8 @@ void SysCorePlugins::SendLogFolder() ScopedLock lock( m_mtx_PluginStatus ); if( m_LogFolder.IsEmpty() ) return; - wxCharBuffer buffer(m_LogFolder.mb_str(wxConvFile)); - const PluginInfo* pi = tbl_PluginInfo; do { - if( m_info[pi->id] ) m_info[pi->id]->CommonBindings.SetLogDir( buffer ); + if( m_info[pi->id] ) m_info[pi->id]->CommonBindings.SetLogDir( m_LogFolder.utf8_str() ); } while( ++pi, pi->shortname != NULL ); } diff --git a/pcsx2/gui/GlobalCommands.cpp b/pcsx2/gui/GlobalCommands.cpp index ad9d9c3070..6d4169b4a3 100644 --- a/pcsx2/gui/GlobalCommands.cpp +++ b/pcsx2/gui/GlobalCommands.cpp @@ -353,7 +353,7 @@ namespace Implementations void Sys_TakeSnapshot() { - GSmakeSnapshot( g_Conf->Folders.Snapshots.ToAscii() ); + GSmakeSnapshot( g_Conf->Folders.Snapshots.ToUTF8() ); } void Sys_RenderToggle() diff --git a/pcsx2/gui/Saveslots.cpp b/pcsx2/gui/Saveslots.cpp index ee75777e20..3c86f369c6 100644 --- a/pcsx2/gui/Saveslots.cpp +++ b/pcsx2/gui/Saveslots.cpp @@ -130,7 +130,7 @@ static void OnSlotChanged() OSDlog( Color_StrongGreen, true, " > Selected savestate slot %d", StatesC ); if( GSchangeSaveState != NULL ) - GSchangeSaveState(StatesC, SaveStateBase::GetFilename(StatesC).mb_str()); + GSchangeSaveState(StatesC, SaveStateBase::GetFilename(StatesC).utf8_str()); Sstates_updateLoadBackupMenuItem(); }