diff options
author | Tom Tromey <tom@tromey.com> | 2019-01-12 13:35:06 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-01-14 16:17:17 -0700 |
commit | bbd94648f2115338bd94e9800ba0e37f09d98a79 (patch) | |
tree | faf3114909bef4bf765392efecd1a3a8a985fc7f | |
parent | 8f0a21480babea5b22cba13a3bee722408ca57e3 (diff) | |
download | fsf-binutils-gdb-bbd94648f2115338bd94e9800ba0e37f09d98a79.zip fsf-binutils-gdb-bbd94648f2115338bd94e9800ba0e37f09d98a79.tar.gz fsf-binutils-gdb-bbd94648f2115338bd94e9800ba0e37f09d98a79.tar.bz2 |
Fix placement of output in TUI mode
The fix for PR tui/28819 regressed gdb command output a bit. In
"nonl" mode, pressing the Enter key will result in a newline not being
echoed properly, so that gdb output for the command will begin on the
same line as the input.
This patch changes gdb_wgetch to echo the newline. I have only tested
this interactively, as the TUI doesn't have automated tests in
general.
gdb/ChangeLog
2019-01-14 Tom Tromey <tom@tromey.com>
PR tui/28819:
* tui/tui-io.c (gdb_wgetch): Print \r when needed.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/tui/tui-io.c | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 384792c..d887e06 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2019-01-14 Tom Tromey <tom@tromey.com> + + PR tui/28819: + * tui/tui-io.c (gdb_wgetch): Print \r when needed. + 2019-01-14 Pedro Franco de Carvalho <pedromfc@linux.ibm.com> * ppc-tdep.h (struct gdbarch_tdep) <ppc_v0_alias_regnum>: New diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c index 0e53350..9191cca 100644 --- a/gdb/tui/tui-io.c +++ b/gdb/tui/tui-io.c @@ -609,6 +609,12 @@ gdb_wgetch (WINDOW *win) nonl (); int r = wgetch (win); nl (); + /* In nonl mode, if the user types Enter, it will not be echoed + properly. This will result in gdb output appearing immediately + after the command. So, if we read \r, emit a \r now, after nl + mode has been re-entered, so that the output looks correct. */ + if (r == '\r') + puts ("\r"); return r; } |