From 281f51e063c2f3245d11b085c06a7f4b5fe69fd3 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 24 Aug 2011 16:08:31 -0400 Subject: [PATCH] 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. --- Source/cmLocalUnixMakefileGenerator3.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index 6ab5c2a99..2eae9d056 100644 --- a/Source/cmLocalUnixMakefileGenerator3.cxx +++ b/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