diff --git a/VERSION b/VERSION index 131e6042..6213abdf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.3.310 +8.3.311 diff --git a/calma/CalmaWrite.c b/calma/CalmaWrite.c index ee0aecf4..f2d4588a 100644 --- a/calma/CalmaWrite.c +++ b/calma/CalmaWrite.c @@ -863,6 +863,7 @@ calmaProcessDef(def, outf, do_library) bool do_library; /* If TRUE, output only children of def, but not def */ { char *filename; + int polyidx; bool isReadOnly, oldStyle, hasContent, isAbstract, hasGDSEnd; HashEntry *he; @@ -1168,6 +1169,17 @@ calmaProcessDef(def, outf, do_library) } } + /* Quick check on "polygonXXXXX" cells---these are generated by the */ + /* "gds polygon subcell" option, and if the parent cell is a vendor */ + /* GDS file, then these cells do not actually exist in the layout */ + /* and should not be output. */ + + if (isReadOnly == FALSE) + if (!strncmp(def->cd_name, "polygon", 7)) + if (sscanf(def->cd_name + 7, "%d", &polyidx) == 1) + if (def->cd_parents->cu_parent != NULL) + DBPropGet(def->cd_parents->cu_parent, "GDS_FILE", &isReadOnly); + /* Output this cell definition from the Magic database */ if (!isReadOnly) if (!do_library) diff --git a/calma/CalmaWriteZ.c b/calma/CalmaWriteZ.c index 57726e9d..e35a5f91 100644 --- a/calma/CalmaWriteZ.c +++ b/calma/CalmaWriteZ.c @@ -818,6 +818,7 @@ calmaProcessDefZ(def, outf, do_library) bool do_library; /* If TRUE, output only children of def, but not def */ { char *filename; + int polyidx; bool isReadOnly, oldStyle, hasContent, isAbstract, hasGDSEnd; HashEntry *he; @@ -1080,6 +1081,17 @@ calmaProcessDefZ(def, outf, do_library) } } + /* Quick check on "polygonXXXXX" cells---these are generated by the */ + /* "gds polygon subcell" option, and if the parent cell is a vendor */ + /* GDS file, then these cells do not actually exist in the layout */ + /* and should not be output. */ + + if (isReadOnly == FALSE) + if (!strncmp(def->cd_name, "polygon", 7)) + if (sscanf(def->cd_name + 7, "%d", &polyidx) == 1) + if (def->cd_parents->cu_parent != NULL) + DBPropGet(def->cd_parents->cu_parent, "GDS_FILE", &isReadOnly); + /* Output this cell definition from the Magic database */ if (!isReadOnly) if (!do_library)