From bbd94648f2115338bd94e9800ba0e37f09d98a79 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sat, 12 Jan 2019 13:35:06 -0700 Subject: [PATCH] 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 PR tui/28819: * tui/tui-io.c (gdb_wgetch): Print \r when needed. --- gdb/ChangeLog | 5 +++++ gdb/tui/tui-io.c | 6 ++++++ 2 files changed, 11 insertions(+) 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 + + PR tui/28819: + * tui/tui-io.c (gdb_wgetch): Print \r when needed. + 2019-01-14 Pedro Franco de Carvalho * ppc-tdep.h (struct gdbarch_tdep) : 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; } -- 2.7.4