|
|
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.