summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEl Mehdi Fekari <mfekari@rim.com>2013-05-29 16:52:14 +0200
committerTobias Hunger <tobias.hunger@digia.com>2013-06-03 10:08:37 +0200
commitdb7caaa76c3118375d435e84973d057e548bcd10 (patch)
tree35e56d66287f597dd249f950486ec22124fdd252
parentb45fbc57f03c0048f4b78d79db7274e65a924bcf (diff)
downloadqt-creator-db7caaa76c3118375d435e84973d057e548bcd10.tar.gz
Qnx: Fix slog2er parsing when logs contain \n
If the logs contain a '\n' the message parts in the new lines are not displayed. The new line messages are displayed with no buffer details and are ignored when the parsing is processed. Cherry-picked: a7fa0dd4b9c113dda6c94b9bd27990424a91c81c Change-Id: I0e174dd5283a64c4e9b0434c06dd417f1be2c810 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
-rw-r--r--src/plugins/qnx/blackberryapplicationrunner.cpp42
-rw-r--r--src/plugins/qnx/blackberryapplicationrunner.h1
2 files changed, 30 insertions, 13 deletions
diff --git a/src/plugins/qnx/blackberryapplicationrunner.cpp b/src/plugins/qnx/blackberryapplicationrunner.cpp
index 34d661d91b..54e22d76c6 100644
--- a/src/plugins/qnx/blackberryapplicationrunner.cpp
+++ b/src/plugins/qnx/blackberryapplicationrunner.cpp
@@ -85,6 +85,7 @@ BlackBerryApplicationRunner::BlackBerryApplicationRunner(bool debugMode, BlackBe
: QObject(parent)
, m_debugMode(debugMode)
, m_slog2infoFound(false)
+ , m_currentLogs(false)
, m_pid(-1)
, m_appId(QString())
, m_running(false)
@@ -179,6 +180,7 @@ ProjectExplorer::RunControl::StopResult BlackBerryApplicationRunner::stop()
return ProjectExplorer::RunControl::AsynchronousStop;
m_stopping = true;
+ m_currentLogs = false;
if (m_testSlog2Process && m_testSlog2Process->isProcessRunning()) {
m_testSlog2Process->cancel();
@@ -330,19 +332,33 @@ void BlackBerryApplicationRunner::handleTailOutput()
if (m_slog2infoFound) {
const QStringList multiLine = message.split(QLatin1Char('\n'));
Q_FOREACH (const QString &line, multiLine) {
- QDateTime dateTime = QDateTime::fromString(line.split(m_appId).first().mid(4).trimmed(),
- QString::fromLatin1("dd HH:mm:ss.zzz"));
- if (dateTime >= m_launchDateTime) {
- QStringList validLineBeginnings;
- validLineBeginnings << QLatin1String("qt-msg 0 ")
- << QLatin1String("qt-msg* 0 ")
- << QLatin1String("default* 9000 ")
- << QLatin1String("default 9000 ")
- << QLatin1String(" 0 ");
- Q_FOREACH (const QString &beginning, validLineBeginnings) {
- if (showQtMessage(beginning, line))
- break;
- }
+ // Check if logs are from the recent launch
+ // Note: This is useless if/once slog2info -b displays only logs from recent launches
+ if (!m_currentLogs) {
+ QDateTime dateTime = QDateTime::fromString(line.split(m_appId).first().mid(4).trimmed(),
+ QString::fromLatin1("dd HH:mm:ss.zzz"));
+
+ m_currentLogs = dateTime >= m_launchDateTime;
+ if (!m_currentLogs)
+ continue;
+ }
+
+ // The line could be a part of a previous log message that contains a '\n'
+ // In that case only the message body is displayed
+ if (!line.contains(m_appId) && !line.isEmpty()) {
+ emit output(line + QLatin1Char('\n'), Utils::StdOutFormat);
+ continue;
+ }
+
+ QStringList validLineBeginnings;
+ validLineBeginnings << QLatin1String("qt-msg 0 ")
+ << QLatin1String("qt-msg* 0 ")
+ << QLatin1String("default* 9000 ")
+ << QLatin1String("default 9000 ")
+ << QLatin1String(" 0 ");
+ Q_FOREACH (const QString &beginning, validLineBeginnings) {
+ if (showQtMessage(beginning, line))
+ break;
}
}
return;
diff --git a/src/plugins/qnx/blackberryapplicationrunner.h b/src/plugins/qnx/blackberryapplicationrunner.h
index f9bf0161d8..788d0c3dbe 100644
--- a/src/plugins/qnx/blackberryapplicationrunner.h
+++ b/src/plugins/qnx/blackberryapplicationrunner.h
@@ -98,6 +98,7 @@ private:
bool m_debugMode;
bool m_slog2infoFound;
+ bool m_currentLogs;
QDateTime m_launchDateTime;