diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2020-03-30 15:49:15 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2020-03-30 13:56:38 +0000 |
commit | 4e199eed8d0bbe175babec209e0435ef60e82022 (patch) | |
tree | d63bf2d8531fd912bea90af89ed40bb48c48fe3a /src | |
parent | d3cf1549ee3050149427c8aff8d8e86190da4952 (diff) |
OutputFormatter: Re-add handling of stand-alone carriage return
Amends 054e7c2164.
Change-Id: If8ee94c3377ff71c8b5d87d431d8b6a2c87bb6f6
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/utils/outputformatter.cpp | 12 | ||||
-rw-r--r-- | src/plugins/coreplugin/outputwindow.cpp | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/libs/utils/outputformatter.cpp b/src/libs/utils/outputformatter.cpp index a1a98a1fbe..87680cb0fd 100644 --- a/src/libs/utils/outputformatter.cpp +++ b/src/libs/utils/outputformatter.cpp @@ -108,8 +108,16 @@ QList<FormattedText> OutputFormatter::parseAnsi(const QString &text, const QText void OutputFormatter::append(const QString &text, const QTextCharFormat &format) { - if (!text.isEmpty()) - d->cursor.insertText(text, format); + int startPos = 0; + int crPos = -1; + while ((crPos = text.indexOf('\r', startPos)) >= 0) { + d->cursor.insertText(text.mid(startPos, crPos - startPos), format); + d->cursor.clearSelection(); + d->cursor.movePosition(QTextCursor::StartOfBlock, QTextCursor::KeepAnchor); + startPos = crPos + 1; + } + if (startPos < text.count()) + d->cursor.insertText(text.mid(startPos), format); } QTextCursor &OutputFormatter::cursor() const diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp index e6b03b2c7a..bf939953d4 100644 --- a/src/plugins/coreplugin/outputwindow.cpp +++ b/src/plugins/coreplugin/outputwindow.cpp @@ -555,6 +555,7 @@ void Internal::CorePlugin::testOutputFormatter() "A next A\n" "A end of next A\n" " A trick\r\n" + "line with \r embedded carriage return\n" "B to be handled by B\n"; const QString output = "handled by B\n" @@ -566,6 +567,7 @@ void Internal::CorePlugin::testOutputFormatter() "handled by A\n" "handled by A\n" " A trick\n" + " embedded carriage return\n" "handled by B\n"; TestFormatterA formatterA; TestFormatterB formatterB; |