/*! Reads a line of text from standard error, excluding any trailing newline or carriage return characters and returns it. Returns QString::null if canReadLineStderr() returns FALSE. By default, the text is interpreted to be in Latin-1 encoding. If you need other codecs, you can set a different codec with QTextCodec::setCodecForCStrings(). \sa canReadLineStderr() readyReadStderr() readStderr() readLineStdout() */ QString QProcess::readLineStderr() { QByteArray a( 256 ); QMembuf *buf = membufStderr(); if ( !buf->scanNewline( &a ) ) { if ( !canReadLineStderr() ) return QString::null; if ( !buf->scanNewline( &a ) ) return QString( buf->readAll() ); } uint size = a.size(); buf->consumeBytes( size, 0 ); // get rid of terminating \n or \r\n if ( size>0 && a.at( size - 1 ) == '\n' ) { if ( size>1 && a.at( size - 2 ) == '\r' ) a.at( size - 2 ) = '\0'; else a.at( size - 1 ) = '\0'; } return QString( a ); }
/*! Reads a line of text from standard error, excluding any trailing newline or carriage return characters and returns it. Returns an empty string if canReadLineStderr() returns false. By default, the text is interpreted to be in Latin-1 encoding. If you need other codecs, you can set a different codec with QTextCodec::setCodecForCStrings(). \sa canReadLineStderr() readyReadStderr() readStderr() readLineStdout() */ QString Q3Process::readLineStderr() { QByteArray a( 256 ); Q3Membuf *buf = membufStderr(); if ( !buf->scanNewline( &a ) ) { if ( !canReadLineStderr() ) return QString(); if ( !buf->scanNewline( &a ) ) return QString( QString::fromLatin1( buf->readAll().constData() ) ); } uint size = a.size(); buf->consumeBytes( size, 0 ); // get rid of terminating \n or \r\n if ( size>0 && a.at( size - 1 ) == '\n' ) { if ( size>1 && a.at( size - 2 ) == '\r' ) a.chop(2); else a.chop(1); } return QString( QString::fromLatin1( a.constData() ) ); }