Browse Source

Fix for bug #12413, nmake did not handle targets with + in the name.

If you had a + in the name of a target with nmake, it created a variable
in the makefile that used + in its name, which is not allowed by nmake.
To make the implementation easier, + is now not allowed for any make
generators as part of a variable name.
Bill Hoffman 14 years ago
parent
commit
281f51e063
1 changed files with 2 additions and 0 deletions
  1. 2 0
      Source/cmLocalUnixMakefileGenerator3.cxx

+ 2 - 0
Source/cmLocalUnixMakefileGenerator3.cxx

@@ -1276,6 +1276,7 @@ cmLocalUnixMakefileGenerator3
   // and there are no "." charactors in the string, then return the
   // unmodified combination.
   if((!this->MakefileVariableSize && unmodified.find('.') == s.npos)
+     && (!this->MakefileVariableSize && unmodified.find('+') == s.npos)
      && (!this->MakefileVariableSize && unmodified.find('-') == s.npos))
     {
     return unmodified;
@@ -1297,6 +1298,7 @@ cmLocalUnixMakefileGenerator3
     {
     cmSystemTools::ReplaceString(ret, ".", "_");
     cmSystemTools::ReplaceString(ret, "-", "__");
+    cmSystemTools::ReplaceString(ret, "+", "___");
     int ni = 0;
     char buffer[5];
     // make sure the _ version is not already used, if