diff --git a/extflat/EFhier.c b/extflat/EFhier.c index 594f95a8..e604823e 100644 --- a/extflat/EFhier.c +++ b/extflat/EFhier.c @@ -32,6 +32,7 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/ #include "utils/utils.h" #include "extflat/extflat.h" #include "extflat/EFint.h" +#include "textio/textio.h" /* * ---------------------------------------------------------------------------- @@ -491,7 +492,13 @@ efHierVisitDevs(hc, ca) { dev = (Dev *)HashGetValue(he); if (efHierDevKilled(hc, dev, hc->hc_hierName)) - continue; + { + TxError("Error: Device at (%d %d) is connected to one or more" + " eliminated nodes.\n", + dev->dev_rect.r_xbot, dev->dev_rect.r_ybot); + /* Output the device anyway, but something needs fixing */ + // continue; + } const cb_extflat_hiervisitdevs_t ca_hiervisitdevs_proc = (cb_extflat_hiervisitdevs_t) ca->ca_proc; /* FIXME temporary */ if ((*ca_hiervisitdevs_proc)(hc, dev, scale, ca->ca_cdata)) /* @invoke cb_extflat_hiervisitdevs_t */ diff --git a/extflat/EFread.c b/extflat/EFread.c index 89a08741..9abc979c 100644 --- a/extflat/EFread.c +++ b/extflat/EFread.c @@ -338,7 +338,9 @@ readfile: /* Device name "Short" is a reserved name indicating * that the device does not get output but acts as a * short between the first two terminals. Consequently, - * it acts like an "equiv" statement. + * it acts like an "equiv" statement. However, unlike + * regular "equiv" statements, it should always merge + * the nodes, so do not pass "resis" to efBuildEquiv(). */ int argstart = 7; /* "Short" devices should not have parameters, but just in @@ -349,7 +351,7 @@ readfile: efReadError("Bad terminal description for Short device\n"); else efBuildEquiv(def, argv[argstart + 1], argv[argstart + 4], - resist, isspice); + FALSE, isspice); break; }