Index: tools/gn/xml_element_writer.cc |
diff --git a/tools/gn/xml_element_writer.cc b/tools/gn/xml_element_writer.cc |
index fcf34b283cce6ad473f29f6a745be78ff4062e38..bb0d23262157fc58e744cfc981a8ebf264d862f6 100644 |
--- a/tools/gn/xml_element_writer.cc |
+++ b/tools/gn/xml_element_writer.cc |
@@ -81,3 +81,35 @@ std::ostream& XmlElementWriter::StartContent(bool start_new_line) { |
return out_; |
} |
+ |
+std::string XmlEscape(const std::string& value) { |
+ std::string result; |
+ for (char c : value) { |
+ switch (c) { |
+ case '\n': |
+ result += " "; |
+ break; |
+ case '\r': |
+ result += " "; |
+ break; |
+ case '\t': |
+ result += "	"; |
+ break; |
+ case '"': |
+ result += """; |
+ break; |
+ case '<': |
+ result += "<"; |
+ break; |
+ case '>': |
+ result += ">"; |
+ break; |
+ case '&': |
+ result += "&"; |
+ break; |
+ default: |
+ result += c; |
+ } |
+ } |
+ return result; |
+} |