summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmCommandArgumentParserHelper.cxx23
-rw-r--r--Source/cmCommandArgumentParserHelper.h2
2 files changed, 9 insertions, 16 deletions
diff --git a/Source/cmCommandArgumentParserHelper.cxx b/Source/cmCommandArgumentParserHelper.cxx
index 18f6fe5..b2a31c8 100644
--- a/Source/cmCommandArgumentParserHelper.cxx
+++ b/Source/cmCommandArgumentParserHelper.cxx
@@ -157,27 +157,20 @@ void cmCommandArgumentParserHelper::Print(const char* place, const char* str)
}
}
-char* cmCommandArgumentParserHelper::CombineUnions(const char* in1, const char* in2)
+char* cmCommandArgumentParserHelper::CombineUnions(char* in1, char* in2)
{
- int len = 1;
- if ( in1 )
+ if ( !in1 )
{
- len += strlen(in1);
+ return in2;
}
- if ( in2 )
+ else if ( !in2 )
{
- len += strlen(in2);
+ return in1;
}
+ int len = strlen(in1) + strlen(in2) + 1;
char* out = new char [ len ];
- out[0] = 0;
- if ( in1 )
- {
- strcat(out, in1);
- }
- if ( in2 )
- {
- strcat(out, in2);
- }
+ strcpy(out, in1);
+ strcat(out, in2);
return *(m_Variables.insert(out).first);
}
diff --git a/Source/cmCommandArgumentParserHelper.h b/Source/cmCommandArgumentParserHelper.h
index 0d0ff6c..f82d432 100644
--- a/Source/cmCommandArgumentParserHelper.h
+++ b/Source/cmCommandArgumentParserHelper.h
@@ -64,7 +64,7 @@ public:
const char* GetCurrentCombine() { return this->CurrentCombine.c_str(); }
void UpdateCombine(const char* str1, const char* str2);
void Append(const char* str);
- char* CombineUnions(const char* in1, const char* in2);
+ char* CombineUnions(char* in1, char* in2);
char* ExpandSpecialVariable(const char* key, const char* var);
char* ExpandVariable(const char* var);