Annotation of lucent/sys/src/cmd/rc/subr.c, revision 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.