Enrico Forestieri wrote:
> On Fri, Jul 16, 2010 at 11:15:25AM +0200, Peter Kümmel wrote:
>> Enrico Forestieri wrote:
>>> @@ -254,6 +254,8 @@
>>>             // Check whether we have to simply throw away the output.
>>>             if (out_file_ != os::nulldev())
>>>                     process_->setStandardOutputFile(toqstr(out_file_));
>>> +           // Don't output to terminal if stdout is redirected
>>> +           terminal_out_exists_ = false;
>>>     }
>>>
>>> Then, are you sure that sending binary data also to the progress
>>> interface doesn't cause any harm?
>> I think this is addressed by setStandardOutputFile:
>>
>> When there is a outfile and it is not nulldev then the output is redirected
>> to the file: process_->setStandardOutputFile(toqstr(out_file_));
>>
>> setStandardOutputFile:
>> "Redirects the process' standard output to the file fileName.
>> When the redirection is in place, the standard output read channel
>> is closed: reading from it using read() will always fail,
>> as will readAllStandardOutput()."
> 
> Nonetheless, can you please add those two simple lines?
> I don't have time to check and would feel more comfortable.
> 

See patch:

        if (!out_file_.empty()) {
+               // Don't output to terminal if stdout is redirected
+               use_stdout_ = false;
                // Check whether we have to simply throw away the output.
                if (out_file_ != os::nulldev())
                        process_->setStandardOutputFile(toqstr(out_file_));

Reply via email to