summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2019-05-23 13:45:53 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2019-05-23 13:45:53 +0900
commit2c29133f7ee2a270da8d8504345390a1d60e80fa (patch)
tree8331a09fab028dadf71a8d970c41ab241bac10b4
parent3ae061484d7a4098029d54af72963a163f421312 (diff)
downloadqt3-2c29133f7ee2a270da8d8504345390a1d60e80fa.tar.gz
qt3-2c29133f7ee2a270da8d8504345390a1d60e80fa.zip
Added utility functions qDebug/qWarning/qFatal based on QString parameter.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
-rw-r--r--src/tools/qglobal.cpp122
-rw-r--r--src/tools/qglobal.h11
2 files changed, 85 insertions, 48 deletions
diff --git a/src/tools/qglobal.cpp b/src/tools/qglobal.cpp
index 5eeb854..0720890 100644
--- a/src/tools/qglobal.cpp
+++ b/src/tools/qglobal.cpp
@@ -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);
@@ -492,10 +498,24 @@ void qDebug( 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
@@ -505,24 +525,57 @@ void qWarning( 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
@@ -532,26 +585,7 @@ void qFatal( 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);
}
/*!
diff --git a/src/tools/qglobal.h b/src/tools/qglobal.h
index fac387c..7de3453 100644
--- a/src/tools/qglobal.h
+++ b/src/tools/qglobal.h
@@ -742,7 +742,7 @@ typedef Q_UINT64 Q_ULLONG; // unsigned long long
//
class QDataStream;
-
+class QString;
//
// Feature subsetting
@@ -957,19 +957,22 @@ Q_EXPORT int qWinVersion();
#endif
-Q_EXPORT void qDebug( const char *, ... ) // print debug message
+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 char *, ... ) // print warning message
+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 char *, ... ) // print fatal message and exit
+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)))
#endif