54f9fd8835
- Claim maintainership. Approved by: cracauer
27 lines
713 B
Plaintext
27 lines
713 B
Plaintext
--- scsh/bsd/sigset.h.old Tue Feb 1 16:04:42 2000
|
|
+++ scsh/bsd/sigset.h Fri Feb 4 14:54:18 2000
|
|
@@ -2,9 +2,18 @@
|
|
** These macros are OS-dependent, and must be defined per-OS.
|
|
*/
|
|
|
|
-#define make_sigset(maskp, hi, lo) (*maskp=((hi)<<24)|(lo))
|
|
+#define make_sigset(maskp, hi, lo) sigemptyset(maskp),\
|
|
+ sigaddset(maskp, hi), \
|
|
+ sigaddset(maskp, lo);
|
|
|
|
-/* Not a procedure: */
|
|
-#define split_sigset(mask, hip, lop) \
|
|
- ((*(hip)=(mask>>24)&0xff), \
|
|
- (*(lop)=(mask&0xffffff)))
|
|
+static void
|
|
+split_sigset(sigset_t mask, int * hip, int * lop) {
|
|
+ int seen = 0;
|
|
+ int n;
|
|
+ for (n = 1; n <= _SIG_MAXSIG; n++) {
|
|
+ if (sigismember(&mask, n))
|
|
+ (seen ? *hip : *lop) = n, seen++;
|
|
+ }
|
|
+ if (seen == 1)
|
|
+ *hip = 0;
|
|
+}
|