BUG: fix for bug# 3664

This commit is contained in:
Bill Hoffman 2006-10-04 11:33:07 -04:00
parent 4f304e7a07
commit 8750b1960e

View File

@ -1021,7 +1021,19 @@ void cmLocalVisualStudio7Generator::OutputDefineFlags(const char* flags,
// with a backslash. The entire definition should be quoted in // with a backslash. The entire definition should be quoted in
// the generated xml attribute to avoid confusing the VS parser. // the generated xml attribute to avoid confusing the VS parser.
cmSystemTools::ReplaceString(define, "\"", "\\""); cmSystemTools::ReplaceString(define, "\"", "\\"");
// if the define has something in it that is not a letter or a number
// then quote it
if(define.
find_first_not_of(
"-_abcdefghigklmnopqrstuvwxyz1234567890ABCDEFGHIGKLMNOPQRSTUVWXYZ")
!= define.npos)
{
fout << "&quot;" << define << "&quot;,"; fout << "&quot;" << define << "&quot;,";
}
else
{
fout << define << ",";
}
if(!done) if(!done)
{ {
pos = defs.find("-D", nextpos); pos = defs.find("-D", nextpos);