diff --git a/gdb/tui/ChangeLog b/gdb/tui/ChangeLog index 01ac7d98b21..32df100e77d 100644 --- a/gdb/tui/ChangeLog +++ b/gdb/tui/ChangeLog @@ -1,3 +1,11 @@ +2002-08-24 Stephane Carrez + + * tuiWin.c (tui_update_gdb_sizes): New function to tell gdb what + is the size of command window. + (tuiResizeAll): Call it instead of init_page_info. + * tui.c (tui_enable): Call it to resize to TUI command window. + (tui_disable): Likewise for plain screen. + 2002-08-24 Stephane Carrez * tui.c (tui_enable): Use tuiSetLayout instead of showLayout and diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c index 33232a50cdb..8ead02f5b0d 100644 --- a/gdb/tui/tui.c +++ b/gdb/tui/tui.c @@ -262,6 +262,7 @@ tui_enable (void) tui_version = 1; tui_active = 1; refresh (); + tui_update_gdb_sizes (); } /* Leave the tui mode. @@ -286,6 +287,7 @@ tui_disable (void) tui_version = 0; tui_active = 0; + tui_update_gdb_sizes (); } /* Wrapper on top of free() to ensure that input address diff --git a/gdb/tui/tuiWin.c b/gdb/tui/tuiWin.c index dccdcd7f8d5..82c3d4951f4 100644 --- a/gdb/tui/tuiWin.c +++ b/gdb/tui/tuiWin.c @@ -52,6 +52,7 @@ #include "breakpoint.h" #include "frame.h" #include "cli/cli-cmds.h" +#include "top.h" #include "tui.h" #include "tuiData.h" @@ -63,11 +64,6 @@ #include "tuiSourceWin.h" #include "tuiDataWin.h" -/******************************* -** External Declarations -********************************/ -extern void init_page_info (); - /******************************* ** Static Local Decls ********************************/ @@ -396,6 +392,22 @@ Usage: w <#lines>\n"); add_show_from_set (c, &tui_showlist); } +/* Update gdb's knowledge of the terminal size. */ +void +tui_update_gdb_sizes () +{ + char cmd[50]; + extern int screenheight, screenwidth; /* in readline */ + + /* Set to TUI command window dimension or use readline values. */ + sprintf (cmd, "set width %d", + tui_active ? cmdWin->generic.width : screenwidth); + execute_command (cmd, 0); + sprintf (cmd, "set height %d", + tui_active ? cmdWin->generic.height : screenheight); + execute_command (cmd, 0); +} + /* ** tuiSetWinFocusTo @@ -618,7 +630,7 @@ tuiResizeAll (void) /* turn keypad off while we resize */ if (winWithFocus != cmdWin) keypad (cmdWin->generic.handle, FALSE); - init_page_info (); + tui_update_gdb_sizes (); setTermHeightTo (screenheight); setTermWidthTo (screenwidth); if (curLayout == SRC_DISASSEM_COMMAND || @@ -1039,7 +1051,7 @@ The window name specified must be valid and visible.\n"); warning ("Invalid window height specified.\n%s", WIN_HEIGHT_USAGE); else - init_page_info (); + tui_update_gdb_sizes (); } else warning ("Invalid window height specified.\n%s",