Merge branch 'work' into tomerge

This commit is contained in:
Tim Edwards 2018-04-24 09:31:06 -04:00
commit 33a70706ac
2 changed files with 30 additions and 27 deletions

View File

@ -681,12 +681,12 @@ calmaProcessDef(def, outf)
/* another vendor GDS, it would not normally be output. */ /* another vendor GDS, it would not normally be output. */
DBPropGet(def->cd_parents->cu_parent, "GDS_FILE", &isReadOnly); DBPropGet(def->cd_parents->cu_parent, "GDS_FILE", &isReadOnly);
if (!isReadOnly) if (!isReadOnly || isAbstract)
TxError("Calma output error: Can't find GDS file \"%s\" " TxError("Calma output error: Can't find GDS file \"%s\" "
"for vendor cell \"%s\". Using magic's " "for vendor cell \"%s\". Using magic's "
"internal definition\n", filename, "internal definition\n", filename,
def->cd_name); def->cd_name);
else if (isReadOnly)
def->cd_flags |= CDVENDORGDS; def->cd_flags |= CDVENDORGDS;
} }
else if (isAbstract) else if (isAbstract)

View File

@ -1400,39 +1400,42 @@ badTransform:
/* now two versions of the same cell name coming from different */ /* now two versions of the same cell name coming from different */
/* sources, and this must be corrected. */ /* sources, and this must be corrected. */
if (subCellDef->cd_file != NULL) if (*pathptr != '\0')
{ {
slashptr = strrchr(subCellDef->cd_file, '/'); if (subCellDef->cd_file != NULL)
if (slashptr != NULL)
{ {
*slashptr = '\0'; slashptr = strrchr(subCellDef->cd_file, '/');
if (slashptr != NULL)
if (strcmp(subCellDef->cd_file, pathptr))
{ {
TxError("Duplicate cell in %s: Instance of cell %s is from " *slashptr = '\0';
"path %s but cell was previously read from %s.\n",
cellDef->cd_name, slashptr + 1, pathptr,
subCellDef->cd_file);
/* To do: Check if new path does not exist (ignore), */ if (strcmp(subCellDef->cd_file, pathptr))
/* or if new path has same symbolic link or is the same */ {
/* filesize and checksum (ignore). If file appears to */ TxError("Duplicate cell in %s: Instance of cell %s is from "
/* be truly different, then create a new cell with a */ "path %s but cell was previously read from %s.\n",
/* modified cell name. */ cellDef->cd_name, slashptr + 1, pathptr,
subCellDef->cd_file);
TxError("New path will be ignored. Please check.\n"); /* To do: Check if new path does not exist (ignore), */
/* or if new path has same symbolic link or is the same */
/* filesize and checksum (ignore). If file appears to */
/* be truly different, then create a new cell with a */
/* modified cell name. */
TxError("New path will be ignored. Please check.\n");
}
*slashptr = '/';
} }
*slashptr = '/';
} }
} else
else if (*pathptr != '\0') {
{ /* Reconstruct file from path and cellname */
/* Reconstruct file from path and cellname */
strcat(path, "/"); strcat(path, "/");
strcat(path, subCellDef->cd_name); strcat(path, subCellDef->cd_name);
strcat(path, DBSuffix); strcat(path, DBSuffix);
StrDup(&subCellDef->cd_file, path); StrDup(&subCellDef->cd_file, path);
}
} }
subCellUse = DBCellNewUse(subCellDef, (useid[0]) ? subCellUse = DBCellNewUse(subCellDef, (useid[0]) ?