From 0f9eae726d233dec340bb4f5105e1ff19959ee47 Mon Sep 17 00:00:00 2001 From: christos Date: Sat, 3 Dec 2005 16:46:32 +0000 Subject: Prefer sigaction instead of sigvec if it exists, and check if sigvec exists based on the existance of the macro SV_INTERRUPT. --- misc/lv/patches/patch-ab | 46 ++++++++++++++++++++++++++++++++++++++++++++++ misc/lv/patches/patch-ac | 25 +++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 misc/lv/patches/patch-ab create mode 100644 misc/lv/patches/patch-ac 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 diff --git a/misc/lv/patches/patch-ac b/misc/lv/patches/patch-ac new file mode 100644 index 00000000000..c129ec5cf85 --- /dev/null +++ b/misc/lv/patches/patch-ac @@ -0,0 +1,25 @@ +$NetBSD: patch-ac,v 1.1 2005/12/03 16:46:32 christos Exp $ + +--- ../src/configure.in.orig 2004-01-05 01:35:44.000000000 -0500 ++++ ../src/configure.in 2005-12-03 11:37:40.000000000 -0500 +@@ -34,7 +34,7 @@ + dnl Checks for typedefs, structures, and compiler characteristics. + + dnl Checks for library functions. +-AC_CHECK_FUNCS(sigvec tgetnum setlocale) ++AC_CHECK_FUNCS(sigaction tgetnum setlocale) + AC_FUNC_GETPGRP + AC_PROG_GCC_TRADITIONAL + AC_TYPE_SIGNAL + +--- ../src/configure.orig 2004-01-05 01:37:17.000000000 -0500 ++++ ../src/configure 2005-12-03 11:37:58.000000000 -0500 +@@ -1440,7 +1440,7 @@ + + + +-for ac_func in sigvec tgetnum setlocale ++for ac_func in sigaction tgetnum setlocale + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 + echo "configure:1447: checking for $ac_func" >&5 -- cgit v1.2.3