Fixed a few issues related to the "save <file>.tcl":
(1) Dimension properties were not output correctly.
(2) Magic insisted that the output file was <cell>.tcl, not <file>.tcl,
although the error was only in the messaging
(3) Magic was incorrectly renaming the cell to <cell>.tcl after writing
the file.
This commit is contained in:
parent
ba5154698d
commit
f3478cba7b
|
|
@ -761,13 +761,16 @@ cmdSaveCell(
|
||||||
if (!tryRename || (fileName == NULL) || (strcmp(cellDef->cd_name, fileName) == 0))
|
if (!tryRename || (fileName == NULL) || (strcmp(cellDef->cd_name, fileName) == 0))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
/* Rename the cell */
|
/* Rename the cell, unless fileName is a .tcl file (scripted output) */
|
||||||
if (!DBCellRenameDef(cellDef, fileName))
|
if ((strlen(fileName) <= 4) || strcmp(fileName + strlen(fileName) - 4, ".tcl"))
|
||||||
{
|
{
|
||||||
/* This should never happen */
|
if (!DBCellRenameDef(cellDef, fileName))
|
||||||
TxError("Magic error: there is already a cell named \"%s\"\n",
|
{
|
||||||
|
/* This should never happen */
|
||||||
|
TxError("Magic error: there is already a cell named \"%s\"\n",
|
||||||
fileName);
|
fileName);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EditCellUse && (cellDef == EditCellUse->cu_def))
|
if (EditCellUse && (cellDef == EditCellUse->cu_def))
|
||||||
|
|
|
||||||
|
|
@ -4384,8 +4384,6 @@ ioerror:
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
SigEnableInterrupts();
|
SigEnableInterrupts();
|
||||||
TxPrintf("Saved cell %s as a sequence of magic commands (file %s.tcl).\n",
|
|
||||||
cellDef->cd_name, cellDef->cd_name);
|
|
||||||
return (TRUE);
|
return (TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4527,7 +4525,7 @@ dbWritePropCommandsFunc(key, proprec, cdarg)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROPERTY_TYPE_INTEGER:
|
case PROPERTY_TYPE_INTEGER:
|
||||||
fprintf(f, "property integer ");
|
fprintf(f, "property integer %s ", key);
|
||||||
for (i = 0; i < proprec->prop_len; i++)
|
for (i = 0; i < proprec->prop_len; i++)
|
||||||
fprintf(f, "%d ", proprec->prop_value.prop_integer[i]);
|
fprintf(f, "%d ", proprec->prop_value.prop_integer[i]);
|
||||||
fprintf(f, "\n");
|
fprintf(f, "\n");
|
||||||
|
|
@ -4535,15 +4533,15 @@ dbWritePropCommandsFunc(key, proprec, cdarg)
|
||||||
|
|
||||||
case PROPERTY_TYPE_DIMENSION:
|
case PROPERTY_TYPE_DIMENSION:
|
||||||
windCheckOnlyWindow(&w, DBWclientID);
|
windCheckOnlyWindow(&w, DBWclientID);
|
||||||
fprintf(f, "property dimension ");
|
fprintf(f, "property dimension %s ", key);
|
||||||
for (i = 0; i < proprec->prop_len; i++)
|
for (i = 0; i < proprec->prop_len; i++)
|
||||||
fprintf(f, "%d ", DBWPrintValue(proprec->prop_value.prop_integer[i],
|
fprintf(f, "%s ", DBWPrintValue(proprec->prop_value.prop_integer[i],
|
||||||
w, ((i % 2) == 0) ? TRUE : FALSE));
|
w, ((i % 2) == 0) ? TRUE : FALSE));
|
||||||
fprintf(f, "\n");
|
fprintf(f, "\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROPERTY_TYPE_DOUBLE:
|
case PROPERTY_TYPE_DOUBLE:
|
||||||
fprintf(f, "property double ");
|
fprintf(f, "property double %s ", key);
|
||||||
for (i = 0; i < proprec->prop_len; i++)
|
for (i = 0; i < proprec->prop_len; i++)
|
||||||
fprintf(f, "%"DLONG_PREFIX"d ", proprec->prop_value.prop_double[i]);
|
fprintf(f, "%"DLONG_PREFIX"d ", proprec->prop_value.prop_double[i]);
|
||||||
fprintf(f, "\n");
|
fprintf(f, "\n");
|
||||||
|
|
@ -4624,6 +4622,8 @@ DBCellWrite(cellDef, fileName)
|
||||||
{
|
{
|
||||||
result = DBCellWriteCommandFile(cellDef, realf);
|
result = DBCellWriteCommandFile(cellDef, realf);
|
||||||
fclose(realf);
|
fclose(realf);
|
||||||
|
TxPrintf("Saved cell %s as a sequence of magic commands "
|
||||||
|
"(file %s).\n", cellDef->cd_name, fileName);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue