summary refs log tree commit diff
path: root/pkgs/development/tools/misc/gdb/edit-signals.patch
blob: e9da8035ef5bb4f9ce0691dbee44513480d989f0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Patch adapted from
https://www.sourceware.org/ml/gdb-patches/2012-08/msg00439.html

Without it, spawning a terminal 'vim' from gdb 'edit' cmd, makes
all gdb grazy.

diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 7ea0fec..be5455c 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -831,11 +831,12 @@ void
 tui_initialize_win (void)
 {
 #ifdef SIGWINCH
-#ifdef HAVE_SIGACTION
+#if defined (HAVE_SIGACTION) && defined (SA_RESTART)
   struct sigaction old_winch;
 
-  memset (&old_winch, 0, sizeof (old_winch));
+  sigemptyset (&old_winch.sa_mask);
   old_winch.sa_handler = &tui_sigwinch_handler;
+  old_winch.sa_flags = SA_RESTART;
   sigaction (SIGWINCH, &old_winch, NULL);
 #else
   signal (SIGWINCH, &tui_sigwinch_handler);