Added utility functions qDebug/qWarning/qFatal based on QString parameter.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit 2c29133f7e)
v3.5.13-sru
Michele Calgaro 6 years ago committed by Slávek Banko
parent 5a01017c22
commit 1793a1019b
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -465,21 +465,27 @@ static void mac_default_handler( const char *msg )
#endif
void qDebug( const char *msg, ... )
void handle_buffer(const char *buf, QtMsgType msgType)
{
char buf[QT_BUFFER_LENGTH];
strcpy( buf, QDateTime::currentDateTime().toString("[yyyy/MM/dd hh:mm:ss.zzz] ").ascii() );
int len = strlen(buf);
va_list ap;
va_start( ap, msg ); // use variable arg list
#if defined(QT_VSNPRINTF)
QT_VSNPRINTF( &buf[len], QT_BUFFER_LENGTH, msg, ap );
if ( handler ) {
(*handler)( msgType, buf );
} else if (msgType == QtFatalMsg) {
#if defined(Q_CC_MWERKS)
mac_default_handler(buf);
#else
vsprintf( &buf[len], msg, ap );
fprintf( stderr, "%s\n", buf ); // add newline
#endif
#if defined(Q_OS_UNIX) && defined(QT_DEBUG)
abort(); // trap; generates core dump
#elif defined(Q_OS_TEMP) && defined(QT_DEBUG)
QString fstr;
fstr.sprintf( "%s:%s %s %s\n", __FILE__, __LINE__, QT_VERSION_STR, buf );
OutputDebugString( fstr.ucs2() );
#elif defined(_CRT_ERROR) && defined(_DEBUG)
_CrtDbgReport( _CRT_ERROR, __FILE__, __LINE__, QT_VERSION_STR, buf );
#else
exit( 1 ); // goodbye cruel world
#endif
va_end( ap );
if ( handler ) {
(*handler)( QtDebugMsg, buf );
} else {
#if defined(Q_CC_MWERKS)
mac_default_handler(buf);
@ -519,10 +525,24 @@ void debug( const char *msg, ... )
}
}
void qWarning( const char *msg, ... )
void qDebug( const QString &msg )
{
char buf[QT_BUFFER_LENGTH];
strcpy( buf, QDateTime::currentDateTime().toString("[yyyy/MM/dd hh:mm:ss.zzz] ").ascii() );
strcpy( buf, QDateTime::currentDateTime().toString("[yyyy/MM/dd hh:mm:ss.zzz] ").local8Bit() );
int len = strlen(buf);
strncpy( &buf[len], msg.local8Bit(), QT_BUFFER_LENGTH - len - 1 );
len += msg.length();
if (len >= QT_BUFFER_LENGTH) {
len = QT_BUFFER_LENGTH - 1;
}
buf[len] = '\0';
handle_buffer(buf, QtDebugMsg);
}
void qDebug( const char *msg, ... )
{
char buf[QT_BUFFER_LENGTH];
strcpy( buf, QDateTime::currentDateTime().toString("[yyyy/MM/dd hh:mm:ss.zzz] ").local8Bit() );
int len = strlen(buf);
va_list ap;
va_start( ap, msg ); // use variable arg list
@ -559,24 +579,57 @@ void warning( const char *msg, ... )
vsprintf( &buf[len], msg, ap );
#endif
va_end( ap );
if ( handler ) {
(*handler)( QtWarningMsg, buf );
} else {
#if defined(Q_CC_MWERKS)
mac_default_handler(buf);
#elif defined(Q_OS_TEMP)
QString fstr( buf );
OutputDebugString( (fstr + "\n").ucs2() );
handle_buffer(buf, QtDebugMsg);
}
void qWarning( const QString &msg )
{
char buf[QT_BUFFER_LENGTH];
strcpy( buf, QDateTime::currentDateTime().toString("[yyyy/MM/dd hh:mm:ss.zzz] ").local8Bit() );
int len = strlen(buf);
strncpy( &buf[len], msg.local8Bit(), QT_BUFFER_LENGTH - len - 1 );
len += msg.length();
if (len >= QT_BUFFER_LENGTH) {
len = QT_BUFFER_LENGTH - 1;
}
buf[len] = '\0';
handle_buffer(buf, QtWarningMsg);
}
void qWarning( const char *msg, ... )
{
char buf[QT_BUFFER_LENGTH];
strcpy( buf, QDateTime::currentDateTime().toString("[yyyy/MM/dd hh:mm:ss.zzz] ").local8Bit() );
int len = strlen(buf);
va_list ap;
va_start( ap, msg ); // use variable arg list
#if defined(QT_VSNPRINTF)
QT_VSNPRINTF( &buf[len], QT_BUFFER_LENGTH, msg, ap );
#else
fprintf( stderr, "%s\n", buf ); // add newline
vsprintf( &buf[len], msg, ap );
#endif
va_end( ap );
handle_buffer(buf, QtWarningMsg);
}
void qFatal( const QString &msg )
{
char buf[QT_BUFFER_LENGTH];
strcpy( buf, QDateTime::currentDateTime().toString("[yyyy/MM/dd hh:mm:ss.zzz] ").local8Bit() );
int len = strlen(buf);
strncpy( &buf[len], msg.local8Bit(), QT_BUFFER_LENGTH - len - 1 );
len += msg.length();
if (len >= QT_BUFFER_LENGTH) {
len = QT_BUFFER_LENGTH - 1;
}
buf[len] = '\0';
handle_buffer(buf, QtFatalMsg);
}
void qFatal( const char *msg, ... )
{
char buf[QT_BUFFER_LENGTH];
strcpy( buf, QDateTime::currentDateTime().toString("[yyyy/MM/dd hh:mm:ss.zzz] ").ascii() );
strcpy( buf, QDateTime::currentDateTime().toString("[yyyy/MM/dd hh:mm:ss.zzz] ").local8Bit() );
int len = strlen(buf);
va_list ap;
va_start( ap, msg ); // use variable arg list
@ -621,26 +674,7 @@ void fatal( const char *msg, ... )
vsprintf( &buf[len], msg, ap );
#endif
va_end( ap );
if ( handler ) {
(*handler)( QtFatalMsg, buf );
} else {
#if defined(Q_CC_MWERKS)
mac_default_handler(buf);
#else
fprintf( stderr, "%s\n", buf ); // add newline
#endif
#if defined(Q_OS_UNIX) && defined(QT_DEBUG)
abort(); // trap; generates core dump
#elif defined(Q_OS_TEMP) && defined(QT_DEBUG)
QString fstr;
fstr.sprintf( "%s:%s %s %s\n", __FILE__, __LINE__, QT_VERSION_STR, buf );
OutputDebugString( fstr.ucs2() );
#elif defined(_CRT_ERROR) && defined(_DEBUG)
_CrtDbgReport( _CRT_ERROR, __FILE__, __LINE__, QT_VERSION_STR, buf );
#else
exit( 1 ); // goodbye cruel world
#endif
}
handle_buffer(buf, QtFatalMsg);
}
/*!

@ -752,7 +752,7 @@ typedef Q_UINT64 Q_ULLONG; // unsigned long long
//
class QDataStream;
class QString;
//
// Feature subsetting
@ -969,18 +969,21 @@ Q_EXPORT int qWinVersion();
#endif
Q_EXPORT void qDebug( const QString& ); // print debug message
Q_EXPORT void qDebug( const char *, ... ) // print debug message
#if defined(Q_CC_GNU) && !defined(__INSURE__)
__attribute__ ((format (printf, 1, 2)))
#endif
;
Q_EXPORT void qWarning( const QString& ); // print warning message
Q_EXPORT void qWarning( const char *, ... ) // print warning message
#if defined(Q_CC_GNU) && !defined(__INSURE__)
__attribute__ ((format (printf, 1, 2)))
#endif
;
Q_EXPORT void qFatal( const QString& ); // print fatal message and exit
Q_EXPORT void qFatal( const char *, ... ) // print fatal message and exit
#if defined(Q_CC_GNU)
__attribute__ ((format (printf, 1, 2)))

Loading…
Cancel
Save