qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] ui/console-vc: various fixes and improvements
@ 2025-02-26  7:59 Roman Penyaev
  2025-02-26  7:59 ` [PATCH v2 1/5] ui/console-vc: introduce parsing of the 'ESC ( <ch>' sequence Roman Penyaev
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Roman Penyaev @ 2025-02-26  7:59 UTC (permalink / raw)
  Cc: Roman Penyaev, Marc-André Lureau, Kevin Wolf,
	Daniel P . Berrange, qemu-devel

This patch series brings several fixes and improvements to the QEMU
virtual console (VC), making it more usable and aligning it better
with VT100 spec. The updates include support for inserting and
deleting characters, better cursor handling and correct position
reporting. Without these changes, the console is hardly usable.

1. Support for DCH (delete) and ICH (insert) commands
  * Properly handles character deletion and insertion as per VT100
    specs.

2. Add support for cursor save/restore (ESC 7 and ESC 8)
  * Implements legacy DEC sequences for compatibility.
  * Ensures cursor attributes are also saved and restored.

3. Fix cursor position reporting
  * Reports cursor position relative to the screen instead of the
    scroll buffer.
  * Fixes issues with tools that rely on accurate cursor placement.

4. Ensure DSR (Device Status Report) responses go to applications
  * Stops terminal from rendering responses to the screen but instead
    send reports back to applications.

5. Handle `ESC ( <ch>` character set sequences
  * Makes `top` output look clean by handling the character set
    commands.

These changes improve the virtual console's compatibility with
terminal-based apps. Without them, the console is quite frustrating to
use.

v1 .. v2:

* The VT spec and ECMA-48 standard are somewhat vague about exactly
  what attributes should be set for the ICH (insert character),
  but various terminal implementations reset the character to the
  default state. Instead of inserting a "space" with the current
  attribute, call `vc_clear_xy()` for the inserted character.

Signed-off-by: Roman Penyaev <r.peniaev@gmail.com>
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Daniel P. Berrange <berrange@redhat.com>
Cc: qemu-devel@nongnu.org

Roman Penyaev (5):
  ui/console-vc: introduce parsing of the 'ESC ( <ch>' sequence
  ui/console-vc: report to the application instead of screen rendering
  ui/console-vc: report cursor position in the screen not in the scroll
    buffer
  ui/console-vc: add support for cursor DECSC and DECRC commands
  ui/console-vc: implement DCH (delete) and ICH (insert) commands

 ui/console-vc.c | 154 ++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 142 insertions(+), 12 deletions(-)

-- 
2.43.0



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-03-04  8:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-26  7:59 [PATCH v2 0/5] ui/console-vc: various fixes and improvements Roman Penyaev
2025-02-26  7:59 ` [PATCH v2 1/5] ui/console-vc: introduce parsing of the 'ESC ( <ch>' sequence Roman Penyaev
2025-02-26  7:59 ` [PATCH v2 2/5] ui/console-vc: report to the application instead of screen rendering Roman Penyaev
2025-02-26  7:59 ` [PATCH v2 3/5] ui/console-vc: report cursor position in the screen not in the scroll buffer Roman Penyaev
2025-02-26  7:59 ` [PATCH v2 4/5] ui/console-vc: add support for cursor DECSC and DECRC commands Roman Penyaev
2025-02-26  7:59 ` [PATCH v2 5/5] ui/console-vc: implement DCH (delete) and ICH (insert) commands Roman Penyaev
2025-02-26 10:06 ` [PATCH v2 0/5] ui/console-vc: various fixes and improvements Marc-André Lureau
2025-03-04  8:48   ` Roman Penyaev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).