This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Fix placement of output in TUI mode


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=bbd94648f2115338bd94e9800ba0e37f09d98a79

commit bbd94648f2115338bd94e9800ba0e37f09d98a79
Author: Tom Tromey <tom@tromey.com>
Date:   Sat Jan 12 13:35:06 2019 -0700

    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.

Diff:
---
 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  <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;
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]