diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index 46992e4f3..b48371188 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -1704,9 +1704,9 @@ static void comment_out_unused_subckt_models(struct line *start_card, int no_of_lines) { struct line *card; - char **used_subckt_names, **used_model_names, *subckt_name, *model_name; - int num_used_subckt_names = 0, num_used_model_names = 0, i = 0, num_terminals = 0, tmp_cnt = 0; - bool processing_subckt = FALSE, found_subckt = FALSE, remove_subckt = FALSE, found_model = FALSE, has_models = FALSE; + char **used_subckt_names, **used_model_names; + int num_used_subckt_names = 0, num_used_model_names = 0, i = 0, tmp_cnt = 0; + bool processing_subckt = FALSE, remove_subckt = FALSE, has_models = FALSE; int skip_control = 0, nested_subckt = 0; /* generate arrays of *char for subckt or model names. Start @@ -1748,10 +1748,11 @@ comment_out_unused_subckt_models(struct line *start_card, int no_of_lines) processing_subckt = TRUE; if (ciprefix(".ends", line) || ciprefix(".eom", line)) processing_subckt = FALSE; + if (!processing_subckt) { if (*line == 'x') { - subckt_name = get_instance_subckt(line); - found_subckt = FALSE; + char *subckt_name = get_instance_subckt(line); + bool found_subckt = FALSE; for (i = 0; i < num_used_subckt_names; i++) if (strcmp(used_subckt_names[i], subckt_name) == 0) found_subckt = TRUE; if (!found_subckt) { @@ -1761,8 +1762,8 @@ comment_out_unused_subckt_models(struct line *start_card, int no_of_lines) tfree(subckt_name); } } else if (*line == 'a') { - model_name = get_adevice_model_name(line); - found_model = FALSE; + char *model_name = get_adevice_model_name(line); + bool found_model = FALSE; for (i = 0; i < num_used_model_names; i++) if (strcmp(used_model_names[i], model_name) == 0) found_model = TRUE; @@ -1774,16 +1775,14 @@ comment_out_unused_subckt_models(struct line *start_card, int no_of_lines) /* This is a preliminary version, until we have found a reliable method to detect the model name out of the input line (Many options have to be taken into account.). */ - num_terminals = get_number_terminals(line); + int num_terminals = get_number_terminals(line); if (num_terminals != 0) { - bool model_ok; - model_name = get_model_name(line, num_terminals); + char *model_name = get_model_name(line, num_terminals); - model_ok = is_a_modelname(model_name); /* Check if model has already been recognized, if not, add its name to list used_model_names[i] */ - if (model_ok) { - found_model = FALSE; + if (is_a_modelname(model_name)) { + bool found_model = FALSE; for (i = 0; i < num_used_model_names; i++) if (strcmp(used_model_names[i], model_name) == 0) found_model = TRUE; @@ -1814,8 +1813,8 @@ comment_out_unused_subckt_models(struct line *start_card, int no_of_lines) continue; if (ciprefix(".subckt", line) || ciprefix(".macro", line)) { + char *subckt_name = get_subckt_model_name(line); nested_subckt++; - subckt_name = get_subckt_model_name(line); if (nested_subckt == 1) { /* check if unused, only at top level */ remove_subckt = TRUE; @@ -1840,7 +1839,8 @@ comment_out_unused_subckt_models(struct line *start_card, int no_of_lines) (ciprefix(".model", line) || ciprefix(".cmodel", line))) { char *model_type = get_model_type(line); - model_name = get_subckt_model_name(line); + char *model_name = get_subckt_model_name(line); + bool found_model = FALSE; /* keep R, L, C models because in addition to no. of terminals the value may be given, as in RE1 1 2 800 newres dtemp=5, so model name may be token no. 4 or 5, and, if 5, will not be detected by get_subckt_model_name()*/ @@ -1850,7 +1850,6 @@ comment_out_unused_subckt_models(struct line *start_card, int no_of_lines) { found_model = TRUE; } else { - found_model = FALSE; for (i = 0; i < num_used_model_names; i++) if (model_name_match(used_model_names[i], model_name)) { found_model = TRUE;