mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-09-01 02:28:41 +02:00
Merge branch 'master' into magic-8.2
This commit is contained in:
+1
-1
@@ -487,7 +487,7 @@ calmaDumpStructure(def, outf, calmaDefHash, filename)
|
||||
HashSetValue(he, (char *)newnameptr);
|
||||
}
|
||||
}
|
||||
calmaOutStringRecord(CALMA_STRNAME, newnameptr, outf);
|
||||
calmaOutStringRecord(CALMA_STRNAME, newnameptr + 1, outf);
|
||||
}
|
||||
freeMagic(strname);
|
||||
|
||||
|
||||
+11
-12
@@ -200,7 +200,7 @@ drcCifWidth(argc, argv)
|
||||
|
||||
dpnext = drcCifRules[thislayer][DRC_CIF_SPACE];
|
||||
dpnew = (DRCCookie *) mallocMagic((unsigned) (sizeof (DRCCookie)));
|
||||
drcAssign(dpnew, centidistance, dpnext, &CIFSolidBits,
|
||||
drcCifAssign(dpnew, centidistance, dpnext, &CIFSolidBits,
|
||||
&CIFSolidBits, why, centidistance,
|
||||
DRC_FORWARD, thislayer, 0);
|
||||
drcCifRules[thislayer][DRC_CIF_SPACE] = dpnew;
|
||||
@@ -292,7 +292,7 @@ drcCifSpacing(argc, argv)
|
||||
centidistance *= drcCifStyle->cs_expander; // BSI
|
||||
dpnext = drcCifRules[layer[0]][DRC_CIF_SOLID];
|
||||
dpnew = (DRCCookie *) mallocMagic((unsigned) sizeof (DRCCookie));
|
||||
drcAssign(dpnew, centidistance, dpnext, &DBSpaceBits,
|
||||
drcCifAssign(dpnew, centidistance, dpnext, &DBSpaceBits,
|
||||
&cmask, why, centidistance, DRC_FORWARD, layer[1], 0);
|
||||
drcCifRules[layer[0]][DRC_CIF_SOLID] = dpnew;
|
||||
if (needReverse) dpnew->drcc_flags |= DRC_BOTHCORNERS;
|
||||
@@ -300,7 +300,7 @@ drcCifSpacing(argc, argv)
|
||||
// Add rule in reverse direction
|
||||
dpnext = drcCifRules[layer[0]][DRC_CIF_SPACE];
|
||||
dpnew = (DRCCookie *) mallocMagic((unsigned) sizeof (DRCCookie));
|
||||
drcAssign(dpnew, centidistance, dpnext, &DBSpaceBits,
|
||||
drcCifAssign(dpnew, centidistance, dpnext, &DBSpaceBits,
|
||||
&cmask, why, centidistance, DRC_REVERSE, layer[1], 0);
|
||||
drcCifRules[layer[0]][DRC_CIF_SPACE] = dpnew;
|
||||
|
||||
@@ -312,14 +312,14 @@ drcCifSpacing(argc, argv)
|
||||
dpnew->drcc_flags |= DRC_BOTHCORNERS;
|
||||
dpnext = drcCifRules[layer[1]][DRC_CIF_SOLID];
|
||||
dpnew = (DRCCookie *) mallocMagic((unsigned) (sizeof (DRCCookie)));
|
||||
drcAssign(dpnew, centidistance, dpnext, &DBSpaceBits, &cmask,
|
||||
drcCifAssign(dpnew, centidistance, dpnext, &DBSpaceBits, &cmask,
|
||||
why, centidistance, DRC_FORWARD|DRC_BOTHCORNERS, layer[0], 0);
|
||||
drcCifRules[layer[1]][DRC_CIF_SOLID] = dpnew;
|
||||
|
||||
// Add rule in reverse direction
|
||||
dpnext = drcCifRules[layer[1]][DRC_CIF_SPACE];
|
||||
dpnew = (DRCCookie *) mallocMagic((unsigned) sizeof (DRCCookie));
|
||||
drcAssign(dpnew, centidistance, dpnext, &DBSpaceBits, &cmask,
|
||||
drcCifAssign(dpnew, centidistance, dpnext, &DBSpaceBits, &cmask,
|
||||
why, centidistance, DRC_REVERSE|DRC_BOTHCORNERS, layer[0], 0);
|
||||
drcCifRules[layer[1]][DRC_CIF_SPACE] = dpnew;
|
||||
|
||||
@@ -327,14 +327,14 @@ drcCifSpacing(argc, argv)
|
||||
{
|
||||
dpnext = drcCifRules[layer[1]][DRC_CIF_SPACE];
|
||||
dpnew = (DRCCookie *) mallocMagic((unsigned) (sizeof (DRCCookie)));
|
||||
drcAssign(dpnew, centidistance, dpnext, &DBSpaceBits,
|
||||
drcCifAssign(dpnew, centidistance, dpnext, &DBSpaceBits,
|
||||
&cmask, why, centidistance, DRC_REVERSE | DRC_BOTHCORNERS,
|
||||
layer[0], 0);
|
||||
drcCifRules[layer[1]][DRC_CIF_SPACE] = dpnew;
|
||||
|
||||
dpnext = drcCifRules[layer[0]][DRC_CIF_SPACE];
|
||||
dpnew = (DRCCookie *) mallocMagic((unsigned) (sizeof (DRCCookie)));
|
||||
drcAssign(dpnew, centidistance, dpnext, &DBSpaceBits, &cmask,
|
||||
drcCifAssign(dpnew, centidistance, dpnext, &DBSpaceBits, &cmask,
|
||||
why, centidistance, DRC_REVERSE | DRC_BOTHCORNERS,
|
||||
layer[1], 0);
|
||||
drcCifRules[layer[0]][DRC_CIF_SPACE] = dpnew;
|
||||
@@ -345,13 +345,13 @@ drcCifSpacing(argc, argv)
|
||||
{
|
||||
dpnext = drcCifRules[layer[1]][DRC_CIF_SPACE];
|
||||
dpnew = (DRCCookie *) mallocMagic((unsigned) (sizeof (DRCCookie)));
|
||||
drcAssign(dpnew, scalefactor, dpnext, &DBSpaceBits, &DBZeroTypeBits,
|
||||
drcCifAssign(dpnew, scalefactor, dpnext, &DBSpaceBits, &DBZeroTypeBits,
|
||||
why, scalefactor, DRC_FORWARD, layer[0], 0);
|
||||
drcCifRules[layer[1]][DRC_CIF_SPACE] = dpnew;
|
||||
|
||||
dpnext = drcCifRules[layer[0]][DRC_CIF_SPACE];
|
||||
dpnew = (DRCCookie *) mallocMagic((unsigned) (sizeof (DRCCookie)));
|
||||
drcAssign(dpnew, scalefactor, dpnext, &DBSpaceBits, &DBZeroTypeBits,
|
||||
drcCifAssign(dpnew, scalefactor, dpnext, &DBSpaceBits, &DBZeroTypeBits,
|
||||
why, scalefactor, DRC_FORWARD, layer[1], 0);
|
||||
drcCifRules[layer[0]][DRC_CIF_SPACE] = dpnew;
|
||||
}
|
||||
@@ -1066,7 +1066,7 @@ drcCifArea(argc, argv)
|
||||
centiarea *= (drcCifStyle->cs_expander * drcCifStyle->cs_expander);
|
||||
dpnext = drcCifRules[thislayer][DRC_CIF_SPACE];
|
||||
dpnew = (DRCCookie *) mallocMagic((unsigned) (sizeof (DRCCookie)));
|
||||
drcAssign(dpnew, centihorizon, dpnext, &CIFSolidBits, &CIFSolidBits,
|
||||
drcCifAssign(dpnew, centihorizon, dpnext, &CIFSolidBits, &CIFSolidBits,
|
||||
why, centiarea, DRC_AREA | DRC_FORWARD, thislayer, 0);
|
||||
drcCifRules[thislayer][DRC_CIF_SPACE] = dpnew;
|
||||
|
||||
@@ -1136,11 +1136,10 @@ drcCifMaxwidth(argc, argv)
|
||||
centidistance *= drcCifStyle->cs_expander; // BSI
|
||||
dpnext = drcCifRules[thislayer][DRC_CIF_SPACE];
|
||||
dpnew = (DRCCookie *) mallocMagic((unsigned) (sizeof (DRCCookie)));
|
||||
drcAssign(dpnew, centidistance, dpnext, &CIFSolidBits, &CIFSolidBits,
|
||||
drcCifAssign(dpnew, centidistance, dpnext, &CIFSolidBits, &CIFSolidBits,
|
||||
why, centidistance, DRC_MAXWIDTH | bend, thislayer, 0);
|
||||
drcCifRules[thislayer][DRC_CIF_SPACE] = dpnew;
|
||||
|
||||
|
||||
return ((centidistance+scalefactor-1)/scalefactor);
|
||||
}
|
||||
|
||||
|
||||
+22
-5
@@ -872,17 +872,13 @@ DRCTechLine(sectionName, argc, argv)
|
||||
}
|
||||
|
||||
void
|
||||
drcAssign(cookie, dist, next, mask, corner, why, cdist, flags, planeto, planefrom)
|
||||
drcCifAssign(cookie, dist, next, mask, corner, why, cdist, flags, planeto, planefrom)
|
||||
DRCCookie *cookie, *next;
|
||||
int dist, cdist;
|
||||
TileTypeBitMask *mask, *corner;
|
||||
char *why;
|
||||
int flags, planeto, planefrom;
|
||||
{
|
||||
/* Diagnostic */
|
||||
if (planeto >= DBNumPlanes) {
|
||||
TxError("Bad plane in DRC assign!\n");
|
||||
}
|
||||
(cookie)->drcc_dist = dist;
|
||||
(cookie)->drcc_next = next;
|
||||
(cookie)->drcc_mask = *mask;
|
||||
@@ -896,6 +892,27 @@ drcAssign(cookie, dist, next, mask, corner, why, cdist, flags, planeto, planefro
|
||||
(cookie)->drcc_cmod = 0;
|
||||
}
|
||||
|
||||
// This is like drcCifAssign, but checks for bad plane numbers in planeto and
|
||||
// planefrom
|
||||
|
||||
void
|
||||
drcAssign(cookie, dist, next, mask, corner, why, cdist, flags, planeto, planefrom)
|
||||
DRCCookie *cookie, *next;
|
||||
int dist, cdist;
|
||||
TileTypeBitMask *mask, *corner;
|
||||
char *why;
|
||||
int flags, planeto, planefrom;
|
||||
{
|
||||
/* Diagnostic */
|
||||
if (planeto >= DBNumPlanes)
|
||||
TechError("Bad plane in DRC assignment.\n");
|
||||
if (planefrom >= DBNumPlanes)
|
||||
TechError("Bad edge plane in DRC assignment.\n");
|
||||
|
||||
drcCifAssign(cookie, dist, next, mask, corner, why, cdist, flags, planeto,
|
||||
planefrom);
|
||||
}
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user