Fix some minor bugs in EscapeTag/UnescapeTag.

This commit is contained in:
Sadie Powell 2024-07-29 18:37:04 +01:00
parent a5503a9f5e
commit 6d956cbed6

View File

@ -80,7 +80,7 @@ std::string ClientProtocol::Message::EscapeTag(const std::string& value)
ret.append("\\s"); ret.append("\\s");
break; break;
case ';': case ';':
ret.append("\\;"); ret.append("\\:");
break; break;
case '\\': case '\\':
ret.append("\\\\"); ret.append("\\\\");
@ -113,36 +113,35 @@ std::string ClientProtocol::Message::UnescapeTag(const std::string& value)
} }
it++; it++;
if (it != value.end()) if (it == value.end())
break;
chr = *it;
switch (chr)
{ {
chr = *it; case 's':
switch (chr) ret.push_back(' ');
{ break;
case 's': case ':':
ret.push_back(' '); ret.push_back(';');
break; break;
case ':': case '\\':
ret.push_back(';'); ret.push_back('\\');
break; break;
case '\\': case 'n':
ret.push_back('\\'); ret.push_back('\n');
break; break;
case 'n': case 'r':
ret.push_back('\n'); ret.push_back('\r');
break; break;
case 'r': default:
ret.push_back('\r'); ret.push_back(chr);
break; break;
default:
ret.push_back(chr);
break;
}
} }
} }
return ret; return ret;
} }
const ClientProtocol::SerializedMessage& ClientProtocol::Message::GetSerialized(const SerializedInfo& serializeinfo) const const ClientProtocol::SerializedMessage& ClientProtocol::Message::GetSerialized(const SerializedInfo& serializeinfo) const
{ {
// First check if the serialized line they're asking for is in the cache // First check if the serialized line they're asking for is in the cache