|
|
1.1 ! root 1: #include "rc.h" ! 2: #include "exec.h" ! 3: #include "io.h" ! 4: #include "fns.h" ! 5: char *emalloc(long n){ ! 6: char *p=(char *)Malloc(n); ! 7: if(p==0) panic("Can't malloc %d bytes", n); ! 8: /* if(err){ pfmt(err, "malloc %d->%p\n", n, p); flush(err); } /**/ ! 9: return p; ! 10: } ! 11: void efree(char *p) ! 12: { ! 13: /* pfmt(err, "free %p\n", p); flush(err); /**/ ! 14: if(p) free(p); ! 15: else pfmt(err, "free 0\n"); ! 16: } ! 17: extern int lastword, lastdol; ! 18: void yyerror(char *m) ! 19: { ! 20: pfmt(err, "rc: "); ! 21: if(runq->cmdfile) pfmt(err, "file %s: ", runq->cmdfile); ! 22: if(!runq->iflag) pfmt(err, "line %d: ", runq->lineno); ! 23: if(tok[0] && tok[0]!='\n') pfmt(err, "token %q: ", tok); ! 24: pfmt(err, "%s\n", m); ! 25: flush(err); ! 26: lastword=0; ! 27: lastdol=0; ! 28: while(lastc!='\n' && lastc!=EOF) advance(); ! 29: nerror++; ! 30: } ! 31: char *bp; ! 32: void iacvt(int n){ ! 33: if(n<0){ ! 34: *bp++='-'; ! 35: n=-n; /* doesn't work for n==-inf */ ! 36: } ! 37: if(n/10) ! 38: iacvt(n/10); ! 39: *bp++=n%10+'0'; ! 40: } ! 41: void itoa(char *s, int n) ! 42: { ! 43: bp=s; ! 44: iacvt(n); ! 45: *bp='\0'; ! 46: } ! 47: void panic(char *s, int n) ! 48: { ! 49: pfmt(err, "rc: "); ! 50: pfmt(err, s, n); ! 51: pchr(err, '\n'); ! 52: flush(err); ! 53: Abort(); ! 54: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.