aboutsummaryrefslogtreecommitdiff
path: root/src/renderers/renderhelpers.cpp
diff options
context:
space:
mode:
authorMike Skec <skec@protonmail.ch>2021-03-07 18:32:35 +1100
committerFelix Queißner <felix@ib-queissner.de>2021-03-07 11:25:59 +0100
commit27236f6ef005674dd5799e277dd7843be3b39aac (patch)
tree02817ed3e00020b782c7afbc3e1a46b6324ff28b /src/renderers/renderhelpers.cpp
parentbde8f18a167460c1b31f4bef2f4adc6ff20e13d2 (diff)
downloadkristall-27236f6ef005674dd5799e277dd7843be3b39aac.tar.gz
Add preference for ANSI escape codes
Diffstat (limited to 'src/renderers/renderhelpers.cpp')
-rw-r--r--src/renderers/renderhelpers.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/renderers/renderhelpers.cpp b/src/renderers/renderhelpers.cpp
index 9e44fa8..a18d434 100644
--- a/src/renderers/renderhelpers.cpp
+++ b/src/renderers/renderhelpers.cpp
@@ -340,9 +340,17 @@ static QString cleanLineEndings(QString &input)
void renderhelpers::renderEscapeCodes(const QByteArray &input,
QTextCharFormat& format, const QTextCharFormat& defaultFormat, QTextCursor& cursor)
{
- const auto tokens = input.split(escapeString);
QString inputString = QString::fromUtf8(input);
cleanLineEndings(inputString);
+
+ // Don't render escapes if set to 'ignore'
+ if (kristall::globals().options.ansi_escapes == AnsiEscRenderMode::ignore)
+ {
+ cursor.insertText(input, defaultFormat);
+ return;
+ }
+
+ const auto tokens = input.split(escapeString);
for (QString::const_iterator it = inputString.cbegin(); it != inputString.cend(); ++it)
{
const auto currentCharacter = *it;;
@@ -356,8 +364,15 @@ void renderhelpers::renderEscapeCodes(const QByteArray &input,
parseCSI(input, it, format, defaultFormat, cursor);
}
}
+ else if (kristall::globals().options.ansi_escapes == AnsiEscRenderMode::strip)
+ {
+ // 'strip' mode -> we still interpret escapes as above, but just render
+ // text in the default format.
+ cursor.insertText(currentCharacter, defaultFormat);
+ }
else
{
+ // 'render' mode -> we use the interpreted ANSI format
cursor.insertText(currentCharacter, format);
}
}