X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/237f834a52db0d12c85f70c5e65f48ec1923d00a..980332313bffde590173f76fd006837e0c8f3bed:/stglibs/common.lib/common.cpp diff --git a/stglibs/common.lib/common.cpp b/stglibs/common.lib/common.cpp index 425c3ee6..76a1b421 100644 --- a/stglibs/common.lib/common.cpp +++ b/stglibs/common.lib/common.cpp @@ -47,6 +47,8 @@ #include +#include + #include #include #include @@ -343,20 +345,6 @@ for (size_t i = 0; i < src.length() / 2; i++) } } //--------------------------------------------------------------------------- -std::string Encode12str(const std::string & src) -{ -std::string res; -Encode12str(res, src); -return res; -} -//--------------------------------------------------------------------------- -std::string Decode21str(const std::string & src) -{ -std::string res; -Decode21str(res, src); -return res; -} -//--------------------------------------------------------------------------- void Encode12(char * dst, const char * src, size_t srcLen) { for (size_t i = 0; i <= srcLen; i++) @@ -856,20 +844,16 @@ std::string res(val); return TrimR(TrimL(res)); } //--------------------------------------------------------------------------- -std::string ToLower(const std::string & value) +std::string ToLower(std::string value) { - std::string res; - for (std::string::size_type pos = 0; pos < value.length(); ++pos) - res += tolower(value[pos]); - return res; + std::transform(value.begin(), value.end(), value.begin(), ::tolower); + return value; } //--------------------------------------------------------------------------- -std::string ToUpper(const std::string & value) +std::string ToUpper(std::string value) { - std::string res; - for (std::string::size_type pos = 0; pos < value.length(); ++pos) - res += toupper(value[pos]); - return res; + std::transform(value.begin(), value.end(), value.begin(), ::toupper); + return value; } //--------------------------------------------------------------------------- #ifdef WIN32 @@ -937,7 +921,7 @@ strncpy(inBuf, source.c_str(), source.length()); inBuf[source.length()] = 0; -#if defined(FREE_BSD) || defined(FREE_BSD5) || defined(WIN32) +#if defined(CONST_ICONV) const char * srcPos = inBuf; #else char * srcPos = inBuf; @@ -1099,3 +1083,16 @@ while (done < size) } return true; } + +std::string ToPrintable(const std::string & src) +{ + std::string dest; + + for (size_t i = 0; i < src.size(); ++i) + if (std::isprint(src[i])) + dest += src[i]; + else + dest += "\\" + x2str(src[i]); + + return dest; +}