inpcom.c, introduce insert_new_line()
use it to replace this pattern foo = bar->li_next = xx_new_line(bar->li_next, ...); with foo = insert_newline(bar, ...);
This commit is contained in:
parent
38183b6167
commit
420c023f56
|
|
@ -174,6 +174,15 @@ xx_new_line(struct line *next, char *line, int linenum, int linenum_orig)
|
|||
}
|
||||
|
||||
|
||||
/* insert a new card, just behind the given card */
|
||||
static struct line *
|
||||
insert_new_line(struct line *card, char *line, int linenum, int linenum_orig)
|
||||
{
|
||||
card = card->li_next = xx_new_line(card->li_next, line, linenum, linenum_orig);
|
||||
return card;
|
||||
}
|
||||
|
||||
|
||||
static struct library *
|
||||
new_lib(void)
|
||||
{
|
||||
|
|
@ -925,7 +934,7 @@ inp_read(FILE *fp, int call_depth, char *dir_name, bool comfile, bool intfile)
|
|||
comfile = TRUE;
|
||||
|
||||
if (call_depth == 0 && !comfile) {
|
||||
cc->li_next = xx_new_line(cc->li_next, copy(".global gnd"), 1, 0);
|
||||
insert_new_line(cc, copy(".global gnd"), 1, 0);
|
||||
|
||||
if (inp_compat_mode == COMPATMODE_ALL ||
|
||||
inp_compat_mode == COMPATMODE_HS ||
|
||||
|
|
@ -942,7 +951,7 @@ inp_read(FILE *fp, int call_depth, char *dir_name, bool comfile, bool intfile)
|
|||
|
||||
if (call_depth == 0 && !comfile)
|
||||
if (found_end == TRUE)
|
||||
end = end->li_next = xx_new_line(end->li_next, copy(".end"), line_number++, line_number_orig++);
|
||||
end = insert_new_line(end, copy(".end"), line_number++, line_number_orig++);
|
||||
|
||||
/* Replace first line with the new title, if available */
|
||||
if (call_depth == 0 && !comfile && new_title) {
|
||||
|
|
@ -1346,8 +1355,8 @@ inp_chk_for_multi_in_vcvs(struct line *c, int *line_number)
|
|||
tfree(xy_values2[1]);
|
||||
|
||||
*c->li_line = '*';
|
||||
c = c->li_next = xx_new_line(c->li_next, m_instance, (*line_number)++, 0);
|
||||
c = c->li_next = xx_new_line(c->li_next, m_model, (*line_number)++, 0);
|
||||
c = insert_new_line(c, m_instance, (*line_number)++, 0);
|
||||
c = insert_new_line(c, m_model, (*line_number)++, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1394,13 +1403,13 @@ inp_add_control_section(struct line *deck, int *line_number)
|
|||
found_control = FALSE;
|
||||
|
||||
if (!found_run) {
|
||||
prev_card = prev_card->li_next = xx_new_line(prev_card->li_next, copy("run"), (*line_number)++, 0);
|
||||
prev_card = insert_new_line(prev_card, copy("run"), (*line_number)++, 0);
|
||||
found_run = TRUE;
|
||||
}
|
||||
|
||||
if (cp_getvar("rawfile", CP_STRING, rawfile)) {
|
||||
line = tprintf("write %s", rawfile);
|
||||
prev_card = prev_card->li_next = xx_new_line(prev_card->li_next, line, (*line_number)++, 0);
|
||||
prev_card = insert_new_line(prev_card, line, (*line_number)++, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1410,19 +1419,19 @@ inp_add_control_section(struct line *deck, int *line_number)
|
|||
// check if need to add control section
|
||||
if (!found_run && found_end) {
|
||||
|
||||
deck->li_next = xx_new_line(deck->li_next, copy(".endc"), (*line_number)++, 0);
|
||||
insert_new_line(deck, copy(".endc"), (*line_number)++, 0);
|
||||
|
||||
if (cp_getvar("rawfile", CP_STRING, rawfile)) {
|
||||
line = tprintf("write %s", rawfile);
|
||||
deck->li_next = xx_new_line(deck->li_next, line, (*line_number)++, 0);
|
||||
insert_new_line(deck, line, (*line_number)++, 0);
|
||||
}
|
||||
|
||||
if (op_line)
|
||||
deck->li_next = xx_new_line(deck->li_next, copy(op_line), (*line_number)++, 0);
|
||||
insert_new_line(deck, copy(op_line), (*line_number)++, 0);
|
||||
|
||||
deck->li_next = xx_new_line(deck->li_next, copy("run"), (*line_number)++, 0);
|
||||
insert_new_line(deck, copy("run"), (*line_number)++, 0);
|
||||
|
||||
deck->li_next = xx_new_line(deck->li_next, copy(".control"), (*line_number)++, 0);
|
||||
insert_new_line(deck, copy(".control"), (*line_number)++, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2420,7 +2429,7 @@ expand_section_ref(struct line *c, char *dir_name)
|
|||
{
|
||||
struct line *t = section_def;
|
||||
for (; t; t=t->li_next) {
|
||||
c = c->li_next = xx_new_line(c->li_next, copy(t->li_line), t->li_linenum, t->li_linenum_orig);
|
||||
c = insert_new_line(c, copy(t->li_line), t->li_linenum, t->li_linenum_orig);
|
||||
if (t == section_def) {
|
||||
c->li_line[0] = '*';
|
||||
c->li_line[1] = '<';
|
||||
|
|
@ -4039,7 +4048,7 @@ inp_split_multi_param_lines(struct line *card, int line_num)
|
|||
*(card->li_line) = '*';
|
||||
// insert new param lines immediately after current line
|
||||
for (i = 0; i < counter; i++)
|
||||
card = card->li_next = xx_new_line(card->li_next, array[i], line_num++, 0);
|
||||
card = insert_new_line(card, array[i], line_num++, 0);
|
||||
|
||||
tfree(array);
|
||||
}
|
||||
|
|
@ -4344,7 +4353,7 @@ inp_compat(struct line *card)
|
|||
*(card->li_line) = '*';
|
||||
// insert new B source line immediately after current line
|
||||
for (i = 0; i < 2; i++)
|
||||
card = card->li_next = xx_new_line(card->li_next, ckt_array[i], 0, 0);
|
||||
card = insert_new_line(card, ckt_array[i], 0, 0);
|
||||
|
||||
tfree(firstno);
|
||||
tfree(lastlastno);
|
||||
|
|
@ -4382,7 +4391,7 @@ inp_compat(struct line *card)
|
|||
*(card->li_line) = '*';
|
||||
// insert new B source line immediately after current line
|
||||
for (i = 0; i < 2; i++)
|
||||
card = card->li_next = xx_new_line(card->li_next, ckt_array[i], 0, 0);
|
||||
card = insert_new_line(card, ckt_array[i], 0, 0);
|
||||
|
||||
tfree(title_tok);
|
||||
tfree(node1);
|
||||
|
|
@ -4502,7 +4511,7 @@ inp_compat(struct line *card)
|
|||
*(card->li_line) = '*';
|
||||
// insert new B source line immediately after current line
|
||||
for (i = 0; i < 2; i++)
|
||||
card = card->li_next = xx_new_line(card->li_next, ckt_array[i], 0, 0);
|
||||
card = insert_new_line(card, ckt_array[i], 0, 0);
|
||||
|
||||
tfree(firstno);
|
||||
tfree(lastlastno);
|
||||
|
|
@ -4552,7 +4561,7 @@ inp_compat(struct line *card)
|
|||
*(card->li_line) = '*';
|
||||
// insert new B source line immediately after current line
|
||||
for (i = 0; i < 2; i++)
|
||||
card = card->li_next = xx_new_line(card->li_next, ckt_array[i], 0, 0);
|
||||
card = insert_new_line(card, ckt_array[i], 0, 0);
|
||||
|
||||
tfree(title_tok);
|
||||
tfree(m_token);
|
||||
|
|
@ -4598,7 +4607,7 @@ inp_compat(struct line *card)
|
|||
*(card->li_line) = '*';
|
||||
// insert new three lines immediately after current line
|
||||
for (i = 0; i < 3; i++)
|
||||
card = card->li_next = xx_new_line(card->li_next, ckt_array[i], 0, 0);
|
||||
card = insert_new_line(card, ckt_array[i], 0, 0);
|
||||
|
||||
tfree(title_tok);
|
||||
tfree(vnamstr);
|
||||
|
|
@ -4644,7 +4653,7 @@ inp_compat(struct line *card)
|
|||
*(card->li_line) = '*';
|
||||
// insert new three lines immediately after current line
|
||||
for (i = 0; i < 3; i++)
|
||||
card = card->li_next = xx_new_line(card->li_next, ckt_array[i], 0, 0);
|
||||
card = insert_new_line(card, ckt_array[i], 0, 0);
|
||||
|
||||
tfree(title_tok);
|
||||
tfree(vnamstr);
|
||||
|
|
@ -4719,7 +4728,7 @@ inp_compat(struct line *card)
|
|||
// comment out current old R line
|
||||
*(card->li_line) = '*';
|
||||
// insert new B source line immediately after current line
|
||||
card = card->li_next = xx_new_line(card->li_next, xline, 0, 0);
|
||||
card = insert_new_line(card, xline, 0, 0);
|
||||
|
||||
tfree(title_tok);
|
||||
tfree(node1);
|
||||
|
|
@ -4798,7 +4807,7 @@ inp_compat(struct line *card)
|
|||
*(card->li_line) = '*';
|
||||
// insert new B source line immediately after current line
|
||||
for (i = 0; i < 3; i++)
|
||||
card = card->li_next = xx_new_line(card->li_next, ckt_array[i], 0, 0);
|
||||
card = insert_new_line(card, ckt_array[i], 0, 0);
|
||||
|
||||
tfree(title_tok);
|
||||
tfree(node1);
|
||||
|
|
@ -4878,7 +4887,7 @@ inp_compat(struct line *card)
|
|||
*(card->li_line) = '*';
|
||||
// insert new B source line immediately after current line
|
||||
for (i = 0; i < 3; i++)
|
||||
card = card->li_next = xx_new_line(card->li_next, ckt_array[i], 0, 0);
|
||||
card = insert_new_line(card, ckt_array[i], 0, 0);
|
||||
|
||||
tfree(title_tok);
|
||||
tfree(node1);
|
||||
|
|
@ -5021,7 +5030,7 @@ inp_compat(struct line *card)
|
|||
card->li_line = inp_remove_ws(curr_line);
|
||||
// insert new B source line immediately after current line
|
||||
for (ii = paui; ii < pai; ii++)
|
||||
card = card->li_next = xx_new_line(card->li_next, ckt_array[ii], 0, 0);
|
||||
card = insert_new_line(card, ckt_array[ii], 0, 0);
|
||||
|
||||
paui = pai;
|
||||
} else if ((ciprefix(".save", curr_line)) ||
|
||||
|
|
@ -5115,7 +5124,7 @@ inp_compat(struct line *card)
|
|||
// *(ckt_array[0]) = '*';
|
||||
// insert new B source line immediately after current line
|
||||
for (ii = paui; ii < pai; ii++)
|
||||
card = card->li_next = xx_new_line(card->li_next, ckt_array[ii], 0, 0);
|
||||
card = insert_new_line(card, ckt_array[ii], 0, 0);
|
||||
|
||||
paui = pai;
|
||||
// continue;
|
||||
|
|
@ -5211,7 +5220,7 @@ inp_bsource_compat(struct line *card)
|
|||
*(card->li_line) = '*';
|
||||
// insert new B source line immediately after current line
|
||||
/* Copy old line numbers into new B source line */
|
||||
card = card->li_next = xx_new_line(card->li_next, final_str, card->li_linenum, card->li_linenum_orig);
|
||||
card = insert_new_line(card, final_str, card->li_linenum, card->li_linenum_orig);
|
||||
|
||||
tfree(new_str);
|
||||
} /* end of if 'b' */
|
||||
|
|
@ -5537,8 +5546,8 @@ inp_add_series_resistor(struct line *deck)
|
|||
*(card->li_line) = '*';
|
||||
|
||||
// insert new new L and R lines immediately after current line
|
||||
card = card->li_next = xx_new_line(card->li_next, newL, 0, 0);
|
||||
card = card->li_next = xx_new_line(card->li_next, newR, 0, 0);
|
||||
card = insert_new_line(card, newL, 0, 0);
|
||||
card = insert_new_line(card, newR, 0, 0);
|
||||
|
||||
tfree(title_tok);
|
||||
tfree(node1);
|
||||
|
|
@ -5575,8 +5584,7 @@ subckt_params_to_param(struct line *card)
|
|||
/* card->li_line ends with subcircuit name */
|
||||
cut_line[-1] = '\0';
|
||||
/* insert new_line after card->li_line */
|
||||
card->li_next = xx_new_line(card->li_next, new_line,
|
||||
card->li_linenum + 1, 0);
|
||||
insert_new_line(card, new_line, card->li_linenum + 1, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -5886,7 +5894,7 @@ inp_fix_temper_in_param(struct line *deck)
|
|||
tfree(funcbody);
|
||||
} else {
|
||||
/* Or just enter new line into deck */
|
||||
card->li_next = xx_new_line(card->li_next, new_str, 0, card->li_linenum);
|
||||
insert_new_line(card, new_str, 0, card->li_linenum);
|
||||
*card->li_line = '*';
|
||||
}
|
||||
}
|
||||
|
|
@ -5944,7 +5952,7 @@ inp_new_func(char *funcname, char *funcbody, struct line *card,
|
|||
new_str = tprintf(".func %s() %s", funcname, funcbody);
|
||||
|
||||
*card->li_line = '*';
|
||||
card->li_next = xx_new_line(card->li_next, new_str, 0, card->li_linenum);
|
||||
insert_new_line(card, new_str, 0, card->li_linenum);
|
||||
|
||||
return f;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue