]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Fix handling of terminal escape sequences in TUI
authorTom Tromey <tom@tromey.com>
Fri, 13 Jun 2025 18:54:16 +0000 (12:54 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 1 Jul 2025 21:59:41 +0000 (15:59 -0600)
commit7b18593a9ef94694e2a16ac25133aa8c19dc6a87
tree39ea1de8d6a15125c6def31548cbbff359fd6b3a
parentb054ff604253af016657d5c93e2f69dab14cc53a
Fix handling of terminal escape sequences in TUI

A user noticed that if the remote sends terminal escape sequences from
the "monitor" command, then these will not be correctly displayed when
in TUI mode.

I tracked this down to remote.c emitting one character at a time --
something the TUI output functions did not handle correctly.

I decided in the end to fix in this in the ui-file layer, because the
same bug seems to affect logging and, as is evidenced by the test case
in this patch, Python output in TUI mode.

The idea is simple: buffer escape sequences until they are either
complete or cannot possibly be recognized by gdb.

Regression tested on x86-64 Fedora 40.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=14126
Approved-By: Andrew Burgess <aburgess@redhat.com>
gdb/testsuite/gdb.tui/esc-match.exp [new file with mode: 0644]
gdb/testsuite/gdb.tui/esc-match.py [new file with mode: 0644]
gdb/tui/tui-file.c
gdb/tui/tui-file.h
gdb/ui-file.c
gdb/ui-file.h
gdb/ui-style.c
gdb/ui-style.h
gdb/utils.c