pkgsrc/emulators/doscmd/patches/patch-aa
sommerfe b59a4d1d8c sigaddset() on an automatic variable works much better if preceded by
sigemptyset().  (this used to work, by chance, when sigmasks fit in a
register).

doscmd now seems to work on 1.3I
1998-11-29 23:39:30 +00:00

24 lines
635 B
Text

$NetBSD: patch-aa,v 1.4 1998/11/29 23:39:30 sommerfe Exp $
--- signal.c.orig Thu May 2 16:03:39 1996
+++ signal.c Sun Nov 29 18:27:37 1998
@@ -98,11 +98,18 @@
if (s >= 0 && s < NSIG) {
handler[s] = h;
- sa.sa_handler = generichandler;
+ sa.sa_handler = (void (*)())generichandler;
+#if defined(__LIBC12_SOURCE__)
sa.sa_mask = sigmask(SIGIO) | sigmask(SIGALRM);
+#else
+ sigemptyset(&sa.sa_mask);
+ sigaddset(&sa.sa_mask, SIGIO);
+ sigaddset(&sa.sa_mask, SIGALRM);
+#endif
sa.sa_flags = SA_ONSTACK;
sigaction(s, &sa, NULL);
+ sigemptyset(&set);
sigaddset(&set, s);
sigprocmask(SIG_UNBLOCK, &set, 0);
}