void ResGetReCell() { if (ResUse != NULL) return; ResDef = DBCellLookDef("__RESIS__"); if (ResDef == NULL) { ResDef = DBCellNewDef("__RESIS__", (char *) NULL); ASSERT (ResDef != (CellDef *) NULL, "ResGetReCell"); DBCellSetAvail(ResDef); ResDef->cd_flags |= CDINTERNAL; } ResUse = DBCellNewUse(ResDef, (char *) NULL); DBSetTrans(ResUse, &GeoIdentityTransform); ResUse->cu_expandMask = CU_DESCEND_SPECIAL; }
void ExtInit() { int n; static struct { char *di_name; int *di_id; } debugFlags[] = { "areaenum", &extDebAreaEnum, "array", &extDebArray, "hardway", &extDebHardWay, "hiercap", &extDebHierCap, "hierareacap", &extDebHierAreaCap, "label", &extDebLabel, "length", &extDebLength, "neighbor", &extDebNeighbor, "noarray", &extDebNoArray, "nofeedback", &extDebNoFeedback, "nohard", &extDebNoHard, "nosubcell", &extDebNoSubcell, "perimeter", &extDebPerim, "resist", &extDebResist, "visonly", &extDebVisOnly, "yank", &extDebYank, 0 }; /* Register ourselves with the debugging module */ extDebugID = DebugAddClient("extract", sizeof debugFlags/sizeof debugFlags[0]); for (n = 0; debugFlags[n].di_name; n++) *(debugFlags[n].di_id) = DebugAddFlag(extDebugID, debugFlags[n].di_name); /* Create the yank buffer used for hierarchical extraction */ DBNewYank("__ext_cumulative", &extYuseCum, &extYdefCum); /* Create the dummy use also used in hierarchical extraction */ extParentUse = DBCellNewUse(extYdefCum, (char *) NULL); DBSetTrans(extParentUse, &GeoIdentityTransform); /* Initialize the hash tables used in ExtLength.c */ extLengthInit(); }