34 |
#include <QDateTime> |
#include <QDateTime> |
35 |
#include <QIcon> |
#include <QIcon> |
36 |
|
|
37 |
#if !defined(_WIN32) |
#if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32) |
38 |
#include <unistd.h> |
#include <unistd.h> |
39 |
#include <fcntl.h> |
#include <fcntl.h> |
40 |
#endif |
#endif |
116 |
// Set stdout/stderr blocking mode. |
// Set stdout/stderr blocking mode. |
117 |
bool Messages::stdoutBlock ( int fd, bool bBlock ) const |
bool Messages::stdoutBlock ( int fd, bool bBlock ) const |
118 |
{ |
{ |
119 |
#if !defined(_WIN32) |
#if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32) |
120 |
const int iFlags = ::fcntl(fd, F_GETFL, 0); |
const int iFlags = ::fcntl(fd, F_GETFL, 0); |
121 |
const bool bNonBlock = bool(iFlags & O_NONBLOCK); |
const bool bNonBlock = bool(iFlags & O_NONBLOCK); |
122 |
if (bBlock && bNonBlock) |
if (bBlock && bNonBlock) |
132 |
// Own stdout/stderr socket notifier slot. |
// Own stdout/stderr socket notifier slot. |
133 |
void Messages::stdoutNotify ( int fd ) |
void Messages::stdoutNotify ( int fd ) |
134 |
{ |
{ |
135 |
#if !defined(_WIN32) |
#if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32) |
136 |
// Set non-blocking reads, if not already... |
// Set non-blocking reads, if not already... |
137 |
const bool bBlock = stdoutBlock(fd, false); |
const bool bBlock = stdoutBlock(fd, false); |
138 |
// Read as much as is available... |
// Read as much as is available... |
190 |
// Flush current buffer. |
// Flush current buffer. |
191 |
flushStdoutBuffer(); |
flushStdoutBuffer(); |
192 |
|
|
193 |
#if !defined(_WIN32) |
#if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32) |
194 |
// Destroy if already enabled. |
// Destroy if already enabled. |
195 |
if (!bCapture && m_pStdoutNotifier) { |
if (!bCapture && m_pStdoutNotifier) { |
196 |
delete m_pStdoutNotifier; |
delete m_pStdoutNotifier; |