
SCRIPT SYNTAX DETAILS
     The general format for specifying an object in a script file
     is:

     objecttype={ parameter=value ... }

     Note that no spaces are allowed between the objecttype  and
     the "{".

     A line with an exclamation "!" in column one is treated as a
     comment line, the rest of the line will be ignored.

     Each "value" can take one of three forms:


     1) A single word.
        e.g. label=fred


     2) zero or more words enclosed in single quotes
        e.g. label='fred in quotes'
        The quotes are stripped before the value is  stored.  Two
        consecutive  single quotes within the quotes will produce
        a single quote in the stored value.  Any  other  type  of
        quotes pass through unchanged.
        e.g. ' ''fred'' is happy' is stored as -> 'fred' is happy<-
               '"fred" is happy' is stored as ->"fred" is happy<-


     3) zero or more words enclosed in double quotes
        e.g. label="fred in quotes"
        The quotes are stripped before the value is  stored.  Two
        consecutive  double quotes within the quotes will produce
        one double quote in the stored value. Any other  type  of
        quotes pass through unchanged.
        e.g. " ""fred"" is happy" is stored as -> "fred" is happy<-
             " ""fred"" is 'happy'" is stored as -> "fred" is 'happy'<-

     Within  either  single  or  double  quotes   the   following
     transformations are applied to handle newlines:
      newline                ->              newline
      backslash newline      ->              is removed
      \n                     ->              newline

     A  string  may  contain  zero  or  more  words  enclosed  in
     backquotes.
     e.g. label=`echo my name is fred`
     or   label="This user's name is `whoami` "

     The value stored is the output produced by running the  com-
     mand  using  the  user's  shell.  Any trailing whitespace is
     stripped from the output.
     In these examples the values stored are ->my name is  fred<-
     and ->This user's name is dave <- (assuming I ran it.)

     A double  backquote  "``"  is  used  to  generate  a  single
     backquote in the value string.
     e.g. ``this string is in backquotes`` "


     The value string specified can contain xtpanel variables. An
     xtpanel variable is the name of an object preceded by a dol-
     lar "$" sign. The string associated with the object is  sub-
     stituted in the value string. An object name can be enclosed
     in brackets to avoid  syntactic  ambiguity.  For  an  object
     named  "myobj",  you  can refer to its value elsewhere in an
     xtpanel using "$(myobj)" or  "$myobj".  The  first  form  is
     recommended.  If  you do not enclose the name in brackets it
     will be assumed to end at the next  space,  dollar  sign  or
     quote.   It  makes no sense to reference an object before it
     is defined. A double dollar sign "$$" is used to generate  a
     single dollar in the value string.

     The rule for expanding strings is as follows. The string  is
     read  from  the start, when a reference to another object is
     found it is replaced by the value  of  the  object,  without
     expansion.  When  a backquote is found the string inside the
     backquotes is expanded before the command is executed.  This
     means that the commands in backquotes may contain the values
     of other objects. Strings in actions  are  expanded  at  the
     time  the action is performed, not at the time that they are
     read. This means that you will not be informed of any errors
     in expanding an action string until the action is performed.
     See ACTIONS below.

     e.g. This script lists a directory and puts the result in a text field.

     field={ name=dir value=`echo $$HOME` }
     button={ label="list" action="ASSIGN txt `ls $home`" }
     text={ name=txt height=200 width=400 }

     Note that the interpretation of variables is not  recursive.
     Within an xtpanel variable that is evaluated, a new variable
     will be left as is  rather  than  being  replaced  with  its
     current  value.  Similarly, any backquoted strings stored in
     the variable (using double backquotes) are  not  recursively
     expanded.

     i.e. With this script,

     var={ name=fred value=" I am $$fred " }
     var={ name=joe value=" ``echo hello`` " }
     message={ value=" The value of fred is $fred " }
     message={ value=" The value of joe is $joe " }

     The two message field will display:
     "The value of fred is  I am $fred  "
     "The value of joe is  `echo hello`  "

