diff options
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r-- | Source/cmSystemTools.cxx | 7 |
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) |