aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2020-09-21 14:44:20 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2020-09-24 10:15:32 +0000
commit5cb74af1665fbb9a5c45dd907e824be6b8318f2d (patch)
treee0239a0fdfa70444d1ae9655b257f59f652f36fc /src
parent0158dfcfd2e26a1786d23e9374a8c84e5adc935b (diff)
OutputFormatter: Prevent consecutive newlines from being ignored
Amends b0cad9e9c7. Fixes: QTCREATORBUG-24668 Change-Id: I19a2ea71be91ded8f2c458537dae62a3021afe52 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/libs/utils/outputformatter.cpp7
-rw-r--r--src/plugins/coreplugin/outputwindow.cpp4
2 files changed, 9 insertions, 2 deletions
diff --git a/src/libs/utils/outputformatter.cpp b/src/libs/utils/outputformatter.cpp
index eb6e974dff..d711569e7a 100644
--- a/src/libs/utils/outputformatter.cpp
+++ b/src/libs/utils/outputformatter.cpp
@@ -287,6 +287,13 @@ void OutputFormatter::overridePostPrintAction(const PostPrintAction &postPrintAc
void OutputFormatter::doAppendMessage(const QString &text, OutputFormat format)
{
QTextCharFormat charFmt = charFormat(format);
+
+ // This might cause insertion of a newline character.
+ if (text.isEmpty()) {
+ append(text, charFmt);
+ return;
+ }
+
QList<FormattedText> formattedText = parseAnsi(text, charFmt);
const QString cleanLine = std::accumulate(formattedText.begin(), formattedText.end(), QString(),
[](const FormattedText &t1, const FormattedText &t2) { return t1.text + t2.text; });
diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp
index 80fb566698..4c9b162667 100644
--- a/src/plugins/coreplugin/outputwindow.cpp
+++ b/src/plugins/coreplugin/outputwindow.cpp
@@ -624,7 +624,7 @@ void Internal::CorePlugin::testOutputFormatter()
{
const QString input =
"B to be handled by B\r\n"
- "not to be handled\n"
+ "not to be handled\n\n\n\n"
"A to be handled by A\n"
"continuation for A\r\n"
"B looks like B, but still continuation for A\r\n"
@@ -636,7 +636,7 @@ void Internal::CorePlugin::testOutputFormatter()
"B to be handled by B\n";
const QString output =
"handled by B\n"
- "not to be handled\n"
+ "not to be handled\n\n\n\n"
"handled by A\n"
"handled by A\n"
"handled by A\n"