Patchwork Make TUI borders respect "set style enabled"

login
register
mail settings
Submitter Tom Tromey
Date Jan. 4, 2020, 9:37 p.m.
Message ID <20200104213701.14414-1-tom@tromey.com>
Download mbox | patch
Permalink /patch/37199/
State New
Headers show

Comments

Tom Tromey - Jan. 4, 2020, 9:37 p.m.
When adding support for styling the TUI borders, I neglected to have
this code check cli_styling.  As a result, "set style enabled off"
does not affect the borders.

This patch fixes this oversight.  While doing this, I found that
running gdb without an executable, enabling the TUI, and then trying
"set style enabled off" would fail with the mysterious "No registers".
The fix for this is to use deprecated_safe_get_selected_frame in
tui_source_window_base::refill.

gdb/ChangeLog
2020-01-04  Tom Tromey  <tom@tromey.com>

	* tui/tui-wingeneral.c (box_win): Check cli_styling.
	* tui/tui-winsource.c (tui_source_window_base::refill): Use
	deprecated_safe_get_selected_frame.

Change-Id: I36acda25dd9014d994d366b4a0e8faee9d95d0f8
---
 gdb/ChangeLog            | 6 ++++++
 gdb/tui/tui-wingeneral.c | 7 ++++---
 gdb/tui/tui-winsource.c  | 6 +++++-
 3 files changed, 15 insertions(+), 4 deletions(-)
Doug Evans via gdb-patches - Jan. 4, 2020, 9:44 p.m.
On Sat, Jan 4, 2020 at 4:37 PM Tom Tromey <tom@tromey.com> wrote:
>
> When adding support for styling the TUI borders, I neglected to have
> this code check cli_styling.  As a result, "set style enabled off"
> does not affect the borders.
>
> This patch fixes this oversight.  While doing this, I found that
> running gdb without an executable, enabling the TUI, and then trying
> "set style enabled off" would fail with the mysterious "No registers".
> The fix for this is to use deprecated_safe_get_selected_frame in
> tui_source_window_base::refill.

So I don't know this code, but if you have to add a call to that
function maybe it shouldn't be deprecated?

Christian
Tom Tromey - Jan. 6, 2020, 2:55 p.m.
>>>>> "Christian" == Christian Biesinger <cbiesinger@google.com> writes:

Christian> So I don't know this code, but if you have to add a call to that
Christian> function maybe it shouldn't be deprecated?

I tend to think we should just un-deprecate this particular call.
It's useful to be able to see if there's a frame without having to
handle an exception.

Tom
Tom Tromey - Jan. 11, 2020, 7:41 p.m.
>>>>> "Tom" == Tom Tromey <tom@tromey.com> writes:

Tom> gdb/ChangeLog
Tom> 2020-01-04  Tom Tromey  <tom@tromey.com>

Tom> 	* tui/tui-wingeneral.c (box_win): Check cli_styling.
Tom> 	* tui/tui-winsource.c (tui_source_window_base::refill): Use
Tom> 	deprecated_safe_get_selected_frame.

I'm checking this in now.

Tom

Patch

diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
index dae4255ada2..0a9fc5238d6 100644
--- a/gdb/tui/tui-wingeneral.c
+++ b/gdb/tui/tui-wingeneral.c
@@ -55,9 +55,10 @@  box_win (struct tui_win_info *win_info,
 
   /* tui_apply_style resets the style entirely, so be sure to call it
      before applying ATTRS.  */
-  tui_apply_style (win, (highlight_flag
-			 ? tui_active_border_style.style ()
-			 : tui_border_style.style ()));
+  if (cli_styling)
+    tui_apply_style (win, (highlight_flag
+			   ? tui_active_border_style.style ()
+			   : tui_border_style.style ()));
   wattron (win, attrs);
 #ifdef HAVE_WBORDER
   wborder (win, tui_border_vline, tui_border_vline,
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 69070115ec6..fbee2e3e181 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -352,7 +352,11 @@  tui_source_window_base::refill ()
     {
       sal = get_current_source_symtab_and_line ();
       if (sal.symtab == NULL)
-	sal = find_pc_line (get_frame_pc (get_selected_frame (NULL)), 0);
+	{
+	  struct frame_info *fi = deprecated_safe_get_selected_frame ();
+	  if (fi != nullptr)
+	    sal = find_pc_line (get_frame_pc (fi), 0);
+	}
     }
 
   if (sal.pspace == nullptr)