From 01742eefefaf9c932da50c979ec785540c8b29b5 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Sat, 15 Jun 2019 11:29:42 +0200 Subject: [PATCH] The PSPICE area token for a device instance may be not only a number, but also a parametrized token like {tok} --- src/frontend/inpcom.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index 8f5077304..4f9f49863 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -7386,13 +7386,22 @@ pspice_compat(struct card *oldcard) if(is_node4) cut_line = nexttok(cut_line); // model name } - if (*cut_line && atof(cut_line) > 0.0) { // size of area + if (*cut_line && atof(cut_line) > 0.0) { // size of area is a real number char *tmpstr1 = copy_substring(card->line, cut_line); char *tmpstr2 = tprintf("%s area=%s", tmpstr1, cut_line); tfree(tmpstr1); tfree(card->line); card->line = tmpstr2; } + else if (*cut_line && *(skip_ws(cut_line)) == '{') { // size of area is parametrized inside {} + char *tmpstr1 = copy_substring(card->line, cut_line); + char *tmpstr2 = gettok_char(&cut_line, '}', TRUE, TRUE); + char *tmpstr3 = tprintf("%s area=%s %s", tmpstr1, tmpstr2, cut_line); + tfree(tmpstr1); + tfree(tmpstr2); + tfree(card->line); + card->line = tmpstr3; + } } else if (*cut_line == 'd') { cut_line = nexttok(cut_line); //.model