diff mbox

Fix placement of output in TUI mode

Message ID 20190112204020.26388-1-tom@tromey.com
State New
Headers show

Commit Message

Tom Tromey Jan. 12, 2019, 8:40 p.m. UTC
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-12  Tom Tromey  <tom@tromey.com>

	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(+)

Comments

Pedro Alves Jan. 14, 2019, 3:13 p.m. UTC | #1
On 01/12/2019 08:40 PM, Tom Tromey wrote:
> 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-12  Tom Tromey  <tom@tromey.com>
> 
> 	PR tui/28819:
> 	* tui/tui-io.c (gdb_wgetch): Print \r when needed.

Yes, please.

Thanks,
Pedro Alves
diff mbox

Patch

diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c
index 0e53350820..9191ccae7e 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;
 }