Fixed a long-standing error that had gone unnoticed that prevents
the use of "property list <key>" to return NULL if <key> is undefined, instead of printing an error message that cannot be suppressed. Scripts which wish to test whether or not a bounding box exists will of course want the "quiet" version of the command.
This commit is contained in:
parent
ee79bba5e4
commit
03bbc544b2
|
|
@ -2326,7 +2326,7 @@ CmdDoProperty(
|
||||||
{
|
{
|
||||||
PropertyRecord *proprec;
|
PropertyRecord *proprec;
|
||||||
char *value;
|
char *value;
|
||||||
bool propfound;
|
bool propfound, dolist;
|
||||||
int proptype, proplen, propvalue, i;
|
int proptype, proplen, propvalue, i;
|
||||||
dlong dvalue;
|
dlong dvalue;
|
||||||
int locargc = cmd->tx_argc - argstart + 1;
|
int locargc = cmd->tx_argc - argstart + 1;
|
||||||
|
|
@ -2345,6 +2345,20 @@ CmdDoProperty(
|
||||||
"string", "integer", "dimension", "double", "plane", "compat", NULL
|
"string", "integer", "dimension", "double", "plane", "compat", NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* If the first keyword is "list", then set dolist and increment
|
||||||
|
* the starting argument position.
|
||||||
|
*/
|
||||||
|
dolist = FALSE;
|
||||||
|
if (locargc > 1)
|
||||||
|
{
|
||||||
|
if (!strcmp(cmd->tx_argv[argstart], "list"))
|
||||||
|
{
|
||||||
|
dolist = TRUE;
|
||||||
|
locargc--;
|
||||||
|
argstart++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* If a property type is given, parse it and then strip it from
|
/* If a property type is given, parse it and then strip it from
|
||||||
* the arguments list.
|
* the arguments list.
|
||||||
*/
|
*/
|
||||||
|
|
@ -2498,9 +2512,9 @@ CmdDoProperty(
|
||||||
#ifdef MAGIC_WRAPPER
|
#ifdef MAGIC_WRAPPER
|
||||||
/* If the command was "cellname list property ...", then */
|
/* If the command was "cellname list property ...", then */
|
||||||
/* just return NULL if the property was not found. */
|
/* just return NULL if the property was not found. */
|
||||||
if (strcmp(cmd->tx_argv[1], "list"))
|
if (!dolist)
|
||||||
#endif
|
#endif
|
||||||
TxError("Property name \"%s\" is not defined\n", cmd->tx_argv[1]);
|
TxError("Property name \"%s\" is not defined\n", cmd->tx_argv[argstart]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (locargc >= 3)
|
else if (locargc >= 3)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue