Fix placement of output in TUI mode
Commit Message
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
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
@@ -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;
}