Console: don't let random unformatted data end up in the log

This commit is contained in:
SChernykh
2025-06-11 11:40:54 +02:00
parent 09532c901a
commit 26bf2f07a0
2 changed files with 28 additions and 3 deletions
+26 -1
View File
@@ -449,12 +449,37 @@ struct EscapedString
}
}
FORCEINLINE operator const std::string&() const { return m_data; }
private:
std::string m_data;
};
template<> struct log::Stream::Entry<EscapedString>
{
static FORCEINLINE void put(const EscapedString& value, Stream* wrapper) { *wrapper << value.m_data; }
static FORCEINLINE void put(const EscapedString& value, Stream* wrapper) { *wrapper << value; }
};
struct MaskNonASCII
{
explicit FORCEINLINE MaskNonASCII(const std::string& data, char mask_character = '?') : m_data(data)
{
for (char& c : m_data) {
if ((c < 32) || (c >= 127)) {
c = mask_character;
}
}
}
FORCEINLINE operator const std::string&() const { return m_data; }
private:
std::string m_data;
};
template<> struct log::Stream::Entry<MaskNonASCII>
{
static FORCEINLINE void put(const MaskNonASCII& value, Stream* wrapper) { *wrapper << value; }
};
template<typename T>