diff --git a/VERSION b/VERSION index 5b22f009..a6167b75 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.3.55 +8.3.56 diff --git a/extract/ExtBasic.c b/extract/ExtBasic.c index 6d048629..d4c37554 100644 --- a/extract/ExtBasic.c +++ b/extract/ExtBasic.c @@ -1724,7 +1724,14 @@ extOutputDevices(def, transList, outFile) continue; /* This terminal already found by perimeter search */ tmask = &devptr->exts_deviceSDTypes[termcount]; - if (TTMaskIsZero(tmask)) break; /* End of SD terminals */ + if (TTMaskIsZero(tmask)) { + if (termcount < nsd) { + /* See if there is another matching device record with */ + /* a different number of terminals, and try again. */ + devptr = extDevFindMatch(devptr, t); + } + break; /* End of SD terminals */ + } else if (!TTMaskIntersect(tmask, &DBPlaneTypes[reg->treg_pnum])) { node = NULL; @@ -2749,6 +2756,7 @@ extTransPerimFunc(bp) else { TxError("Error: Asymmetric device with multiple terminals!\n"); + break; } /* Add the length to this terminal's perimeter */