summaryrefslogtreecommitdiff
path: root/misc/lv/patches/patch-ab
diff options
context:
space:
mode:
Diffstat (limited to 'misc/lv/patches/patch-ab')
-rw-r--r--misc/lv/patches/patch-ab46
1 files changed, 46 insertions, 0 deletions
diff --git a/misc/lv/patches/patch-ab b/misc/lv/patches/patch-ab
new file mode 100644
index 00000000000..7bb41a154dc
--- /dev/null
+++ b/misc/lv/patches/patch-ab
@@ -0,0 +1,46 @@
+$NetBSD: patch-ab,v 1.1 2005/12/03 16:46:32 christos Exp $
+
+--- ../src/console.c.orig 2004-01-05 02:27:46.000000000 -0500
++++ ../src/console.c 2005-12-03 11:37:19.000000000 -0500
+@@ -388,7 +388,22 @@
+ signal( SIGINT, InterruptIgnoreHandler );
+ #endif /* MSDOS */
+
+-#ifdef HAVE_SIGVEC
++#ifdef HAVE_SIGACTION
++ struct sigaction sa;
++
++ sigemptyset( &sa.sa_mask );
++# ifndef SA_RESTART
++ sa.sa_flags = 0;
++# else
++ sa.sa_flags = SA_RESTART;
++# endif
++ sa.sa_handler = WindowChangeHandler;
++ (void)sigaction( SIGWINCH, &sa, NULL );
++
++ sa.sa_handler = InterruptHandler;
++ (void)sigaction( SIGINT, &sa, NULL );
++#else
++# ifdef SV_INTERRUPT
+ struct sigvec sigVec;
+
+ sigVec.sv_handler = WindowChangeHandler;
+@@ -400,12 +415,13 @@
+ sigVec.sv_mask = sigmask( SIGINT );
+ sigVec.sv_flags = SV_INTERRUPT;
+ sigvec( SIGINT, &sigVec, NULL );
+-#else
+-# ifdef SIGWINCH
++# else
++# ifdef SIGWINCH
+ signal( SIGWINCH, WindowChangeHandler );
+-# endif
++# endif
+ signal( SIGINT, InterruptHandler );
+-#endif /* HAVE_SIGVEC */
++# endif /* SV_INTERRUPT */
++#endif /* HAVE_SIGACTION */
+
+ #ifdef UNIX
+ #ifdef HAVE_TERMIOS_H