|  | @@ -62,6 +62,7 @@ bool cmProcess::StartProcess()
 | 
	
		
			
				|  |  |                                       this->WorkingDirectory.c_str());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    cmsysProcess_SetTimeout(this->Process, this->Timeout);
 | 
	
		
			
				|  |  | +  cmsysProcess_SetOption(this->Process, cmsysProcess_Option_MergeOutput, 1);
 | 
	
		
			
				|  |  |    cmsysProcess_Execute(this->Process);
 | 
	
		
			
				|  |  |    return (cmsysProcess_GetState(this->Process)
 | 
	
		
			
				|  |  |            == cmsysProcess_State_Executing);
 | 
	
	
		
			
				|  | @@ -124,14 +125,10 @@ int cmProcess::GetNextOutputLine(std::string& line, double timeout)
 | 
	
		
			
				|  |  |    for(;;)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |      // Look for lines already buffered.
 | 
	
		
			
				|  |  | -    if(this->StdOut.GetLine(line))
 | 
	
		
			
				|  |  | +    if(this->Output.GetLine(line))
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  |        return cmsysProcess_Pipe_STDOUT;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -    else if(this->StdErr.GetLine(line))
 | 
	
		
			
				|  |  | -      {
 | 
	
		
			
				|  |  | -      return cmsysProcess_Pipe_STDERR;
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Check for more data from the process.
 | 
	
		
			
				|  |  |      char* data;
 | 
	
	
		
			
				|  | @@ -143,11 +140,7 @@ int cmProcess::GetNextOutputLine(std::string& line, double timeout)
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      else if(p == cmsysProcess_Pipe_STDOUT)
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  | -      this->StdOut.insert(this->StdOut.end(), data, data+length);
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    else if(p == cmsysProcess_Pipe_STDERR)
 | 
	
		
			
				|  |  | -      {
 | 
	
		
			
				|  |  | -      this->StdErr.insert(this->StdErr.end(), data, data+length);
 | 
	
		
			
				|  |  | +      this->Output.insert(this->Output.end(), data, data+length);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      else // p == cmsysProcess_Pipe_None
 | 
	
		
			
				|  |  |        {
 | 
	
	
		
			
				|  | @@ -157,14 +150,10 @@ int cmProcess::GetNextOutputLine(std::string& line, double timeout)
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // Look for partial last lines.
 | 
	
		
			
				|  |  | -  if(this->StdOut.GetLast(line))
 | 
	
		
			
				|  |  | +  if(this->Output.GetLast(line))
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |      return cmsysProcess_Pipe_STDOUT;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -  else if(this->StdErr.GetLast(line))
 | 
	
		
			
				|  |  | -    {
 | 
	
		
			
				|  |  | -    return cmsysProcess_Pipe_STDERR;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // No more data.  Wait for process exit.
 | 
	
		
			
				|  |  |    if(!cmsysProcess_WaitForExit(this->Process, &timeout))
 |