From 5b29870fce526e5190656fddfc94d5c6d8d16b13 Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Mon, 16 Oct 2023 17:29:05 -0400 Subject: [PATCH] Corrected an extraction issue in which an error message about "unexpected asymmetric device" is printed prematurely, as it is inside a loop checking over all device entries compatible with a device type. Also: Flagged an issue with the "label" keyword in the "cifinput" section of a tech file. The "label" keyword cannot be used in conjunction with boolean operators. It can only connect labels on a specific GDS type to one magic type. Unfortunately, because this was not flagged before as an error or warning, the incorrect usage has crept into a lot of tech files. This uncovers an underlying issue that labels must be allowed to automatically reconnect types, which is undermined by the "no-reconnect-labels" cifinput option. That issue will be addressed in an upcoming commit. --- VERSION | 2 +- cif/CIFrdtech.c | 18 ++++++++++++++---- commands/CmdAB.c | 2 +- commands/CmdLQ.c | 2 +- extract/ExtBasic.c | 10 ++-------- 5 files changed, 19 insertions(+), 15 deletions(-) diff --git a/VERSION b/VERSION index d7198d21..cfebf753 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.3.438 +8.3.439 diff --git a/cif/CIFrdtech.c b/cif/CIFrdtech.c index 8fb76378..08121d62 100644 --- a/cif/CIFrdtech.c +++ b/cif/CIFrdtech.c @@ -872,10 +872,20 @@ CIFReadTechLine(sectionName, argc, argv) goto wrongNumArgs; } CIFParseReadLayers(argv[1], &mask, TRUE); - for (i=0; icrs_labelLayer[i] != TT_SPACE) + TechError("Labels on layer \"%s\" attached to \"%s\" supersedes " + "prior attachment to \"%s\".\n", + cifReadLayers[i], + DBTypeLongNameTbl[cifCurReadLayer->crl_magicType], + DBTypeLongNameTbl[cifCurReadStyle->crs_labelLayer[i]]); + cifCurReadStyle->crs_labelLayer[i] = cifCurReadLayer->crl_magicType; if (argc == 3) @@ -899,8 +909,8 @@ CIFReadTechLine(sectionName, argc, argv) if (argc != 2) goto wrongNumArgs; CIFParseReadLayers(argv[1], &mask, TRUE); /* trash the value in crs_labelLayer so that any labels on this - layer get junked, also. dcs 4/11/90 - */ + * layer get junked, also. dcs 4/11/90 + */ for (i=0; i < cifNReadLayers; i++) { if (TTMaskHasType(&mask,i)) diff --git a/commands/CmdAB.c b/commands/CmdAB.c index 856d1ba3..5dfff66f 100644 --- a/commands/CmdAB.c +++ b/commands/CmdAB.c @@ -50,7 +50,7 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/ * CmdAddPath -- * * Implement the "addpath" command: append to the global cell search path. - * (Usage superceded by extended "path" command; retained for compatibility) + * (Usage superseded by extended "path" command; retained for compatibility) * * Usage: * addpath path diff --git a/commands/CmdLQ.c b/commands/CmdLQ.c index 13d66eb9..283d2381 100644 --- a/commands/CmdLQ.c +++ b/commands/CmdLQ.c @@ -785,7 +785,7 @@ CmdMove(w, cmd) * box exists. * If no selection exists, but the box does, then move the box * anyway (hace 10/8/97) - * The above method is superceded by "box move " + * The above method is superseded by "box move " * but is retained for backward compatibility. */ diff --git a/extract/ExtBasic.c b/extract/ExtBasic.c index c85b2d04..5193c61e 100644 --- a/extract/ExtBasic.c +++ b/extract/ExtBasic.c @@ -3490,16 +3490,10 @@ extTransPerimFunc(bp) } } else - { - /* Do not generate error messages on "Ignore" or "Short" - * device types + /* Do not print error messages here, as errors may + * be resolved when checking the next device entry. */ - if (strcmp(extTransRec.tr_devrec->exts_deviceName, "Ignore") && - strcmp(extTransRec.tr_devrec->exts_deviceName, "Short")) - TxError("Warning: Unexpected asymmetric device at %d, %d!\n", - bp->b_outside->ti_ll.p_x, bp->b_outside->ti_ll.p_y); break; - } /* Add the length to this terminal's perimeter */ extTransRec.tr_termlen[thisterm] += len;