inpcom.c, inp_add_levels(), add level info to each line in deck
This commit is contained in:
parent
663ceee808
commit
33048cc51f
|
|
@ -6713,8 +6713,9 @@ inp_meas_current(struct line *deck)
|
|||
static void
|
||||
inp_add_levels(struct line *deck)
|
||||
{
|
||||
struct line *card, *subc_start = NULL, *subc_prev = NULL;
|
||||
int skip_control = 0, subs = 0;
|
||||
struct line *card, *card_prev = deck;
|
||||
int skip_control = 0, subs = 0, i;
|
||||
static unsigned short levelinfo[NESTINGDEPTH];
|
||||
|
||||
for (card = deck; card; card = card->li_next) {
|
||||
|
||||
|
|
@ -6739,15 +6740,27 @@ inp_add_levels(struct line *deck)
|
|||
if (*curr_line == '.') {
|
||||
if (ciprefix(".subckt", curr_line)) {
|
||||
subs++;
|
||||
subc_prev = subc_start;
|
||||
subc_start = card;
|
||||
levelinfo[subs - 1]++;
|
||||
for (i = 0; i < NESTINGDEPTH; i++)
|
||||
card->level[i] = levelinfo[i];
|
||||
card_prev = card;
|
||||
}
|
||||
else if (ciprefix(".ends", curr_line)) {
|
||||
subs--;
|
||||
subc_start = subc_prev;
|
||||
for (i = 0; i < NESTINGDEPTH; i++)
|
||||
card->level[i] = card_prev->level[i];
|
||||
card_prev = card;
|
||||
}
|
||||
else
|
||||
continue;
|
||||
else {
|
||||
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