summaryrefslogtreecommitdiffstats
path: root/Source/cmCommandArgumentParserHelper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmCommandArgumentParserHelper.cxx')
-rw-r--r--Source/cmCommandArgumentParserHelper.cxx17
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;