summaryrefslogtreecommitdiff
path: root/Source/cmLocalGenerator.cxx
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2005-11-08 17:59:20 -0500
committerAndy Cedilnik <andy.cedilnik@kitware.com>2005-11-08 17:59:20 -0500
commit34e78344516f1ddc8951ab3087fa8c6263021087 (patch)
tree295feffcc108b2ad97348ebc777b2565d5fae5d8 /Source/cmLocalGenerator.cxx
parenteccc4779e44baeb0bdec8b0a83901bcbbf3ff7b8 (diff)
downloadcmake-34e78344516f1ddc8951ab3087fa8c6263021087.tar.gz
ENH: Add support for output reguilar expression
Diffstat (limited to 'Source/cmLocalGenerator.cxx')
-rw-r--r--Source/cmLocalGenerator.cxx31
1 files changed, 30 insertions, 1 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 1aa06867cf..f48f760f3c 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -184,7 +184,36 @@ void cmLocalGenerator::GenerateTestFiles()
fout << "SET_TESTS_PROPERTIES(" << test->GetName() << " PROPERTIES ";
for ( pit = mpit->begin(); pit != mpit->end(); ++ pit )
{
- fout << " " << pit->first.c_str() << " \"" << pit->second.c_str() << "\"";
+ fout << " " << pit->first.c_str() << " \"";
+ const char* value = pit->second.c_str();
+ for ( ; *value; ++ value )
+ {
+ switch ( *value )
+ {
+ case '\\':
+ case '"':
+ case ' ':
+ case '#':
+ case '(':
+ case ')':
+ case '$':
+ case '^':
+ fout << "\\" << *value;
+ break;
+ case '\t':
+ fout << "\\t";
+ break;
+ case '\n':
+ fout << "\\n";
+ break;
+ case '\r':
+ fout << "\\r";
+ break;
+ default:
+ fout << *value;
+ }
+ }
+ fout << "\"";
}
fout << ")" << std::endl;
}