mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-15 18:03:30 +00:00
79 lines
2.3 KiB
Diff
79 lines
2.3 KiB
Diff
diff --git a/src/amule.h b/src/amule.h
|
|
index f25702f..240c02d 100644
|
|
--- a/src/amule.h
|
|
+++ b/src/amule.h
|
|
@@ -553,6 +553,13 @@ class CamuleDaemonApp : public CamuleApp
|
|
int OnExit();
|
|
|
|
virtual int InitGui(bool geometry_enable, wxString &geometry_string);
|
|
+ // The GTK wxApps sets its file name conversion properly
|
|
+ // in wxApp::Initialize(), while wxAppConsole::Initialize()
|
|
+ // does not, leaving wxConvFile being set to wxConvLibc. File
|
|
+ // name conversion should be set otherwise amuled will abort to
|
|
+ // handle non-ASCII file names which monolithic amule can handle.
|
|
+ // This function are overrided to perform this.
|
|
+ virtual bool Initialize(int& argc_, wxChar **argv_);
|
|
|
|
#ifdef AMULED_APPTRAITS
|
|
struct sigaction m_oldSignalChildAction;
|
|
diff --git a/src/amuled.cpp b/src/amuled.cpp
|
|
index 486da59..86e1ff8 100644
|
|
--- a/src/amuled.cpp
|
|
+++ b/src/amuled.cpp
|
|
@@ -704,6 +704,41 @@ int CamuleDaemonApp::InitGui(bool ,wxString &)
|
|
return 0;
|
|
}
|
|
|
|
+bool CamuleDaemonApp::Initialize(int& argc_, wxChar **argv_)
|
|
+{
|
|
+ if ( !wxAppConsole::Initialize(argc_, argv_) ) {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+#ifdef __UNIX__
|
|
+ wxString encName;
|
|
+#if wxUSE_INTL
|
|
+ // if a non default locale is set,
|
|
+ // assume that the user wants his
|
|
+ // filenames in this locale too
|
|
+ encName = wxLocale::GetSystemEncodingName().Upper();
|
|
+
|
|
+ // But don't consider ASCII in this case.
|
|
+ if ( !encName.empty() ) {
|
|
+ if ( encName == wxT("US-ASCII") ) {
|
|
+ // This means US-ASCII when returned
|
|
+ // from GetEncodingFromName().
|
|
+ encName.clear();
|
|
+ }
|
|
+ }
|
|
+#endif // wxUSE_INTL
|
|
+
|
|
+ // in this case, UTF-8 is used by default.
|
|
+ if ( encName.empty() ) {
|
|
+ encName = wxT("UTF-8");
|
|
+ }
|
|
+
|
|
+ static wxConvBrokenFileNames fileconv(encName);
|
|
+ wxConvFileName = &fileconv;
|
|
+#endif // __UNIX__
|
|
+
|
|
+ return true;
|
|
+}
|
|
|
|
int CamuleDaemonApp::OnExit()
|
|
{
|
|
diff --git a/src/libs/common/Path.cpp b/src/libs/common/Path.cpp
|
|
index 28152a2..5efefd0 100644
|
|
--- a/src/libs/common/Path.cpp
|
|
+++ b/src/libs/common/Path.cpp
|
|
@@ -229,7 +229,8 @@ CPath::CPath(const wxString& filename)
|
|
}
|
|
|
|
wxCharBuffer fn = filename2char(filename);
|
|
- if (fn.data()) {
|
|
+ // add fn.length() for wx 3.x
|
|
+ if (fn.data()) {
|
|
// Filename is valid in the current locale. This means that
|
|
// it either originated from a (wx)system-call, or from a
|
|
// user with a properly setup system.
|