COMMANDS:
    xcall      xddes      xforall    xids       xman       xscan      xtrace
    xcallouts  xdes       xgoto      xinherit   xmore      xset       xtrans
    xclean     xdlook     xgrep      xlag       xmove      xsh        xuclone
    xclone     xdo        xhbeats    xload      xmsg       xsort      xupdate
    xdbg       xdupdate   xhead      xlook      xmtp       xtail      xwc
    xdclean    xeval      xhelp      xlpc       xprops     xtool      xwho


Give a "?" as single argument to get the command usage or do "xman <command>"
for more information about a command.

QUICKTYPER:
   The MGtool contains a full quicktyping tool. It provides the following
   features:

      - multiple command execution (see the xdo and xforall command)
      - script files               (see the xsh command)
      - command pipelining
      - command history

   The command history stores (nearly) each command you type in and lets you
   re-execute it.

      - %!        show the command history
      - %%        re-execute the last command
      - ^old^new  re-execute the last command but replace all occurencies of
                  the "old" string of the command by "new".
      - %num      re-execute the command at position num of the history
      - %str      re-execute the last command beginning with the string "str"


COMMAND ARGUMENTS:
   Most commands need filenames or objects as argument. The way objects are
   specified will be descriped in the following.

      - an object can be accessed directly by its unique object name
      - a player can be accessed by its player name
      - a living can be accessed by its living name
      - a object inside the current room by its id
      - a object inside the current room by its position

   If the object can not be accessed by the above mentioned ways you can also
   use the following object modifiers:

      ^obj         stands for the environment of an object
      obj1.obj2    stands for an object obj2 inside another object obj1
      
  These modifiers can be concatenated together where the "^" has a higher
  priority than the ".". This allows you to access an object from another know
  object.

  Now some examples which demonstrates how to use this accessing mechanism.
  Therefore we use the command "xlook" which prints the short and long
  description and also the content of an object:

   1. xlook deepthought
      Look at Deepthought.
   2. xlook ^deepthought
      Look at the room Deepthought is in.
   3. xlook deepthought.bag
      Look at the bag of Deepthought.
   4. xlook deepthought.bag.bag
      Look at the bag inside Deeps bag.
   4. xlook deepthought.5
      Look at the fifth object of Deeps inventory.
   5. xlook /std/thing#123
      Look at the object with the unique object name "/std/thing#123".
   6. xlook 1
      Look at the first object in the current room.
   7. xlook 1.2.3
      Look at the third of the second of the first object in the room.

  If the name of an object contains an object modifier as a character then it
  can be escaped by a "\". A "\" is escaped by itself. This is because file
  names often contain the "." for file extensions. So if you want to access
  directly an object with for example such a name "file.old.bulb" you have to
  write "file\.old\.blub".
    
  If a command needs a file as argument you can use the filename of an object
  for it by placing an "@" infront of the object. This way you can clone
  an object by using another clone:

     xclone @harry.bag.candles
     Clone some candles of the kind Harry is carrying in his bag.


ARGUMENT VARIABLES:
   Whenever an object or a filename is needed, we can use variables.
   A variable allways starts with a "$" followed by the name which
   identificates it. Two variable names are reserved for special purpose.
   The first, "$me" is always set to the one who owns the Xtool. The other,
   "$here" represents the current room.

   (Instead of "$me" and "$here" you can also use "$m" and "$h".)

   If a command needs a file as argument and gets a variable it will be
   automatically converted into the source file of the object.
   (This is done by taking the unique object identifier and replacing the
   "#..." by a ".c".)

