Message ID | 83oapy1yel.fsf@gnu.org |
---|---|
State | New |
Headers | show |
On Friday, January 16 2015, Eli Zaretskii wrote: > Here's what I pushed: > > commit 6cdb25f4df143e8d98bd71bf943bbe61c702e239 > Author: Eli Zaretskii <eliz@gnu.org> > Date: Fri Jan 16 18:24:16 2015 +0200 > > Make setting TUI border attributes take effect immediately > > gdb/ > 2015-01-16 Eli Zaretskii <eliz@gnu.org> > > * tui/tui-win.c (tui_rehighlight_all, tui_set_var_cmd): New > functions. > (_initialize_tui_win) <border-kind, border-mode>: > <active-border-mode>: Use tui_set_var_cmd as the "set" function. > * tui/tui-win.h: Add prototype for tui_rehighlight_all. Hi Eli, This patch does not compile on x86_64 with --enable-targets=all. You can see the failures here: <http://gdb-build.sergiodj.net/builders/Fedora-x86_64-native-extended-gdbserver-m32/builds/14/steps/compile/logs/stdio> > diff --git a/gdb/ChangeLog b/gdb/ChangeLog > index 661f9b6..e45f5c1 100644 > --- a/gdb/ChangeLog > +++ b/gdb/ChangeLog > @@ -1,5 +1,11 @@ > 2015-01-16 Eli Zaretskii <eliz@gnu.org> > > + * tui/tui-win.c (tui_rehighlight_all, tui_set_var_cmd): New > + functions. > + (_initialize_tui_win) <border-kind, border-mode>: > + <active-border-mode>: Use tui_set_var_cmd as the "set" function. > + * tui/tui-win.h: Add prototype for tui_rehighlight_all. > + > * tui/tui-win.c (tui_scroll_left_command, tui_scroll_right_command): > Doc fix. > (tui_set_tab_width_command): Delete and recreate the source and > diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c > index 96fa801..7e9bd1e 100644 > --- a/gdb/tui/tui-win.c > +++ b/gdb/tui/tui-win.c > @@ -344,6 +344,15 @@ struct cmd_list_element ** > return &tuilist; > } > > +/* The set_func hook of "set tui ..." commands that affect the window > + borders on the TUI display. */ > +void > +tui_set_var_cmd (char *null_args, int from_tty, struct cmd_list_element *c) > +{ > + if (tui_update_variables () && tui_active) > + tui_rehighlight_all (); > +} > + > /* Function to initialize gdb commands, for tui window > manipulation. */ > > @@ -420,7 +429,7 @@ Set the width (in characters) of tab stops.\n\ > space use a white space\n\ > ascii use ascii characters + - | for the border\n\ > acs use the Alternate Character Set"), > - NULL, > + tui_set_var_cmd, > show_tui_border_kind, > &tui_setlist, &tui_showlist); > > @@ -436,7 +445,7 @@ Set the width (in characters) of tab stops.\n\ > half-standout use half bright and standout mode\n\ > bold use extra bright or bold\n\ > bold-standout use extra bright or bold with standout mode"), > - NULL, > + tui_set_var_cmd, > show_tui_border_mode, > &tui_setlist, &tui_showlist); > > @@ -452,7 +461,7 @@ Set the width (in characters) of tab stops.\n\ > half-standout use half bright and standout mode\n\ > bold use extra bright or bold\n\ > bold-standout use extra bright or bold with standout mode"), > - NULL, > + tui_set_var_cmd, > show_tui_active_border_mode, > &tui_setlist, &tui_showlist); > } > @@ -646,6 +655,14 @@ Set the width (in characters) of tab stops.\n\ > tui_show_locator_content (); > } > > +void > +tui_rehighlight_all (void) > +{ > + enum tui_win_type type; > + > + for (type = SRC_WIN; type < MAX_MAJOR_WINDOWS; type++) > + tui_check_and_display_highlight_if_needed (tui_win_list[type]); > +} > > /* Resize all the windows based on the terminal size. This function > gets called from within the readline sinwinch handler. */ > diff --git a/gdb/tui/tui-win.h b/gdb/tui/tui-win.h > index 6601d4b..7d77a00 100644 > --- a/gdb/tui/tui-win.h > +++ b/gdb/tui/tui-win.h > @@ -55,4 +55,7 @@ extern void tui_scroll (enum tui_scroll_direction, > /* Create or get the TUI command list. */ > struct cmd_list_element **tui_get_cmd_list (void); > > +/* Set a TUI variable. */ > +void tui_set_var_cmd (char *, int, struct cmd_list_element *); > + > #endif
> From: Sergio Durigan Junior <sergiodj@redhat.com> > Cc: Pedro Alves <palves@redhat.com>, gdb-patches@sourceware.org > Date: Fri, 16 Jan 2015 11:59:05 -0500 > > This patch does not compile on x86_64 with --enable-targets=all. You > can see the failures here: > > <http://gdb-build.sergiodj.net/builders/Fedora-x86_64-native-extended-gdbserver-m32/builds/14/steps/compile/logs/stdio> Sorry, should be fixed now.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 661f9b6..e45f5c1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2015-01-16 Eli Zaretskii <eliz@gnu.org> + * tui/tui-win.c (tui_rehighlight_all, tui_set_var_cmd): New + functions. + (_initialize_tui_win) <border-kind, border-mode>: + <active-border-mode>: Use tui_set_var_cmd as the "set" function. + * tui/tui-win.h: Add prototype for tui_rehighlight_all. + * tui/tui-win.c (tui_scroll_left_command, tui_scroll_right_command): Doc fix. (tui_set_tab_width_command): Delete and recreate the source and diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index 96fa801..7e9bd1e 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -344,6 +344,15 @@ struct cmd_list_element ** return &tuilist; } +/* The set_func hook of "set tui ..." commands that affect the window + borders on the TUI display. */ +void +tui_set_var_cmd (char *null_args, int from_tty, struct cmd_list_element *c) +{ + if (tui_update_variables () && tui_active) + tui_rehighlight_all (); +} + /* Function to initialize gdb commands, for tui window manipulation. */ @@ -420,7 +429,7 @@ Set the width (in characters) of tab stops.\n\ space use a white space\n\ ascii use ascii characters + - | for the border\n\ acs use the Alternate Character Set"), - NULL, + tui_set_var_cmd, show_tui_border_kind, &tui_setlist, &tui_showlist); @@ -436,7 +445,7 @@ Set the width (in characters) of tab stops.\n\ half-standout use half bright and standout mode\n\ bold use extra bright or bold\n\ bold-standout use extra bright or bold with standout mode"), - NULL, + tui_set_var_cmd, show_tui_border_mode, &tui_setlist, &tui_showlist); @@ -452,7 +461,7 @@ Set the width (in characters) of tab stops.\n\ half-standout use half bright and standout mode\n\ bold use extra bright or bold\n\ bold-standout use extra bright or bold with standout mode"), - NULL, + tui_set_var_cmd, show_tui_active_border_mode, &tui_setlist, &tui_showlist); } @@ -646,6 +655,14 @@ Set the width (in characters) of tab stops.\n\ tui_show_locator_content (); } +void +tui_rehighlight_all (void) +{ + enum tui_win_type type; + + for (type = SRC_WIN; type < MAX_MAJOR_WINDOWS; type++) + tui_check_and_display_highlight_if_needed (tui_win_list[type]); +} /* Resize all the windows based on the terminal size. This function gets called from within the readline sinwinch handler. */ diff --git a/gdb/tui/tui-win.h b/gdb/tui/tui-win.h index 6601d4b..7d77a00 100644 --- a/gdb/tui/tui-win.h +++ b/gdb/tui/tui-win.h @@ -55,4 +55,7 @@ extern void tui_scroll (enum tui_scroll_direction, /* Create or get the TUI command list. */ struct cmd_list_element **tui_get_cmd_list (void); +/* Set a TUI variable. */ +void tui_set_var_cmd (char *, int, struct cmd_list_element *); + #endif