summaryrefslogtreecommitdiffstats
path: root/Source/cmSystemTools.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r--Source/cmSystemTools.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 1e2de6e..1d12ac9 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -400,6 +400,7 @@ bool cmSystemTools::RunSingleCommand(
cmsysProcess_SetTimeout(cp, timeout);
cmsysProcess_Execute(cp);
+ std::vector<char> tempOutput;
char* data;
int length;
while(cmsysProcess_WaitForData(cp, (cmsysProcess_Pipe_STDOUT |
@@ -408,7 +409,7 @@ bool cmSystemTools::RunSingleCommand(
{
if ( output )
{
- output->append(data, length);
+ tempOutput.insert(tempOutput.end(), data, data+length);
}
if(verbose)
{
@@ -417,6 +418,10 @@ bool cmSystemTools::RunSingleCommand(
}
cmsysProcess_WaitForExit(cp, 0);
+ if ( output )
+ {
+ output->append(&*tempOutput.begin(), tempOutput.size());
+ }
bool result = true;
if(cmsysProcess_GetState(cp) == cmsysProcess_State_Exited)