Syntax:
<feature set> setDesc <commands>
Example1:
fs setDesc {$fes read FEAT $arg(IN)}
Example2:
fs setDesc @featdesc
With this method a Feature Description can be defined either by giving the commands (Example1) or a file (Example2) containing the commands.
The commands (usually FeatureSet methods or Tcl commands) then will become part of a procedure that will be used by the eval method. The argument of 'eval' is a {variable value} list. The procedure will convert this list into an array arg() that allows an easy access to each variable with $arg(variable). To allow the same feature description file to be used for whatever FeatureSet please use $fes as FeatureSet name within the commands. It will be substituted with the name of the FeatureSet using 'setDesc'.
Since you don't want to replace $fes and $arg(IN) in Example1 before setDesc is called {...} must be used and not "...".
Optional flags: none
Related commands: eval, setAccess,
Questions:
Yes, instead of {$fes ...} use "\$fes ..." and you protect fes using \$. Other variables like $my_var not protected with \ are then replaced before they are passed to 'setDesc'.