浏览代码

BUG#92 - Added XML escaping for <, >, and &.

Brad King 22 年之前
父节点
当前提交
8830b45b88
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      Source/cmLocalVisualStudio7Generator.cxx

+ 9 - 0
Source/cmLocalVisualStudio7Generator.cxx

@@ -1022,6 +1022,9 @@ std::string cmLocalVisualStudio7Generator::EscapeForXML(const char* s)
 {
   std::string ret = s;
   cmSystemTools::ReplaceString(ret, "\"", "&quot;");
+  cmSystemTools::ReplaceString(ret, "&", "&amp;");
+  cmSystemTools::ReplaceString(ret, "<", "&lt;");
+  cmSystemTools::ReplaceString(ret, ">", "&gt;");
   return ret;
 }
 
@@ -1029,6 +1032,9 @@ std::string cmLocalVisualStudio7Generator::ConvertToXMLOutputPath(const char* pa
 {
   std::string ret = cmSystemTools::ConvertToOutputPath(path);
   cmSystemTools::ReplaceString(ret, "\"", "&quot;");
+  cmSystemTools::ReplaceString(ret, "&", "&amp;");
+  cmSystemTools::ReplaceString(ret, "<", "&lt;");
+  cmSystemTools::ReplaceString(ret, ">", "&gt;");
   return ret;
 }
 
@@ -1036,6 +1042,9 @@ std::string cmLocalVisualStudio7Generator::ConvertToXMLOutputPathSingle(const ch
 {
   std::string ret = cmSystemTools::ConvertToOutputPath(path);
   cmSystemTools::ReplaceString(ret, "\"", "");
+  cmSystemTools::ReplaceString(ret, "&", "&amp;");
+  cmSystemTools::ReplaceString(ret, "<", "&lt;");
+  cmSystemTools::ReplaceString(ret, ">", "&gt;");
   return ret;
 }