mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-04 22:33:27 +00:00
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;
|
||
|
+}
|