From 608a98c873b94826a98b8dbdf17aa02320de8776 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 17 Oct 2013 22:42:22 +0200 Subject: fs/Charset: default filesystem charset is UTF-8 Implement a fast path for UTF-8 which leaves fs_charset empty, and don't assign a value to fs_charset if there's no configuration. --- src/fs/Charset.cxx | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/fs/Charset.cxx') diff --git a/src/fs/Charset.cxx b/src/fs/Charset.cxx index b75001043..3e324f470 100644 --- a/src/fs/Charset.cxx +++ b/src/fs/Charset.cxx @@ -81,6 +81,9 @@ PathToUTF8(const char *path_fs) { assert(path_fs != nullptr); + if (fs_charset.empty()) + return std::string(path_fs); + GIConv conv = g_iconv_open("utf-8", fs_charset.c_str()); if (conv == reinterpret_cast(-1)) return std::string(); @@ -108,6 +111,9 @@ PathFromUTF8(const char *path_utf8) { assert(path_utf8 != nullptr); + if (fs_charset.empty()) + return g_strdup(path_utf8); + return g_convert(path_utf8, -1, fs_charset.c_str(), "utf-8", nullptr, nullptr, nullptr); -- cgit v1.2.3