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;
}
Пример #4
0
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;
}