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:
parent
cb25afc5ff
commit
a54a20ee58
|
|
@ -621,19 +621,19 @@ dbCellReadDef(f, cellDef, ignoreTech, dereference)
|
|||
found = DBSearchForTech(techfullname, tech, string, 0);
|
||||
}
|
||||
|
||||
/* Experimental---check for a ".tcl" file in the same */
|
||||
/* directory as ".tech" and source it instead of */
|
||||
/* loading the tech file. */
|
||||
/* Experimental---check for a ".magicrc" file in */
|
||||
/* the same directory as ".tech" and source it */
|
||||
/* first. */
|
||||
|
||||
if (found)
|
||||
{
|
||||
char *tclpath;
|
||||
char *rcpath;
|
||||
|
||||
tclpath = (char *)mallocMagic(strlen(found) + strlen(tech)
|
||||
+ 6);
|
||||
sprintf(tclpath, "%s/%s.tcl", found, tech);
|
||||
Tcl_EvalFile(magicinterp, tclpath);
|
||||
freeMagic(tclpath);
|
||||
rcpath = (char *)mallocMagic(strlen(found) + strlen(tech)
|
||||
+ 10);
|
||||
sprintf(rcpath, "%s/%s.magicrc", found, tech);
|
||||
Tcl_EvalFile(magicinterp, rcpath);
|
||||
freeMagic(rcpath);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -909,6 +909,10 @@ DRCCatchUp()
|
|||
|
||||
background = DRCBackGround;
|
||||
DRCBackGround = DRC_SET_ON;
|
||||
/* Always reset DRC status to "not running" before calling DRCContinous()
|
||||
* directly.
|
||||
*/
|
||||
DRCStatus = DRC_NOT_RUNNING;
|
||||
DRCContinuous();
|
||||
DRCBackGround = background;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue