Annotation of 42BSD/usr.bin/efl/temp.c, revision 1.1

1.1     ! root        1: #include "defs"
        !             2: 
        !             3: ptr gentemp(t)
        !             4: ptr t;
        !             5: {
        !             6: register ptr oldp;
        !             7: register ptr p;
        !             8: register ptr q;
        !             9: int ttype;
        !            10: ptr ttypep, tdim;
        !            11: 
        !            12: /* search the temporary list for a matching type */
        !            13: 
        !            14: ttype = t->vtype;
        !            15: ttypep = t->vtypep;
        !            16: tdim = t->vdim;
        !            17: 
        !            18: for(oldp = &tempvarlist ; p = oldp->nextp ; oldp = p)
        !            19:        if( (q = p->datap) && (q->vtype == ttype) &&
        !            20:          (q->vtypep == ttypep) && eqdim(q->vdim,tdim) )
        !            21:                {
        !            22:                oldp->nextp = p->nextp;
        !            23:                break;
        !            24:                }
        !            25: 
        !            26: if(p == PNULL)
        !            27:        {
        !            28:        q = allexpblock();
        !            29:        q->tag = TTEMP;
        !            30:        q->subtype = t->subtype;
        !            31:        q->vtype = ttype;
        !            32:        q->vclass = t->vclass;
        !            33:        q->vtypep = ( ttypep ? cpexpr(ttypep) : PNULL);
        !            34:        q->vdim = tdim;
        !            35:        mkftnp(q);      /* assign fortran types */
        !            36: 
        !            37:        p = mkchain(q, CHNULL);
        !            38:        p->datap = q;
        !            39:        }
        !            40: 
        !            41: p->nextp = thisexec->temps;
        !            42: thisexec->temps = p;
        !            43: 
        !            44: return( cpexpr(q) );
        !            45: /* need a copy of the block for the temporary list and another for use */
        !            46: }
        !            47: 
        !            48: 
        !            49: ptr gent(t,tp)  /* make a temporary of type t, typepointer tp */
        !            50: int t;
        !            51: ptr tp;
        !            52: {
        !            53: static struct varblock model;
        !            54: 
        !            55: model.vtype = t;
        !            56: model.vtypep = tp;
        !            57: 
        !            58: return( gentemp(&model) );
        !            59: }

unix.superglobalmegacorp.com

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