diff options
author | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-07-07 16:13:43 +0200 |
---|---|---|
committer | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-07-07 16:13:43 +0200 |
commit | 0224a4f7fc17400dd100a2333c7bbf9c898426c4 (patch) | |
tree | 5b909dc5b57a6859334591e0c5295547d8e9061f /source/StringUtils.cpp | |
parent | Improved function names for protocol packet sending; alpha-sorted the function lists (diff) | |
download | cuberite-0224a4f7fc17400dd100a2333c7bbf9c898426c4.tar cuberite-0224a4f7fc17400dd100a2333c7bbf9c898426c4.tar.gz cuberite-0224a4f7fc17400dd100a2333c7bbf9c898426c4.tar.bz2 cuberite-0224a4f7fc17400dd100a2333c7bbf9c898426c4.tar.lz cuberite-0224a4f7fc17400dd100a2333c7bbf9c898426c4.tar.xz cuberite-0224a4f7fc17400dd100a2333c7bbf9c898426c4.tar.zst cuberite-0224a4f7fc17400dd100a2333c7bbf9c898426c4.zip |
Diffstat (limited to 'source/StringUtils.cpp')
-rw-r--r-- | source/StringUtils.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/source/StringUtils.cpp b/source/StringUtils.cpp index b55ce51e6..2bb6ae76e 100644 --- a/source/StringUtils.cpp +++ b/source/StringUtils.cpp @@ -569,3 +569,40 @@ AString & CreateHexDump(AString & a_Out, const void * a_Data, int a_Size, int a_ + +AString EscapeString(const AString & a_Message) +{ + AString EscapedMsg; + size_t len = a_Message.size(); + size_t last = 0; + EscapedMsg.reserve(len); + for (size_t i = 0; i < len; i++) + { + char ch = a_Message[i]; + switch (ch) + { + case '\'': + case '\"': + case '\\': + { + if (i > last) + { + EscapedMsg.append(a_Message, last, i - last); + } + EscapedMsg.push_back('\\'); + EscapedMsg.push_back(ch); + last = i + 1; + break; + } + } + } + if (len > last) + { + EscapedMsg.append(a_Message, last, len - last); + } + return EscapedMsg; +} + + + + |