inpcom.c, inp_add_levels(), add level info to each line in deck
This commit is contained in:
parent
72a2652dbe
commit
7239084e77
|
|
@ -6699,8 +6699,9 @@ inp_meas_current(struct line *deck)
|
||||||
static void
|
static void
|
||||||
inp_add_levels(struct line *deck)
|
inp_add_levels(struct line *deck)
|
||||||
{
|
{
|
||||||
struct line *card, *subc_start = NULL, *subc_prev = NULL;
|
struct line *card, *card_prev = deck;
|
||||||
int skip_control = 0, subs = 0;
|
int skip_control = 0, subs = 0, i;
|
||||||
|
static unsigned short levelinfo[NESTINGDEPTH];
|
||||||
|
|
||||||
for (card = deck; card; card = card->li_next) {
|
for (card = deck; card; card = card->li_next) {
|
||||||
|
|
||||||
|
|
@ -6725,15 +6726,27 @@ inp_add_levels(struct line *deck)
|
||||||
if (*curr_line == '.') {
|
if (*curr_line == '.') {
|
||||||
if (ciprefix(".subckt", curr_line)) {
|
if (ciprefix(".subckt", curr_line)) {
|
||||||
subs++;
|
subs++;
|
||||||
subc_prev = subc_start;
|
levelinfo[subs - 1]++;
|
||||||
subc_start = card;
|
for (i = 0; i < NESTINGDEPTH; i++)
|
||||||
|
card->level[i] = levelinfo[i];
|
||||||
|
card_prev = card;
|
||||||
}
|
}
|
||||||
else if (ciprefix(".ends", curr_line)) {
|
else if (ciprefix(".ends", curr_line)) {
|
||||||
subs--;
|
subs--;
|
||||||
subc_start = subc_prev;
|
for (i = 0; i < NESTINGDEPTH; i++)
|
||||||
|
card->level[i] = card_prev->level[i];
|
||||||
|
card_prev = card;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
continue;
|
for (i = 0; i < NESTINGDEPTH; i++)
|
||||||
|
card->level[i] = card_prev->level[i];
|
||||||
|
card_prev = card;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (i = 0; i < NESTINGDEPTH; i++)
|
||||||
|
card->level[i] = card_prev->level[i];
|
||||||
|
card_prev = card;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue