diff options
Diffstat (limited to 'Source/cmCommandArgumentParserHelper.cxx')
-rw-r--r-- | Source/cmCommandArgumentParserHelper.cxx | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Source/cmCommandArgumentParserHelper.cxx b/Source/cmCommandArgumentParserHelper.cxx index 1d37a34..d446e15 100644 --- a/Source/cmCommandArgumentParserHelper.cxx +++ b/Source/cmCommandArgumentParserHelper.cxx @@ -37,6 +37,7 @@ cmCommandArgumentParserHelper::cmCommandArgumentParserHelper() strcpy(this->BSLASHVariable, "\\"); this->NoEscapeMode = false; + this->ReplaceAtSyntax = false; } @@ -115,6 +116,21 @@ char* cmCommandArgumentParserHelper::ExpandVariable(const char* var) return this->AddString(value); } +char* cmCommandArgumentParserHelper::ExpandVariableForAt(const char* var) +{ + if(this->ReplaceAtSyntax) + { + return this->ExpandVariable(var); + } + else + { + std::string ref = "@"; + ref += var; + ref += "@"; + return this->AddString(ref.c_str()); + } +} + char* cmCommandArgumentParserHelper::CombineUnions(char* in1, char* in2) { if ( !in1 ) @@ -172,6 +188,7 @@ bool cmCommandArgumentParserHelper::HandleEscapeSymbol case '(': case ')': case '$': + case '@': case '^': this->AllocateParserType(pt, &symbol, 1); break; |