void saveMacro(char *n, node *p, int i) { symbol *q; symbol **b; DPRINT1(3,"saveMacro: named \"%s\"...\n",n); DSHOWTREE(3,0,"saveMacro: ",p); if (i == PERMANENT) b = ¯oCache; else b = &tempCache; if ( (q=findName(*b,n)) ) if (q->val) { TPRINT1("magic: macro \"%s\" already defined\n",n); } else { q->val = (char *)p; if (i == PERMANENT) renameAllocation("newMacro",q->name); } else { q = BaddName(b,n); q->val = (char *)p; if (i == PERMANENT) renameAllocation("newMacro",q->name); } }
varInfo *RcreateVar(const char *n, symbol **pp, int type) { symbol *p; varInfo *v; if (findName((*pp),n)) return(NULL); else { p = BaddName(pp,n); /* add name to tree */ v = newVar(); /* get new variable packet */ p->val = (char *)v; presetVal(v,type); /* preset values based on type */ } return(v); }