NEW

From STX Wiki
< Programmer Guide‎ | Command Reference
Revision as of 08:48, 6 May 2015 by Jw (talk | contribs) (Consolidating two 'NEW' pages)
Jump to navigationJump to search
NEW itemtype itemname [ /I ] [ /U|/u ] [ /G ] [ /Z ] [ createargs [ createopts ] ]

The NEW command creates a new shell item of the type itemtype and named itemname.

itemtype
The type of the new shell item. This must be unique (in the item namespace of a shell).
itemname
The name of the new shell item. If this argument is set to the character *, the name is choosen automatically.
createargs
Arguments specifying parameters for the initialization of the new item. The format and meaning of these arguments are depending on the type of the new shell item.
/I
Enable silent error reporting. If specified, NEW will generate a warning rather than an error if arguments are missing or it is unable create the new item.
/G
Garbage collection. If specified, a temporary (or local) item created, which is automatically deleted when exiting the macro.
/U
If specified, the global item protection is enabled. This means all items created before this item (called the protection-master) are protected from being deleted, until the global item protection is disabled, which is done by deleting the protection-master). Protected items can only be deleted using a special option of the DELETE command. Note: This option is case-sensitive.
/u
If specified, the created item protected from being deleted. , until the global item protection is disabled, which is done by deleting the protection-master). Note: This option is case-sensitive.
/z

The following example creates a new table with an automatic name and assigns the name to a local variable or exits if the table was not created.

NEW TABLE *
if '$#new' == '*' then  
    butil msgbox msg ; Failed to create table   
    exit
end
#t := $#new$#t * 'my first entry' // append entry to table

You can also use your own name, rather than an automatically generated one. In this case, the code would look like this.

NEW TABLE myTable
if '$#new' == '*' then
    butil msgbox msg ; Failed to create table
    exit
end
myTable * 'my first entry' // append entry to table

Alternatively, with the inline syntax:

#t := $(NEW TABLE *)
if '$#t' == '*' then
   butil msgbox msg ; Failed to create table
   exit
end
$#t * 'my first entry' // append entry to table

All instances created with the NEW command should be deleted when no longer needed using the DELETE command.

Navigation menu

Personal tools