Additional correction for properly handling the substrate node

when generating the device outputs in the .res.ext file, which was
one of the main points of this exercise.
This commit is contained in:
Tim Edwards 2021-04-21 21:04:17 -04:00
parent 59fc24729c
commit a5248a95d3
2 changed files with 9 additions and 7 deletions

View File

@ -166,7 +166,10 @@ ResPrintExtDev(outextfile, devices)
break;
}
fprintf(outextfile, " \"%s\"", subsName);
if (devices->subs != NULL)
fprintf(outextfile, " \"%s\"", devices->subs->name);
else
fprintf(outextfile, " \"%s\"", subsName);
fprintf(outextfile, " \"%s\" %d %s \"%s\" %d %s \"%s\" %d %s\n",
devices->gate->name,

View File

@ -1165,18 +1165,17 @@ ResFixUpConnections(simDev, layoutDev, simNode, nodename)
/* don't patch up networks. This cuts down on memory use. */
if ((ResOptionsFlags & (ResOpt_DoRsmFile | ResOpt_DoExtFile)) == 0)
{
return;
}
if (simDev->layout == NULL)
{
layoutDev->rd_status |= RES_DEV_SAVE;
simDev->layout = layoutDev;
}
simDev->status |= TRUE;
if (strcmp(nodename,oldnodename) != 0)
if (strcmp(nodename, oldnodename) != 0)
{
strcpy(oldnodename,nodename);
strcpy(oldnodename, nodename);
}
sprintf(newname, "%s%s%d", nodename, ".t", resNodeNum++);
notdecremented = TRUE;
@ -1204,8 +1203,8 @@ ResFixUpConnections(simDev, layoutDev, simNode, nodename)
{
if (simDev->drain == simNode)
{
if ((source = layoutDev->rd_fet_source) &&
(drain = layoutDev->rd_fet_drain))
if (((source = layoutDev->rd_fet_source) != NULL) &&
((drain = layoutDev->rd_fet_drain) != NULL))
{
if (source->rn_name != NULL && notdecremented)
{