X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=pv%2Flogging.cpp;h=e42a9e54e94add49cb46b34f3a5ab216650e6c3f;hb=1db57c0370da371257759903a766629ff58b2576;hp=b04bd9480ac717b82f34674b53d6c50edc9d3ea0;hpb=cd0b243a41af5c63f200a647bf435a50f03ad5d6;p=pulseview.git
diff --git a/pv/logging.cpp b/pv/logging.cpp
index b04bd948..e42a9e54 100644
--- a/pv/logging.cpp
+++ b/pv/logging.cpp
@@ -52,13 +52,15 @@ static void *prev_srd_log_cb_data;
Logging::~Logging()
{
qInstallMessageHandler(nullptr);
- sr_log_callback_set(prev_sr_log_cb, prev_sr_log_cb_data);
- prev_sr_log_cb = NULL;
- prev_sr_log_cb_data = NULL;
+ if (prev_sr_log_cb)
+ sr_log_callback_set(prev_sr_log_cb, prev_sr_log_cb_data);
+ prev_sr_log_cb = nullptr;
+ prev_sr_log_cb_data = nullptr;
#ifdef ENABLE_DECODE
- srd_log_callback_set(prev_srd_log_cb, prev_srd_log_cb_data);
- prev_srd_log_cb = NULL;
- prev_srd_log_cb_data = NULL;
+ if (prev_srd_log_cb)
+ srd_log_callback_set(prev_srd_log_cb, prev_srd_log_cb_data);
+ prev_srd_log_cb = nullptr;
+ prev_srd_log_cb_data = nullptr;
#endif
GlobalSettings::remove_change_handler(this);
@@ -124,10 +126,10 @@ void Logging::log(const QString &text, int source)
switch (source) {
case LogSource_pv:
- s = QString("pv: ") + text; // black is default color
+ s = QString("pv: %1").arg(text);
break;
case LogSource_sr:
- s = QString("sr: %1").arg(text);
+ s = QString("sr: %1").arg(text);
break;
case LogSource_srd:
s = QString("srd: %1").arg(text);
@@ -187,7 +189,10 @@ int Logging::log_srd(void *cb_data, int loglevel, const char *format, va_list ar
va_end(args2);
char *text = g_strdup_vprintf(format, args);
- logging.log(QString::fromUtf8(text), LogSource_srd);
+
+ QString s = QString::fromUtf8(text);
+ for (QString& substring : s.split("\n", QString::SkipEmptyParts))
+ logging.log(substring, LogSource_srd);
g_free(text);
return SR_OK;