Introduce function for directly updating GDB's screen dimensions

... to replace the roundabout pattern of

  execute_command ("set width %d");
  execute_command ("set height %d");

for doing the same thing.

gdb/ChangeLog:

	* utils.h (set_screen_width_and_height): Declare.
	* utils.c (set_screen_width_and_height): Define.
	* tui/tui-win.c (tui_update_gdb_sizes): Use it.
This commit is contained in:
Patrick Palka 2015-04-23 18:31:38 -04:00
parent ff862be47e
commit d6e5e7f7fd
4 changed files with 35 additions and 8 deletions

View File

@ -1,3 +1,9 @@
2015-04-28 Patrick Palka <patrick@parcs.ath.cx>
* utils.h (set_screen_width_and_height): Declare.
* utils.c (set_screen_width_and_height): Define.
* tui/tui-win.c (tui_update_gdb_sizes): Use it.
2015-04-28 Gary Benson <gbenson@redhat.com>
* infrun.c (solist.h): New include.

View File

@ -465,15 +465,20 @@ bold-standout use extra bright or bold with standout mode"),
void
tui_update_gdb_sizes (void)
{
char cmd[50];
int width, height;
/* Set to TUI command window dimension or use readline values. */
xsnprintf (cmd, sizeof (cmd), "set width %d",
tui_active ? TUI_CMD_WIN->generic.width : tui_term_width());
execute_command (cmd, 0);
xsnprintf (cmd, sizeof (cmd), "set height %d",
tui_active ? TUI_CMD_WIN->generic.height : tui_term_height());
execute_command (cmd, 0);
if (tui_active)
{
width = TUI_CMD_WIN->generic.width;
height = TUI_CMD_WIN->generic.height;
}
else
{
width = tui_term_width ();
height = tui_term_height ();
}
set_screen_width_and_height (width, height);
}

View File

@ -1795,6 +1795,18 @@ set_height_command (char *args, int from_tty, struct cmd_list_element *c)
set_screen_size ();
}
/* See utils.h. */
void
set_screen_width_and_height (int width, int height)
{
lines_per_page = height;
chars_per_line = width;
set_screen_size ();
set_width ();
}
/* Wait, so the user can read what's on the screen. Prompt the user
to continue by pressing RETURN. */

View File

@ -174,6 +174,10 @@ extern struct ui_file *gdb_stdtarg;
extern struct ui_file *gdb_stdtargerr;
extern struct ui_file *gdb_stdtargin;
/* Set the screen dimensions to WIDTH and HEIGHT. */
extern void set_screen_width_and_height (int width, int height);
/* More generic printf like operations. Filtered versions may return
non-locally on error. */