From a344fc094daa257557786eb2ce871debf38456ba Mon Sep 17 00:00:00 2001 From: Patrick Palka Date: Sat, 30 Aug 2014 15:33:08 -0400 Subject: [PATCH] Specify SA_RESTART when registering the SIGWINCH signal handler SA_RESTART allows system calls to be restarted across a signal handler. By specifying this flag we fix the issue where if the user is being prompted to answer yes or no, and the terminal gets resized in the meantime, the prompt will think that the user sent an EOF and so it will take the default action for that prompt (in the case of the quit prompt, it will quit GDB). gdb/ChangeLog: * tui/tui-win.c (tui_initialize_win): Specify SA_RESTART when registering the signal handler. --- gdb/ChangeLog | 5 +++++ gdb/tui/tui-win.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 326a0d67e99..45435fc1b17 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2014-11-23 Patrick Palka + + * tui/tui-win.c (tui_initialize_win): Specify SA_RESTART when + registering the signal handler. + 2014-11-23 Patrick Palka * event-top.h (call_stdin_event_handler_again_p): Declare. diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index d17a1e4741c..4488da83b66 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -834,6 +834,9 @@ tui_initialize_win (void) memset (&old_winch, 0, sizeof (old_winch)); old_winch.sa_handler = &tui_sigwinch_handler; +#ifdef SA_RESTART + old_winch.sa_flags = SA_RESTART; +#endif sigaction (SIGWINCH, &old_winch, NULL); #else signal (SIGWINCH, &tui_sigwinch_handler); -- 2.30.2