|
|
1.1 ! root 1: /* Copyright Bell Telephone Laboratories Whippany, N.J. ! 2: ! 3: * *********************************** ! 4: * *********************************** ! 5: * ********** ON GOTO/GOSUB ********** ! 6: * *** R. B. Drake WH 8C-005 X4163 *** ! 7: * **** Sun Aug 26 11:02:16 1979 ***** ! 8: * *********************************** ! 9: * *********************************** ! 10: ! 11: */ ! 12: /* "@(#) on.c: V 1.1 12/21/80" */ ! 13: ! 14: /* routine to handle on goto */ ! 15: #include "bas.h" ! 16: extern int stpflg; ! 17: double evalx(); ! 18: char *prncpy(); ! 19: extern char *expr,*eoexpr; ! 20: on() ! 21: { ! 22: int i,j; ! 23: char txtbuf[80]; ! 24: char c; ! 25: if((j = evalx(expr)) <= 0) ! 26: { ! 27: error(inst.thing.linno,38); ! 28: return(-1); ! 29: } ! 30: if(stpflg == 1) ! 31: return(-1); ! 32: if((c= *eoexpr++) > '\003' && c != '\016') ! 33: { ! 34: error(inst.thing.linno,8); /* expression syntax */ ! 35: return(-1); ! 36: } ! 37: for(i=0;i<j;i++) ! 38: { ! 39: eoexpr = prncpy(txtbuf,eoexpr); ! 40: if(*eoexpr++ == '\0' && i != (j-1)) ! 41: { ! 42: error(inst.thing.linno,38); /* not enough references*/ ! 43: return(-1); ! 44: } ! 45: } ! 46: expr = txtbuf; ! 47: if(c != '\016') ! 48: { ! 49: if(__goto() < 0) ! 50: return(-1); ! 51: return(0); ! 52: } ! 53: if(gosub() < 0) ! 54: return(-1); ! 55: return(0); ! 56: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.