diff options
author | MarcoFalke <falke.marco@gmail.com> | 2018-09-25 14:00:41 -0400 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2018-09-25 14:00:46 -0400 |
commit | cc7258bdfb44c5b5f3498296d8c9e6791655e89f (patch) | |
tree | 8952634c5d586c25c5d3bcb83524e69daded1cee | |
parent | 8efd87455bc957d6647c41680541d84e98e8353f (diff) | |
parent | 2c3eade704f63b360926de9e975ce80143781679 (diff) |
Merge #13877: utils: Make fs::path::string() always return utf-8 string on Windows
2c3eade704 Make fs::path::string() always return utf-8 string (Chun Kuan Lee)
Pull request description:
Imbue `fs::path` with `std::codecvt_utf8_utf16` at `SetupEnvironment()`, so that default string encoding will be utf-8 inside `fs::path`.
Tree-SHA512: 0cb59464d777278decbf24771fc5ff0cb2caa7bc2fe8ee5cd36c97a2324873a3caad131f08f050393b488316ee7f4ab0b28b7fa4699e41839f8e51b9867d5118
-rw-r--r-- | src/fs.h | 1 | ||||
-rw-r--r-- | src/qt/guiutil.cpp | 6 | ||||
-rw-r--r-- | src/util.cpp | 4 | ||||
-rwxr-xr-x | test/lint/lint-includes.sh | 1 |
4 files changed, 6 insertions, 6 deletions
@@ -10,7 +10,6 @@ #include <boost/filesystem.hpp> #include <boost/filesystem/fstream.hpp> -#include <boost/filesystem/detail/utf8_codecvt_facet.hpp> /** Filesystem operations and types */ namespace fs = boost::filesystem; diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 7afe25d25a..b894fc8166 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -60,8 +60,6 @@ #include <QFontDatabase> #endif -static fs::detail::utf8_codecvt_facet utf8; - namespace GUIUtil { QString dateTimeStr(const QDateTime &date) @@ -764,12 +762,12 @@ void setClipboard(const QString& str) fs::path qstringToBoostPath(const QString &path) { - return fs::path(path.toStdString(), utf8); + return fs::path(path.toStdString()); } QString boostPathToQString(const fs::path &path) { - return QString::fromStdString(path.string(utf8)); + return QString::fromStdString(path.string()); } QString formatDurationStr(int secs) diff --git a/src/util.cpp b/src/util.cpp index 75a387d7ec..fa624aee90 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1206,7 +1206,11 @@ void SetupEnvironment() // A dummy locale is used to extract the internal default locale, used by // fs::path, which is then used to explicitly imbue the path. std::locale loc = fs::path::imbue(std::locale::classic()); +#ifndef WIN32 fs::path::imbue(loc); +#else + fs::path::imbue(std::locale(loc, new std::codecvt_utf8_utf16<wchar_t>())); +#endif } bool SetupNetworking() diff --git a/test/lint/lint-includes.sh b/test/lint/lint-includes.sh index a3e7681d45..f6d0fd382b 100755 --- a/test/lint/lint-includes.sh +++ b/test/lint/lint-includes.sh @@ -54,7 +54,6 @@ EXPECTED_BOOST_INCLUDES=( boost/chrono/chrono.hpp boost/date_time/posix_time/posix_time.hpp boost/filesystem.hpp - boost/filesystem/detail/utf8_codecvt_facet.hpp boost/filesystem/fstream.hpp boost/multi_index/hashed_index.hpp boost/multi_index/ordered_index.hpp |