diff --git a/src/fs/Charset.cxx b/src/fs/Charset.cxx index cbfe6ea3edf1484f0a770807b7fe971077fe0ab5..5532a2cb6a1b0824e233860a373092229021e7d1 100644 --- a/src/fs/Charset.cxx +++ b/src/fs/Charset.cxx @@ -73,7 +73,8 @@ GetFSCharset() #endif } -static inline void FixSeparators(std::string &s) +static inline std::string && +FixSeparators(std::string &&s) { #ifdef WIN32 // For whatever reason GCC can't convert constexpr to value reference. @@ -81,9 +82,8 @@ static inline void FixSeparators(std::string &s) auto from = PathTraitsFS::SEPARATOR; auto to = PathTraitsUTF8::SEPARATOR; std::replace(s.begin(), s.end(), from, to); -#else - (void)s; #endif + return std::move(s); } std::string @@ -95,17 +95,12 @@ PathToUTF8(const char *path_fs) #endif #ifdef HAVE_FS_CHARSET - if (fs_converter == nullptr) { + if (fs_converter == nullptr) #endif - auto result = std::string(path_fs); - FixSeparators(result); - return result; + return FixSeparators(path_fs); #ifdef HAVE_FS_CHARSET - } - auto result_path = fs_converter->ToUTF8(path_fs); - FixSeparators(result_path); - return result_path; + return FixSeparators(fs_converter->ToUTF8(path_fs)); #endif }