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(); }