diff --git a/src/frontend/numparam/spicenum.c b/src/frontend/numparam/spicenum.c index 1bba67ffa..28bf3af9b 100644 --- a/src/frontend/numparam/spicenum.c +++ b/src/frontend/numparam/spicenum.c @@ -813,7 +813,7 @@ nupa_eval(struct card *card) int orig_linenum = card->linenum_orig; int idef; /* subckt definition line */ - char c, keep, *ptr; + char c; SPICE_DSTRING subname; /* dynamic string for subcircuit name */ bool err = 1; @@ -836,12 +836,8 @@ nupa_eval(struct card *card) err = nupa_substitute(dicoS, dicoS->dynrefptr[linenum], s, 0); } else if (c == 'X') { /* compute args of subcircuit, if required */ - ptr = skip_non_ws(s); - keep = *ptr; - *ptr = '\0'; - nupa_inst_name = strdup(s); + nupa_inst_name = copy_substring(s, skip_non_ws(s)); *nupa_inst_name = 'x'; - *ptr = keep; strtoupper(nupa_inst_name);