Browse Source

Allow 3-terminal MOS devices (e.g. VDMOS),

prevent crash upon user error
pre-master-46
Holger Vogt 6 years ago
parent
commit
0490bc090b
  1. 13
      src/frontend/subckt.c

13
src/frontend/subckt.c

@ -1811,7 +1811,7 @@ devmodtranslate(struct card *s, char *subname, wordlist * const orig_modnames)
tfree(name); tfree(name);
break; break;
/* 4-7 terminal mos devices */
/* 3-7 terminal mos devices */
case 'm': case 'm':
name = gettok(&t); /* get refdes */ name = gettok(&t); /* get refdes */
bxx_printf(&buffer, "%s ", name); bxx_printf(&buffer, "%s ", name);
@ -1825,10 +1825,11 @@ devmodtranslate(struct card *s, char *subname, wordlist * const orig_modnames)
name = gettok_node(&t); /* get third attached netname */ name = gettok_node(&t); /* get third attached netname */
bxx_printf(&buffer, "%s ", name); bxx_printf(&buffer, "%s ", name);
tfree(name); tfree(name);
name = gettok_node(&t); /* get fourth attached netname */
bxx_printf(&buffer, "%s ", name);
tfree(name);
name = gettok(&t);
name = gettok_node(&t);
if (!name) {
break;
}
found = 0; found = 0;
while (!found) { while (!found) {
@ -1841,7 +1842,7 @@ devmodtranslate(struct card *s, char *subname, wordlist * const orig_modnames)
if (!found) { /* name was not a model - was a netname */ if (!found) { /* name was not a model - was a netname */
bxx_printf(&buffer, "%s ", name); bxx_printf(&buffer, "%s ", name);
tfree(name); tfree(name);
name = gettok(&t);
name = gettok_node(&t);
if (name == NULL) { if (name == NULL) {
name = copy(""); /* allow 'tfree' */ name = copy(""); /* allow 'tfree' */
break; break;

Loading…
Cancel
Save