Pārlūkot izejas kodu

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

Brad King 22 gadi atpakaļ
vecāks
revīzija
8830b45b88
1 mainītis faili ar 9 papildinājumiem un 0 dzēšanām
  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;
 }