Actually fix issue 3659.
check for cp932 using ::IsValidCodePage before creating the wxCSConv if it is possible for linux distro or mac to remove the euc_jap cp from install a similar check may be added in WxUtils.cpp git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6928 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
cbc520a70a
commit
826e37a279
|
@ -15,10 +15,6 @@
|
||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include "stdafx.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "Blob.h"
|
#include "Blob.h"
|
||||||
#include "CISOBlob.h"
|
#include "CISOBlob.h"
|
||||||
|
|
||||||
|
|
|
@ -399,11 +399,8 @@ void CGameListCtrl::InsertItemInReportView(long _Index)
|
||||||
// title: 0xFF0000
|
// title: 0xFF0000
|
||||||
// company: 0x007030
|
// company: 0x007030
|
||||||
int ImageIndex = -1;
|
int ImageIndex = -1;
|
||||||
#ifdef _WIN32
|
static wxCSConv *SJISConv = WxUtils::SJISConv();
|
||||||
wxCSConv SJISConv(wxFontMapper::GetEncodingName(wxFONTENCODING_SHIFT_JIS));
|
|
||||||
#else
|
|
||||||
wxCSConv SJISConv(wxFontMapper::GetEncodingName(wxFONTENCODING_EUC_JP));
|
|
||||||
#endif
|
|
||||||
GameListItem& rISOFile = m_ISOFiles[_Index];
|
GameListItem& rISOFile = m_ISOFiles[_Index];
|
||||||
m_gamePath.append(rISOFile.GetFileName() + '\n');
|
m_gamePath.append(rISOFile.GetFileName() + '\n');
|
||||||
|
|
||||||
|
@ -435,12 +432,12 @@ void CGameListCtrl::InsertItemInReportView(long _Index)
|
||||||
case DiscIO::IVolume::COUNTRY_TAIWAN:
|
case DiscIO::IVolume::COUNTRY_TAIWAN:
|
||||||
case DiscIO::IVolume::COUNTRY_JAPAN:
|
case DiscIO::IVolume::COUNTRY_JAPAN:
|
||||||
{
|
{
|
||||||
wxString name = wxString(rISOFile.GetName(0).c_str(), SJISConv);
|
wxString name = wxString(rISOFile.GetName(0).c_str(), *SJISConv);
|
||||||
m_gameList.append(StringFromFormat("%s (J)\n", (const char *)name.c_str()));
|
m_gameList.append(StringFromFormat("%s (J)\n", (const char *)name.c_str()));
|
||||||
SetItem(_Index, COLUMN_TITLE, name, -1);
|
SetItem(_Index, COLUMN_TITLE, name, -1);
|
||||||
SetItem(_Index, COLUMN_NOTES, wxString(company.size() ?
|
SetItem(_Index, COLUMN_NOTES, wxString(company.size() ?
|
||||||
company.c_str() : rISOFile.GetDescription(0).c_str(),
|
company.c_str() : rISOFile.GetDescription(0).c_str(),
|
||||||
SJISConv), -1);
|
*SJISConv), -1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DiscIO::IVolume::COUNTRY_USA:
|
case DiscIO::IVolume::COUNTRY_USA:
|
||||||
|
@ -470,9 +467,9 @@ void CGameListCtrl::InsertItemInReportView(long _Index)
|
||||||
{
|
{
|
||||||
m_gameList.append(StringFromFormat("%s (WAD)\n", rISOFile.GetName(0).c_str()));
|
m_gameList.append(StringFromFormat("%s (WAD)\n", rISOFile.GetName(0).c_str()));
|
||||||
SetItem(_Index, COLUMN_TITLE,
|
SetItem(_Index, COLUMN_TITLE,
|
||||||
wxString(rISOFile.GetName(0).c_str(), SJISConv), -1);
|
wxString(rISOFile.GetName(0).c_str(), *SJISConv), -1);
|
||||||
SetItem(_Index, COLUMN_NOTES,
|
SetItem(_Index, COLUMN_NOTES,
|
||||||
wxString(rISOFile.GetDescription(0).c_str(), SJISConv), -1);
|
wxString(rISOFile.GetDescription(0).c_str(), *SJISConv), -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include "GeckoCodeDiag.h"
|
#include "GeckoCodeDiag.h"
|
||||||
#include "ConfigManager.h"
|
#include "ConfigManager.h"
|
||||||
#include "StringUtil.h"
|
#include "StringUtil.h"
|
||||||
|
#include "WxUtils.h"
|
||||||
|
|
||||||
#include "../resources/isoprop_file.xpm"
|
#include "../resources/isoprop_file.xpm"
|
||||||
#include "../resources/isoprop_folder.xpm"
|
#include "../resources/isoprop_folder.xpm"
|
||||||
|
@ -1248,17 +1249,14 @@ void CISOProperties::ChangeBannerDetails(int lang)
|
||||||
|| OpenGameListItem->GetCountry() == DiscIO::IVolume::COUNTRY_TAIWAN
|
|| OpenGameListItem->GetCountry() == DiscIO::IVolume::COUNTRY_TAIWAN
|
||||||
|| OpenGameListItem->GetPlatform() == GameListItem::WII_WAD)
|
|| OpenGameListItem->GetPlatform() == GameListItem::WII_WAD)
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
static wxCSConv * SJISConv = WxUtils::SJISConv();
|
||||||
wxCSConv SJISConv(wxFontMapper::GetEncodingName(wxFONTENCODING_SHIFT_JIS));
|
|
||||||
#else
|
wxString name = wxString(OpenGameListItem->GetName(0).c_str(), *SJISConv);
|
||||||
wxCSConv SJISConv(wxFontMapper::GetEncodingName(wxFONTENCODING_EUC_JP));
|
|
||||||
#endif
|
|
||||||
wxString name = wxString(OpenGameListItem->GetName(0).c_str(), SJISConv);
|
|
||||||
|
|
||||||
// Updates the informations shown in the window
|
// Updates the informations shown in the window
|
||||||
m_ShortName->SetValue(name);
|
m_ShortName->SetValue(name);
|
||||||
m_Comment->SetValue(wxString(OpenGameListItem->GetDescription(0).c_str(), SJISConv));
|
m_Comment->SetValue(wxString(OpenGameListItem->GetDescription(0).c_str(), *SJISConv));
|
||||||
m_Maker->SetValue(wxString(OpenGameListItem->GetCompany().c_str(), SJISConv));//dev too
|
m_Maker->SetValue(wxString(OpenGameListItem->GetCompany().c_str(), *SJISConv));//dev too
|
||||||
|
|
||||||
std::string filename, extension;
|
std::string filename, extension;
|
||||||
SplitPath(OpenGameListItem->GetFileName(), 0, &filename, &extension);
|
SplitPath(OpenGameListItem->GetFileName(), 0, &filename, &extension);
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include "FileUtil.h"
|
#include "FileUtil.h"
|
||||||
#include "DebuggerUIUtil.h"
|
#include "DebuggerUIUtil.h"
|
||||||
#include <wx/fontmap.h>
|
#include <wx/fontmap.h>
|
||||||
|
#include "WxUtils.h"
|
||||||
|
|
||||||
// Milliseconds between msgQueue flushes to wxTextCtrl
|
// Milliseconds between msgQueue flushes to wxTextCtrl
|
||||||
#define UPDATETIME 200
|
#define UPDATETIME 200
|
||||||
|
@ -50,11 +51,7 @@ CLogWindow::CLogWindow(CFrame *parent, wxWindowID id, const wxPoint& pos,
|
||||||
, m_Log(NULL), m_cmdline(NULL), m_FontChoice(NULL)
|
, m_Log(NULL), m_cmdline(NULL), m_FontChoice(NULL)
|
||||||
, m_LogSection(1)
|
, m_LogSection(1)
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
m_SJISConv = WxUtils::SJISConv();
|
||||||
m_SJISConv = new wxCSConv(wxFontMapper::GetEncodingName(wxFONTENCODING_SHIFT_JIS));
|
|
||||||
#else
|
|
||||||
m_SJISConv = new wxCSConv(wxFontMapper::GetEncodingName(wxFONTENCODING_EUC_JP));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
m_LogManager = LogManager::GetInstance();
|
m_LogManager = LogManager::GetInstance();
|
||||||
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
|
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
|
||||||
|
|
|
@ -19,9 +19,26 @@
|
||||||
|
|
||||||
#include <wx/wx.h>
|
#include <wx/wx.h>
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
|
#include <wx/fontmap.h>
|
||||||
|
|
||||||
namespace WxUtils {
|
namespace WxUtils {
|
||||||
|
|
||||||
|
wxCSConv *SJISConv()
|
||||||
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
|
|
||||||
|
static bool validCP932 = ::IsValidCodePage(932) != 0;
|
||||||
|
if (validCP932)
|
||||||
|
{
|
||||||
|
return new wxCSConv(wxFontMapper::GetEncodingName(wxFONTENCODING_SHIFT_JIS));
|
||||||
|
}
|
||||||
|
WARN_LOG(COMMON, "Cannot Convert from Charset Windows Japanese cp 932");
|
||||||
|
return (wxCSConv*)wxConvCurrent;
|
||||||
|
#else
|
||||||
|
return new wxCSConv(wxFontMapper::GetEncodingName(wxFONTENCODING_EUC_JP));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
// Launch a file according to its mime type
|
// Launch a file according to its mime type
|
||||||
void Launch(const char *filename)
|
void Launch(const char *filename)
|
||||||
{
|
{
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
|
|
||||||
namespace WxUtils {
|
namespace WxUtils {
|
||||||
|
|
||||||
|
wxCSConv * SJISConv();
|
||||||
|
|
||||||
// Launch a file according to its mime type
|
// Launch a file according to its mime type
|
||||||
void Launch(const char *filename);
|
void Launch(const char *filename);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue