Annotation of lucent/sys/src/cmd/rc/subr.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.