aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2018-09-25 14:00:41 -0400
committerMarcoFalke <falke.marco@gmail.com>2018-09-25 14:00:46 -0400
commitcc7258bdfb44c5b5f3498296d8c9e6791655e89f (patch)
tree8952634c5d586c25c5d3bcb83524e69daded1cee
parent8efd87455bc957d6647c41680541d84e98e8353f (diff)
parent2c3eade704f63b360926de9e975ce80143781679 (diff)
downloadbitcoin-cc7258bdfb44c5b5f3498296d8c9e6791655e89f.tar.xz
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.h1
-rw-r--r--src/qt/guiutil.cpp6
-rw-r--r--src/util.cpp4
-rwxr-xr-xtest/lint/lint-includes.sh1
4 files changed, 6 insertions, 6 deletions
diff --git a/src/fs.h b/src/fs.h
index 5492bdd4ec..a7074f446a 100644
--- a/src/fs.h
+++ b/src/fs.h
@@ -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