Corrected an issue with "drc catchup" that causes it not to work

because commands issued during initialization set the DRC status
in a way that causes DRCContinuous() to return immediately.
Also:  Implemented a slightly different method when automatically
finding the tech file from the input .mag file that loads a
technology .magicrc file if one exists.  If not, just the .tech
file is loaded.  This replaces the method of a previous commit
that loads the technology .tcl script.  The .magicrc file will
include the .tcl script but does other things as well.
This commit is contained in:
Tim Edwards 2023-09-20 10:27:07 -04:00
parent cb25afc5ff
commit a54a20ee58
3 changed files with 14 additions and 10 deletions

View File

@ -1 +1 @@
8.3.430 8.3.431

View File

@ -621,19 +621,19 @@ dbCellReadDef(f, cellDef, ignoreTech, dereference)
found = DBSearchForTech(techfullname, tech, string, 0); found = DBSearchForTech(techfullname, tech, string, 0);
} }
/* Experimental---check for a ".tcl" file in the same */ /* Experimental---check for a ".magicrc" file in */
/* directory as ".tech" and source it instead of */ /* the same directory as ".tech" and source it */
/* loading the tech file. */ /* first. */
if (found) if (found)
{ {
char *tclpath; char *rcpath;
tclpath = (char *)mallocMagic(strlen(found) + strlen(tech) rcpath = (char *)mallocMagic(strlen(found) + strlen(tech)
+ 6); + 10);
sprintf(tclpath, "%s/%s.tcl", found, tech); sprintf(rcpath, "%s/%s.magicrc", found, tech);
Tcl_EvalFile(magicinterp, tclpath); Tcl_EvalFile(magicinterp, rcpath);
freeMagic(tclpath); freeMagic(rcpath);
} }
#endif #endif

View File

@ -909,6 +909,10 @@ DRCCatchUp()
background = DRCBackGround; background = DRCBackGround;
DRCBackGround = DRC_SET_ON; DRCBackGround = DRC_SET_ON;
/* Always reset DRC status to "not running" before calling DRCContinous()
* directly.
*/
DRCStatus = DRC_NOT_RUNNING;
DRCContinuous(); DRCContinuous();
DRCBackGround = background; DRCBackGround = background;
} }