static void free_equi(equi_list* equi) { if (!equi) return; free_equi(equi->NEXT); freeablexpr(equi->ABL); mbkfree(equi); }
static void removepowers(lofig_list *f) { locon_list *c, *cc; loins_list *i; cc=NULL; for (c=f->LOCON; c;) { if (isvdd(c->NAME) || isvss(c->NAME)) { if (cc) { cc->NEXT=c->NEXT; mbkfree(c); c=cc->NEXT; } else { f->LOCON=c->NEXT; mbkfree(c); c=f->LOCON; } } else { cc=c; c=c->NEXT; } } for (i=f->LOINS; i; i=i->NEXT) { cc=NULL; for (c=i->LOCON; c;) { if (isvdd(c->NAME) || isvss(c->NAME)) { if (cc) { cc->NEXT=c->NEXT; mbkfree(c); c=cc->NEXT; } else { i->LOCON=c->NEXT; mbkfree(c); c=i->LOCON; } } else { cc=c; c=c->NEXT; } } } }
logen_list *dellogen(logen_list *g, char *name) { logen_list *s=NULL; logen_list *p; for (p=g;p;p=p->NEXT) { if (p->NAME==name) break; s=p; } if (!p) return g; if (!s) g=p->NEXT; else s->NEXT=p->NEXT; mbkfree(p); return g; }
int delvelosig(ptype_list *p, velosig *d) { velosig *c=NULL, *s=NULL; for (c=(velosig *)p->DATA; c; c=c->NEXT) { if (c==d) break; s=c; } if (!c) return 0; if (c==p->DATA) p->DATA=c->NEXT; else s->NEXT=c->NEXT; mbkfree(c); return 1; }