From b59a4d1d8c4278b06d5f088e85974a9f3324c961 Mon Sep 17 00:00:00 2001 From: sommerfe Date: Sun, 29 Nov 1998 23:39:30 +0000 Subject: 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 --- emulators/doscmd/patches/patch-aa | 12 ++++++++---- emulators/doscmd/patches/patch-ag | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 emulators/doscmd/patches/patch-ag (limited to 'emulators/doscmd/patches') diff --git a/emulators/doscmd/patches/patch-aa b/emulators/doscmd/patches/patch-aa index c6c91a1b83b..53a01de6491 100644 --- a/emulators/doscmd/patches/patch-aa +++ b/emulators/doscmd/patches/patch-aa @@ -1,8 +1,8 @@ -$NetBSD: patch-aa,v 1.3 1998/10/28 01:29:16 hubertf Exp $ +$NetBSD: patch-aa,v 1.4 1998/11/29 23:39:30 sommerfe Exp $ ---- signal.c.orig Thu May 2 22:03:39 1996 -+++ signal.c Wed Oct 28 02:03:15 1998 -@@ -98,8 +98,14 @@ +--- 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; @@ -18,3 +18,7 @@ $NetBSD: patch-aa,v 1.3 1998/10/28 01:29:16 hubertf Exp $ sa.sa_flags = SA_ONSTACK; sigaction(s, &sa, NULL); ++ sigemptyset(&set); + sigaddset(&set, s); + sigprocmask(SIG_UNBLOCK, &set, 0); + } diff --git a/emulators/doscmd/patches/patch-ag b/emulators/doscmd/patches/patch-ag new file mode 100644 index 00000000000..56f28007a59 --- /dev/null +++ b/emulators/doscmd/patches/patch-ag @@ -0,0 +1,20 @@ +$NetBSD: patch-ag,v 1.1 1998/11/29 23:39:30 sommerfe Exp $ + +--- AsyncIO.c Thu May 2 02:51:00 1996 ++++ /tmp/AsyncIO.c Sun Nov 29 18:28:44 1998 +@@ -320,6 +320,7 @@ + abort(); + } + if (stackp++ == 0) { ++ sigemptyset(&set); + sigaddset(&set, SIGIO); + sigprocmask(SIG_BLOCK, &set, 0); + } +@@ -335,6 +336,7 @@ + abort(); + } + if (--stackp == 0) { ++ sigemptyset(&set); + sigaddset(&set, SIGIO); + sigprocmask(SIG_UNBLOCK, &set, 0); + } -- cgit v1.2.3