1: #include "../h/rt.h"
2:
3: /*
4: * cset(x) - convert x to cset.
5: */
6:
7: Xcset(nargs, arg1, arg0)
8: int nargs;
9: struct descrip arg1, arg0;
10: {
11: register int i;
12: register struct b_cset *bp;
13: int *cs, csbuf[CSETSIZE];
14: extern struct b_cset *alccset();
15:
16: hneed(sizeof(struct b_cset));
17:
18: DeRef(arg1)
19:
20: if (!QUAL(arg1) && TYPE(arg1) == T_CSET)
21: /*
22: * x is already a cset, just return it.
23: */
24: arg0 = arg1;
25: else if (cvcset(&arg1, &cs, csbuf) != NULL) {
26: /*
27: * x was convertible to cset and the result resides in csbuf. Allocate
28: * a cset, make arg0 a descriptor for it and copy the bits from csbuf
29: * into it.
30: */
31: arg0.type = D_CSET;
32: bp = alccset();
33: BLKLOC(arg0) = (union block *) bp;
34: for (i = 0; i < CSETSIZE; i++)
35: bp->bits[i] = cs[i];
36: }
37: else /* Not a cset nor convertible to one. */
38: fail();
39: }
40:
41: Procblock(cset,1)
Defined functions
Xcset
defined in line
7;
never used