mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-08-22 06:07:34 +02:00
Corrected another place where the property handling had not been
converted to the new PropertyRecord type. Since this was in the CIFPropRecordPath() subroutine, which has always been problematic and generally useless, I took the opportunity to make that function dependent on an option set by "gds savepaths true", with the option set to "false" by default, so "path" properties will no longer be created from GDS input unless the option is manually set to "true". Also: Found that the returned boolean from "box exists" is sometimes getting overwritten with a NULL result, causing a spurious Tcl error messages to pop up. I could not find where this overwriting happens (probably in a tag callback), so I just took the hack approach of converting a NULL result to "false", which is always safe to do.
This commit is contained in:
+2
-2
@@ -779,8 +779,8 @@ CmdBox(
|
||||
break;
|
||||
case BOX_EXISTS:
|
||||
#ifdef MAGIC_WRAPPER
|
||||
Tcl_SetResult(magicinterp, ToolGetBox(NULL, NULL) ? "1" : "0",
|
||||
NULL);
|
||||
Tcl_SetObjResult(magicinterp,
|
||||
Tcl_NewBooleanObj(ToolGetBox(NULL, NULL) ? TRUE : FALSE));
|
||||
#else
|
||||
TxPrintf("%s\n", ToolGetBox(NULL, NULL) ? "True" : "False");
|
||||
#endif
|
||||
|
||||
+29
-6
@@ -117,12 +117,13 @@ bool cmdDumpParseArgs(char *cmdName, MagWindow *w, TxCommand *cmd, CellUse *dumm
|
||||
#define CALMA_READ 19
|
||||
#define CALMA_READONLY 20
|
||||
#define CALMA_RESCALE 21
|
||||
#define CALMA_WARNING 22
|
||||
#define CALMA_WRITE 23
|
||||
#define CALMA_POLYS 24
|
||||
#define CALMA_PATHS 25
|
||||
#define CALMA_UNDEFINED 26
|
||||
#define CALMA_UNIQUE 27
|
||||
#define CALMA_SAVEPATHS 22
|
||||
#define CALMA_WARNING 23
|
||||
#define CALMA_WRITE 24
|
||||
#define CALMA_POLYS 25
|
||||
#define CALMA_PATHS 26
|
||||
#define CALMA_UNDEFINED 27
|
||||
#define CALMA_UNIQUE 28
|
||||
|
||||
#define CALMA_WARN_HELP CIF_WARN_END /* undefined by CIF module */
|
||||
|
||||
@@ -175,6 +176,7 @@ CmdCalma(
|
||||
" into edit cell",
|
||||
"readonly [yes|no] set cell as read-only and generate output from GDS file",
|
||||
"rescale [yes|no] allow or disallow internal grid subdivision",
|
||||
"savepaths [yes|no] save path centerlines as cell properties",
|
||||
"warning [option] set warning information level",
|
||||
"write file output Calma GDS-II format to \"file\"\n"
|
||||
" for the window's root cell",
|
||||
@@ -738,6 +740,27 @@ CmdCalma(
|
||||
CalmaSubcellPolygons = (unsigned char)option;
|
||||
return;
|
||||
|
||||
case CALMA_SAVEPATHS:
|
||||
if (cmd->tx_argc == 2)
|
||||
{
|
||||
#ifdef MAGIC_WRAPPER
|
||||
Tcl_SetObjResult(magicinterp, Tcl_NewBooleanObj(CalmaRecordPaths));
|
||||
#else
|
||||
TxPrintf("Paths in GDS cells read from input file are%s recorded"
|
||||
" as cell properties.\n",
|
||||
(CalmaRecordPaths) ? " " : " not");
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
else if (cmd->tx_argc != 3)
|
||||
goto wrongNumArgs;
|
||||
|
||||
option = Lookup(cmd->tx_argv[2], cmdCalmaYesNo);
|
||||
if (option < 0)
|
||||
goto wrongNumArgs;
|
||||
CalmaRecordPaths = (option < 4) ? FALSE : TRUE;
|
||||
return;
|
||||
|
||||
case CALMA_NO_DUP:
|
||||
if (cmd->tx_argc == 2)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user