summaryrefslogtreecommitdiff
path: root/src/util/string.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/string.cpp')
-rw-r--r--src/util/string.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/util/string.cpp b/src/util/string.cpp
index 2c4143c76..c8f528a77 100644
--- a/src/util/string.cpp
+++ b/src/util/string.cpp
@@ -729,6 +729,33 @@ static bool parseNamedColorString(const std::string &value, video::SColor &color
return true;
}
+std::wstring removeChatEscapes(const std::wstring &s) {
+ std::wstring output;
+ size_t i = 0;
+ while (i < s.length()) {
+ if (s[i] == L'\v') {
+ ++i;
+ if (i == s.length()) continue;
+ if (s[i] == L'(') {
+ ++i;
+ while (i < s.length() && s[i] != L')') {
+ if (s[i] == L'\\') {
+ ++i;
+ }
+ ++i;
+ }
+ ++i;
+ } else {
+ ++i;
+ }
+ continue;
+ }
+ output += s[i];
+ ++i;
+ }
+ return output;
+}
+
void str_replace(std::string &str, char from, char to)
{
std::replace(str.begin(), str.end(), from, to);