in common/teamcity_messages.cpp [52:70]
std::string TeamcityMessages::escape(const std::string &s) {
std::string result;
result.reserve(s.length());
for (size_t i = 0; i < s.length(); i++) {
char c = s[i];
switch (c) {
case '\n': result.append("|n"); break;
case '\r': result.append("|r"); break;
case '\'': result.append("|'"); break;
case '|': result.append("||"); break;
case ']': result.append("|]"); break;
default: result.append(&c, 1);
}
}
return result;
}