mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-26 18:58:34 -06:00
cmGlobalGenerator: Teach EscapeJSON to escape newlines and tabs
This commit is contained in:
@@ -3014,11 +3014,23 @@ void cmGlobalGenerator::WriteSummary(cmGeneratorTarget* target)
|
|||||||
std::string cmGlobalGenerator::EscapeJSON(const std::string& s)
|
std::string cmGlobalGenerator::EscapeJSON(const std::string& s)
|
||||||
{
|
{
|
||||||
std::string result;
|
std::string result;
|
||||||
|
result.reserve(s.size());
|
||||||
for (char i : s) {
|
for (char i : s) {
|
||||||
if (i == '"' || i == '\\') {
|
switch (i) {
|
||||||
result += '\\';
|
case '"':
|
||||||
|
case '\\':
|
||||||
|
result += '\\';
|
||||||
|
result += i;
|
||||||
|
break;
|
||||||
|
case '\n':
|
||||||
|
result += "\\n";
|
||||||
|
break;
|
||||||
|
case '\t':
|
||||||
|
result += "\\t";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
result += i;
|
||||||
}
|
}
|
||||||
result += i;
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user