summaryrefslogtreecommitdiffstats
path: root/Source/cmSystemTools.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-02-05 21:31:37 (GMT)
committerBrad King <brad.king@kitware.com>2009-02-05 21:31:37 (GMT)
commitdc13914cd698b49cbae491c1e1aebbcd44fbe932 (patch)
tree4eaa716c3e2160a7e81125360d83dc9f87241ede /Source/cmSystemTools.cxx
parentf16a471576199ec275463e35ff17849350c0da79 (diff)
downloadCMake-dc13914cd698b49cbae491c1e1aebbcd44fbe932.zip
CMake-dc13914cd698b49cbae491c1e1aebbcd44fbe932.tar.gz
CMake-dc13914cd698b49cbae491c1e1aebbcd44fbe932.tar.bz2
ENH: Create cmXMLSafe to help escapes in XML
This class provides easy syntax to efficiently insert blocks of data into XML documents with proper escapes. It replaces the old cmCTest::MakeXMLSafe and cmSystemTools::MakeXMLSafe methods which allocated extra memory instead of directly streaming the data.
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r--Source/cmSystemTools.cxx50
1 files changed, 0 insertions, 50 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 0ef7508..84ed729 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -1644,56 +1644,6 @@ void cmSystemTools::EnableVSConsoleOutput()
#endif
}
-std::string cmSystemTools::MakeXMLSafe(const char* str)
-{
- std::vector<char> result;
- result.reserve(500);
- const char* pos = str;
- for ( ;*pos; ++pos)
- {
- char ch = *pos;
- if ( (ch > 126 || ch < 32) && ch != 9 && ch != 10 && ch != 13
- && ch != '\r' )
- {
- char buffer[33];
- sprintf(buffer, "&lt;%d&gt;", static_cast<int>(ch));
- //sprintf(buffer, "&#x%0x;", (unsigned int)ch);
- result.insert(result.end(), buffer, buffer+strlen(buffer));
- }
- else
- {
- const char* const encodedChars[] = {
- "&amp;",
- "&lt;",
- "&gt;"
- };
- switch ( ch )
- {
- case '&':
- result.insert(result.end(), encodedChars[0], encodedChars[0]+5);
- break;
- case '<':
- result.insert(result.end(), encodedChars[1], encodedChars[1]+4);
- break;
- case '>':
- result.insert(result.end(), encodedChars[2], encodedChars[2]+4);
- break;
- case '\n':
- result.push_back('\n');
- break;
- case '\r': break; // Ignore \r
- default:
- result.push_back(ch);
- }
- }
- }
- if ( result.size() == 0 )
- {
- return "";
- }
- return std::string(&*result.begin(), result.size());
-}
-
bool cmSystemTools::IsPathToFramework(const char* path)
{
if(cmSystemTools::FileIsFullPath(path))