You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
934 B
55 lines
934 B
/**********
|
|
Copyright 1992 Regents of the University of California. All rights reserved.
|
|
**********/
|
|
|
|
/* CKTdltNod
|
|
*/
|
|
|
|
#include "ngspice/ngspice.h"
|
|
#include "ngspice/cktdefs.h"
|
|
#include "ngspice/ifsim.h"
|
|
#include "ngspice/sperror.h"
|
|
|
|
/* ARGSUSED */
|
|
int
|
|
CKTdltNod(CKTcircuit *ckt, CKTnode *node)
|
|
{
|
|
return CKTdltNNum(ckt, node->number);
|
|
}
|
|
|
|
int
|
|
CKTdltNNum(CKTcircuit *ckt, int num)
|
|
{
|
|
CKTnode *n, *prev, *node, *sprev;
|
|
int error;
|
|
|
|
prev = NULL;
|
|
node = NULL;
|
|
sprev = NULL;
|
|
|
|
for (n = ckt->CKTnodes; n; n = n->next) {
|
|
if (n->number == num) {
|
|
node = n;
|
|
sprev = prev;
|
|
}
|
|
prev = n;
|
|
}
|
|
|
|
if (!node)
|
|
return OK;
|
|
|
|
ckt->CKTmaxEqNum -= 1;
|
|
|
|
if (!sprev) {
|
|
ckt->CKTnodes = node->next;
|
|
} else {
|
|
sprev->next = node->next;
|
|
}
|
|
if (node == ckt->CKTlastNode)
|
|
ckt->CKTlastNode = sprev;
|
|
|
|
error = SPfrontEnd->IFdelUid (ckt, node->name, UID_SIGNAL);
|
|
tfree(node);
|
|
|
|
return error;
|
|
}
|