|
|
1.1 ! root 1: #include "../h/rt.h" ! 2: ! 3: /* ! 4: * limit - explicit limitation initialization. ! 5: */ ! 6: ! 7: limit(nargs, arg0) ! 8: int nargs; ! 9: struct descrip arg0; ! 10: { ! 11: DclSave ! 12: long l; ! 13: ! 14: SetBound; ! 15: ! 16: /* ! 17: * The limit is both passed and returned in arg0. The limit must ! 18: * be an integer. If the limit is 0, the expression being evaluated ! 19: * fails. If the limit is < 0, it is an error. Note that the ! 20: * result produced by limit is ultimately picked up by the lsusp ! 21: * function. ! 22: */ ! 23: switch (cvint(&arg0, &l)) { ! 24: case T_INTEGER: mkint(l, &arg0); break; ! 25: #ifdef LONGS ! 26: case T_LONGINT: runerr(205, &arg0); ! 27: #endif LONGS ! 28: default: runerr(101, &arg0); ! 29: } ! 30: ! 31: if (l < 0) ! 32: runerr(205, &arg0); ! 33: if (l == 0) ! 34: fail(); ! 35: ClearBound; ! 36: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.