From fac92e17aa5e34c8790cb0be2c6b878e1e2b6d6f Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sat, 13 Jun 2015 16:51:22 +0200 Subject: [PATCH] charset: provide overloads for rvalue references --- src/charset.cpp | 14 ++++++++++++++ src/charset.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/src/charset.cpp b/src/charset.cpp index 9e91a1d3..085147e1 100644 --- a/src/charset.cpp +++ b/src/charset.cpp @@ -68,4 +68,18 @@ std::string localeToUtf8(const std::string &s) : boost::locale::conv::to_utf(s, Config.system_encoding); } +std::string utf8ToLocale(std::string &&s) +{ + if (!Config.system_encoding.empty()) + s = boost::locale::conv::from_utf(s, Config.system_encoding); + return std::move(s); +} + +std::string localeToUtf8(std::string &&s) +{ + if (!Config.system_encoding.empty()) + s = boost::locale::conv::to_utf(s, Config.system_encoding); + return std::move(s); +} + } diff --git a/src/charset.h b/src/charset.h index 2b335663..872a4368 100644 --- a/src/charset.h +++ b/src/charset.h @@ -32,7 +32,9 @@ std::string toUtf8From(const std::string &s, const char *charset); std::string fromUtf8To(const std::string &s, const char *charset); std::string utf8ToLocale(const std::string &s); +std::string utf8ToLocale(std::string &&s); std::string localeToUtf8(const std::string &s); +std::string localeToUtf8(std::string &&s); }