diff --git a/metainfo.xml b/metainfo.xml
index ceeb1853f5..13df53a416 100644
--- a/metainfo.xml
+++ b/metainfo.xml
@@ -121,6 +121,7 @@
Fixes bad wording of OS/X to macOS (#1462)
Fixes key bindings and search prompt collision (#1472)
Fixes `CSI 8 ; (COLS) ; (ROWS) t` to resize the terminal with respect to High-DPI
+ Fixes status line crush (#1511)
diff --git a/src/vtbackend/Terminal.cpp b/src/vtbackend/Terminal.cpp
index 4a79bb17c1..e808d7f5b1 100644
--- a/src/vtbackend/Terminal.cpp
+++ b/src/vtbackend/Terminal.cpp
@@ -1253,20 +1253,24 @@ struct LocalSequenceHandler // {{{
instructionCounter = 0;
targetScreen.processSequence(seq);
}
-
void writeText(char32_t codepoint)
{
instructionCounter++;
targetScreen.writeText(codepoint);
}
- [[nodiscard]] size_t writeText(std::string_view chars, size_t cellCount)
+ [[nodiscard]] size_t writeText(std::string_view chars, size_t)
{
- assert(!chars.empty());
- instructionCounter += chars.size();
- targetScreen.writeText(chars, cellCount);
- return terminal.settings().pageSize.columns.as()
- - terminal.currentScreen().cursor().position.column.as();
+ // implementation of targetScreen.writeText(chars, cellCount)
+ // is buggy and does not work correctly
+ // so we do not use optimization for
+ // ParserEvents::print(chars,cellCount)
+ // but write char by char
+ // TODO fix targetScreen.writeText(chars, cellCount)
+ for (auto c: chars)
+ targetScreen.writeText(c);
+
+ return 0;
}
void writeTextEnd() { targetScreen.writeTextEnd(); }