$NetBSD: patch-ab,v 1.1 2005/12/03 16:46:32 christos Exp $

--- src/console.c.orig	2004-01-05 07:27:46.000000000 +0000
+++ src/console.c
@@ -388,7 +388,22 @@ public void ConsoleSetUp()
   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 @@ public void ConsoleSetUp()
   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
