2007-09-22 Carlos Eduardo Seo * tui/tui-interp.c (tui_init): Initialize tui's SIGWINCH signal handler. * tui/tui-win.c (tui_initialize_win): New function for initializing tui's SIGWINCH signal handler. * tui/tui-win.h (tui_initialize_win): Declare Index: src/gdb/tui/tui-interp.c =================================================================== --- src.orig/gdb/tui/tui-interp.c +++ src/gdb/tui/tui-interp.c @@ -56,6 +56,7 @@ tui_init (void) tui_initialize_static_data (); tui_initialize_io (); + tui_initialize_win (); tui_initialize_readline (); return NULL; Index: src/gdb/tui/tui-win.c =================================================================== --- src.orig/gdb/tui/tui-win.c +++ src/gdb/tui/tui-win.c @@ -50,6 +50,8 @@ #include #include "readline/readline.h" +#include + /******************************* ** Static Local Decls ********************************/ @@ -813,6 +815,21 @@ tui_sigwinch_handler (int signal) tui_set_win_resized_to (TRUE); } +/* Initializes SIGWINCH signal handler for the tui. */ +void +tui_initialize_win (void) +{ +#ifdef SIGWINCH +#ifdef SIGACTION + struct sigaction old_winch; + memset (&old_winch, 0, sizeof (old_winch)); + old_winch.sa_handler = &tui_sigwinch_handler; + sigaction (SIGWINCH, &old_winch, NULL); +#else + signal (SIGWINCH, &tui_sigwinch_handler); +#endif +#endif +} /************************* Index: src/gdb/tui/tui-win.h =================================================================== --- src.orig/gdb/tui/tui-win.h +++ src/gdb/tui/tui-win.h @@ -49,6 +49,8 @@ extern int tui_active_border_attrs; extern int tui_update_variables (void); +extern void tui_initialize_win (void); + /* Update gdb's knowledge of the terminal size. */ extern void tui_update_gdb_sizes (void);