home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / fibstf0b.zip / tf.hlp < prev    next >
Text File  |  1993-05-25  |  78KB  |  2,411 lines

  1. @@@@summary
  2.  
  3. Help is available on the following topics:
  4.  
  5.  +index        +macros        history       processes
  6.   general       triggers      flags        +sockets
  7.   tinyfugue     patterns      variables    +hooks
  8.   worlds        attributes   +environment  +expansion
  9.  *startup      *library
  10.  
  11. Type "/help index" for a complete list of TF builtin commands.
  12. Type "/help help" for instructions on using this help system.
  13. Type "/help general" for some general information on using TF.
  14.  
  15. If you are having problems with TF and wish to contact the author, type
  16. "/help tinyfugue".
  17.  
  18. If you are having trouble reading the help sections because text is 
  19. scrolling off the screen, try typing "/more on" before /help commands.
  20.  
  21. @@@@addworld
  22.  
  23.   Format:
  24.  
  25.   /ADDWORLD <name> [<character> <pass>] <host> <port> [<macro file>]
  26.   /ADDWORLD default <character> <pass> [<mfile>]
  27.   ___________
  28.  
  29.   Adds a new world associated with the name <name>, or defines the
  30.   default character and password.  Those worlds without character
  31.   names, passwords, or macro files will reference to those fields in
  32.   the default world if a default world exists and contains those
  33.   strings.
  34.  
  35.   Redefining the default world is permitted.  Those worlds previously
  36.   defined without character, password or macro file strings will then
  37.   use the new default.
  38.  
  39.   See: worlds
  40.  
  41. @@@@background
  42.  
  43.   Format:
  44.  
  45.   /BACKGROUND [OFF|ON]
  46.   ___________
  47.  
  48.   Sets the flag "background".  If this flag is on, text received from
  49.   all worlds will be tested for matching triggers and recorded in
  50.   history.  If is is off, only text from the current socket will be
  51.   triggered and recorded.
  52.  
  53.   If there is unread socket input queued up when background is turned
  54.   on, it will all be tested for triggers and recorded at that time.
  55.  
  56.   See: triggers, flags, history
  57.  
  58. @@@@bamf
  59.  
  60.   Format:
  61.  
  62.   /BAMF [OFF|ON|OLD]
  63.   ___________
  64.  
  65.   Sets the flag "bamf".  This flag controls whether portals will
  66.   operate.  A portal is text sent by a server of the form:
  67.  
  68.   #### Please reconnect to <name>@<IP addr> (<hostname>) port <port> ####
  69.  
  70.   For example:
  71.  
  72.   #### Please reconnect to Islandia@128.100.102.51 (hawkwind.utcs.toronto.edu)
  73.     port 2323 ####
  74.  
  75.   If "bamf" is off, lines in this format have no effect.  If "bamf" is
  76.   on, fugue will attempt to use the portal as an UnterMUD portal:  it
  77.   will disconnect from the current world, and use the same name and
  78.   password to attempt to connect to the new world (if the login flag is
  79.   on).  If bamf is "old", fugue will connect to the new world without
  80.   disconnecting from the current world.  If "login" is on and the new
  81.   world has been defined with a name and password in an /addworld
  82.   command, fugue will attempt to log in automatically.
  83.  
  84.   The flag "bamf" defaults to OFF.
  85.  
  86.   See: worlds, sockets, flags
  87.  
  88. @@@@beep
  89.  
  90.   Format:
  91.  
  92.   /BEEP [<number>|ON|OFF]
  93.   ___________
  94.  
  95.   /beep causes Fugue to emit <number> beeps (ASCII 7).  /beep with no
  96.   arguments will emit three beeps.  /beep OFF causes Fugue to ignore
  97.   further calls to /beep until a /beep ON is performed.
  98.  
  99. @@@@bind
  100.  
  101.   Format:
  102.  
  103.   /BIND [<sequence> = <command>]
  104.   ___________
  105.  
  106.   Binds a key sequence to a macro.  The <sequence> may use ^<key>
  107.   notation for a control key, and \<number> for a decimal character
  108.   code.  For example, the escape character can be given by ^[ or \27.
  109.  
  110.   When the key sequence <sequence> is typed at the keyboard, <command>
  111.   is executed.  The command is actually a macro body, so all the
  112.   substitutions described under "expansion" will be performed.
  113.  
  114.   At startup, TF defines bindings for BSPC, BWORD, DLINE, and REFRESH
  115.   keys based on your terminal settings (defined by stty).  Also, the
  116.   standard macro library defines a set of (invisible) default bindings,
  117.   one for each of the /dokey functions.
  118.  
  119.   The command
  120.     /bind <sequence> = <command>
  121.   is equivilent to
  122.     /def -b"<sequence>" = <command>.
  123.  
  124.   Examples:
  125.  
  126.   /bind ^X1 = :jumps to the left%;:steps to the right!
  127.   /bind ^[q = /more off
  128.   /bind ~ky = /input Kyosuke
  129.  
  130.   See: general, UNBIND, DOKEY, INPUT
  131.  
  132. @@@@board
  133.  
  134.   Format:
  135.  
  136.   /BOARD [OFF|ON|1|2|4]
  137.   ___________
  138.  
  139.   Sets the flag "board". This flag controls whether an additional window
  140.   for displaying backgammon boards will be used. This is useful when
  141.   connecting to the FIBS backgammon server. To display backgammon boards
  142.   in this window you have to tell the server to send boards in rawboard
  143.   format. Use the help command of the FIBS backgammon server to find out
  144.   how this is done.
  145.   
  146.   A numeric argument selects the boardstyle used to display the board.
  147.   The default boardstyle is 4, which uses the smallest board window.
  148.  
  149.   The flag "board" defaults to OFF.
  150.  
  151.   See: flags
  152.  
  153. @@@@borg
  154.  
  155.   Format:
  156.  
  157.   /BORG [OFF|ON]
  158.   ___________
  159.  
  160.   Sets the flag "borg".  This flag controls whether trigger bodies will
  161.   be executed.  This flag does not control whether trigger attributes
  162.   (gag, underline, reverse, flash, dim, hilite, bell) will work; the
  163.   separate flags "gag" and "hilite" control those.
  164.  
  165.   The flag "borg" defaults to OFF.
  166.  
  167.   See: triggers, flags
  168.  
  169. @@@@cat
  170.  
  171.   Format:
  172.  
  173.   /CAT [%]
  174.   ___________
  175.  
  176.   Concatenates all following lines until a line containing a single
  177.   "." is reached.  If the argument "%" is given, a "%\" sequence is
  178.   appended to each line.
  179.  
  180.   Intermediate lines in the concatenation cannot be recalled with /dokey
  181.   RECALLB (although the line containing the /cat call can be) and the
  182.   entire line will be added to the command history buffer as a whole.
  183.  
  184.   Example:
  185.  
  186.   /cat %
  187.   :foo
  188.   :bar
  189.   :baz
  190.   .
  191.  
  192.   This produces:
  193.   :foo%\:bar%\:baz
  194.  
  195.   If the "sub" flag is set on, this will expand to three lines ":foo",
  196.   ":bar" and ":baz" and be sent to the socket.
  197.  
  198.   See also: general, history, SUB
  199.  
  200. @@@@cleardone
  201.  
  202.   Format:
  203.  
  204.   /CLEARDONE [OFF|ON]
  205.   ___________
  206.  
  207.   Sets the flag "cleardone".  This flag controls whether Fugue will
  208.   clear the input window when return is pressed; otherwise, it will
  209.   drop to the next line in the input window, scrolling or clearing the
  210.   window (see the "clearfull" flag) if necessary.
  211.  
  212.   The flag "cleardone" applies only to visual mode.
  213.   The flag "cleardone" defaults to OFF.
  214.  
  215.   See: general, flags, CLEARFULL
  216.  
  217. @@@@clearfull
  218.  
  219.   Format:
  220.  
  221.   /CLEARFULL [OFF|ON]
  222.   ___________
  223.  
  224.   Sets the flag "clearfull".  This flag controls whether Fugue will
  225.   clear the input window upon reaching the bottom instead of scrolling
  226.   it. Fugue will always clear the input window if your terminal does
  227.   not have the capability to set the scroll area.
  228.  
  229.   The flag "clearfull" applies only to visual mode.
  230.   The flag "clearfull" applies only to terminals with the ability to
  231.    set the scroll area.
  232.   The flag "clearfull" defaults to OFF.
  233.  
  234.   See: general, flags
  235.  
  236. @@@@dc
  237.  
  238.   Format:
  239.  
  240.   /DC [<world>|-ALL]
  241.   ___________
  242.  
  243.   Disconnects from the named world, or the current world if no world is
  244.   given, or all worlds if "-all" is given.  If the flag "quitdone" is
  245.   on, and /dc would cause TF to be unconnected to any socket, this will
  246.   also cause TF to exit.
  247.  
  248.   See: sockets, QUITDONE
  249.  
  250. @@@@def
  251.  
  252.   Format:
  253.  
  254.   /DEF [-n<shots>] [-p<pri>] [-c<chance>] [-t<pattern>] [-w<world>]
  255.        [-h"<event> [<pattern>]"] [-b<bind>] [-a[ngGurfdhb]] [-iI]
  256.        [<name>] [= <body>]
  257.   ___________
  258.  
  259.   Defines a macro with an optional trigger and hook associated with
  260.   it.  The meanings of the options are:
  261.  
  262.     -n<shots>     The macro is a multi-shot, that is, it will be deleted
  263.                   after it is triggered or hooked <shots> times.  A value
  264.                   of 0 makes the macro permanent.  Default: 0.
  265.  
  266.     -p<pri>       Sets the priority of the macro's trigger or hook
  267.                   to <pri>.  Default: 1.
  268.  
  269.     -c<chance>    Sets the percent probability of a trigger execution.
  270.                   Default: 100%.
  271.  
  272.     -t<pattern>   Defines a trigger pattern which will cause the macro
  273.                   to be called.  <pattern> may be enclosed in double
  274.                   quotes ("); if so, quotes within the pattern must be
  275.                   escaped with a '\'.  Default: no trigger.
  276.  
  277.     -w<world>     If the macro has a <trigger>, it can only be matched
  278.                   by text from <world>.  Default: any world.
  279.  
  280.     -h"<event> [<pattern>]"
  281.                   Specifies that the macro will be called automatically
  282.                   whenever <event> occurs and it's arguments match
  283.                   <pattern>.  <event> may be a single event name or a
  284.                   list separated by '|'.  If <pattern> is omitted, it
  285.                   will default to "*", and the '"' may also be
  286.                   omitted.  Default: no hook.
  287.  
  288.     -b<bind>      The macro will be called when the sequence <bind>
  289.                   is entered at the keyboard.  Default: no binding.
  290.  
  291.     -a[ngGurfdhb] Set attribute(s) (normal, gag, norecord, underline,
  292.                   reverse, flash, dim, hilite, bell) used to display
  293.                   text matched by the trigger or to display the default
  294.                   message of a hook.  Default: normal.
  295.  
  296.     -i            Marks the macro as "invisible".  Invisible macros
  297.     -I            are not processed by /list, /save, or /purge unless
  298.                   forced.  Default: not invisible.
  299.  
  300.     -1            Defines a one-shot.  Equivalent to "-n1".
  301.  
  302.     <name>        The name of the macro.  Default: no name.  Names
  303.                   should begin with a letter, and contain letters,
  304.                   numbers, or '_' characters.  This is not enforced,
  305.                   but other characters (especially '$', '/', and '%')
  306.                   may cause unwanted interpretations during expansion.
  307.  
  308.     = <body>      Text to be executed when macro is called.  Default:
  309.                   no body.
  310.  
  311.  
  312.   Example:
  313.  
  314.   /def -p2 -c75 -t"* has arrived." -ah greet = :greets %1
  315.  
  316.   This will create a macro that executes ":greets %1" from the command
  317.   line, and associates with it a trigger of priority 2 and probability
  318.   75% that goes off upon reception of text matching the pattern "* has
  319.   arrived." from the socket, and displays the text hilited.
  320.  
  321.   /def is sufficient to perform all the functions of the /trig, /trigp,
  322.   /trigc, /trigpc, /gag, /hilite, /hook, and /bind commands.
  323.  
  324.   See: macros, triggers, patterns, hooks, expansion, attributes, UNDEF,
  325.        UNDEFN, UNDEFT, UNTRIG, UNHOOK, BIND, PURGE, LIST, SAVE, LOAD
  326.  
  327. @@@@dokey
  328.  
  329.   Format:
  330.  
  331.   /DOKEY <mnemonic>
  332.   ___________
  333.  
  334.   Executes the function of the edit key <mnemonic>.  Most of the edit
  335.   key functions are not meaningful when the /dokey command is executed
  336.   from the regular command line (some, such as RECALLB, RECALLF,
  337.   SOCKETB, SOCKETF and INSERT, are), but these are useful in
  338.   conjunction with the /bind command for creating multiple key
  339.   sequences for the same function.
  340.  
  341.   Default sequence        Mnemonic        Function
  342.   ___________________________________________________________________
  343.   (shell setting)         BSPC            Backspace
  344.   (shell setting)         BWORD           Delete word previous
  345.   (shell setting)         DLINE           Delete line
  346.   (shell setting)         REFRESH         Refresh line
  347.   ^P                      RECALLB         Recall previous line
  348.   ^N                      RECALLF         Recall next line
  349.   ^[b                     SOCKETB         Previous socket
  350.   ^[f                     SOCKETF         Next socket
  351.   ^D                      DCH             Delete character
  352.   ^L                      REDRAW          Redraw screen
  353.   ^[[a                    UP              Cursor up
  354.   ^[[b                    DOWN            Cursor down
  355.   ^[[c                    RIGHT           Cursor right
  356.   ^[[d                    LEFT            Cursor left
  357.   ^A                      HOME            Beginning of line
  358.   ^E                      END             End of line
  359.   ^B                      WLEFT           Move left word
  360.   ^F                      WRIGHT          Move right word
  361.   ^K                      DEOL            Delete to end of line
  362.   ^[v                     INSERT          Toggle insert mode
  363.   ^I                      PAGE            Scroll 1 page (/more)
  364.   ^[h                     HPAGE           Scroll half page (/more)
  365.   ^[l                     LINE            Scroll 1 line (/more)
  366.   ^[j                     FLUSH           Jump to end of /more buffer
  367.  
  368.   The default sequences for BSPC, BWORD, DLINE, and REFRESH are those
  369.   used by your shell. 
  370.  
  371.   Warning:  TF will become essensially useless if there is no key bound
  372.   to /dokey NEWLINE.
  373.  
  374.   Example:
  375.  
  376.   /bind ^? = /dokey BSPC
  377.   /bind ^H = /dokey BSPC
  378.  
  379.   Both ^H and DEL could then be used to do backspacing.
  380.  
  381.   See: general, sockets, history, BIND, DOKEY, MORE
  382.  
  383. @@@@echo
  384.  
  385.   Format:
  386.  
  387.   /ECHO [-a[ngGurfdhb]] [-w<world>] <text>
  388.   ___________
  389.  
  390.   Locally echoes <text> to the screen or output window.  Attributes may
  391.   be given with the -a flag.  If -w<world> is given, the text will be
  392.   stored in the history of <world>; if it is not the current world,
  393.   <text> will not be displayed until <world> is made current.
  394.  
  395.   See: attributes, worlds
  396.  
  397. @@@@edit
  398.  
  399.   Format:
  400.  
  401.   /EDIT [-n<shots>] [-p<priority>] [-c<chance>] [-t<pattern>] [-w<world>]
  402.        [-h<hook>] [-a[ngGurfdhb]] [-iI] [<name>] [= <body>]
  403.   ___________
  404.  
  405.   Edits a currently existing macro or the trigger associated with a
  406.   macro.  The name of the macro must be specified and cannot be
  407.   changed, with the following two exceptions:
  408.  
  409.   1. The macro name can be specified as "#<num>" where <num> is the
  410.   number of the macro instead of the name.  A macro number can be
  411.   determined by listing the macro with /list.
  412.  
  413.   2. The macro name can be specified as "$<pattern>" where <pattern>
  414.   is the trigger pattern.  You may still change the pattern if this is
  415.   used to locate the macro.
  416.  
  417.   In either case, the name cannot be changed.  It is possible to
  418.   create a macro which changes the name of a macro, if it does not
  419.   have any options other than a name and a body:
  420.  
  421.         /def rename = /def %2 = $%1%;/undef %1
  422.  
  423.   How this works is discussed in the help section "expansion".
  424.  
  425.   All unspecified arguments remain as they were before, with the exception
  426.   of -i, which will be cleared if it is not specified.
  427.  
  428.  
  429.   Example:
  430.  
  431.   /def -p2 -c75 -t"* has arrived." -ah greet = :greets %1
  432.   /edit -c0 greet
  433.  
  434.   The second command will modify the probability of the trigger
  435.   associated with the macro "greet" to 0%, effectively turning it off.
  436.  
  437.   See: macros, triggers, patterns, expansion, attributes, DEF, LIST
  438.  
  439. @@@@gag
  440.  
  441.   Format:
  442.  
  443.   /GAG [<pattern> [=<response>]]
  444.   ___________
  445.  
  446.   Sets up a trigger associated with an unnamed macro.  The trigger
  447.   will have the attribute gag, be triggered by <pattern> and execute
  448.   <response> if specified.  The probability is 100%.  The priority is
  449.   determined by the user variable "gpri", set with the /gpri command.
  450.  
  451.   /gag with no arguments sets the flag "gag" to ON.  The flag "gag"
  452.   determines whether the gag attribute on triggers will operate. This
  453.   flag can be set to OFF by "/nogag" with no arguments.
  454.  
  455.   Gagged lines from background worlds will not set the activity flag
  456.   on the status line or call the activity hook.
  457.  
  458.   The flag "gag" defaults to ON.
  459.   Operation of triggers is described in the section "triggers".
  460.  
  461.   See: triggers, patterns, expansion, flags, variables, DEF, NOGAG, GPRI
  462.  
  463. @@@@gpri
  464.  
  465.   Format:
  466.  
  467.   /GPRI [<priority>]
  468.   ___________
  469.  
  470.   Sets the user variable "gpri".  This variable controls the priority
  471.   of all subsequently-set gags.  It will not change the priorities of
  472.   gags already set.
  473.  
  474.   The variable "gpri" defaults to 0.
  475.  
  476.   See: variables, triggers, GAG
  477.  
  478. @@@@grab
  479.  
  480.   Format:
  481.  
  482.   /GRAB <text>
  483.   ___________
  484.  
  485.   This command puts <text> into the input buffer.  It is not really
  486.   useful from the normal command line, but is quite useful when called
  487.   from a macro to redefine macros, or perhaps when bound to a key to
  488.   speed up part of a line (macros allow you to largely do what this
  489.   would allow, however).  Any text already in the input buffer is
  490.   discarded.
  491.  
  492.   Example:
  493.  
  494.   /def reedit = /grab //edit %1 = $%1
  495.  
  496.   How macros like this work is discussed in "expansion".  If you had
  497.   previously done "/def flail = :flails at his keyboard", the command
  498.   "/reedit foobar" would place "/edit foobar = :flails at his keyboard"
  499.   in the input buffer and allow you to edit it using the editing keys.
  500.  
  501.   See: macros, expansion, general, INPUT
  502.  
  503. @@@@help
  504.  
  505.   Format:
  506.  
  507.   /HELP [<topic>]
  508.   ___________
  509.  
  510.   Displays help on the topic specified, or displays a summary of
  511.   available topics if no topic is given.
  512.  
  513.   If a HELPFILE macro is defined, it's body will be used as the name of
  514.   the helpfile; otherwise ~/tf.help will be used.  The helpfile may be
  515.   compressed; see "library".  If the helpfile or the help index is not
  516.   found, /help will not function.
  517.  
  518.   Commands are described with the format "/COMMAND arguments".  Words
  519.   in all caps must be spelled exactly as shown.  Arguments in <> can be
  520.   given any value.  Arguments in [] may be omitted.  The character | means
  521.   "or".  For example, "[OFF|ON]" means you may type "off", "on", or nothing.
  522.  
  523.   Many commands take options to modify their behavior, following these rules:
  524.       All options must be preceded by '-'.
  525.       Options may be grouped after a single '-'.
  526.       There must be no space between an option and its argument.
  527.       String option-arguments may be delmited by a space or double quotes.
  528.         Delimiters within the string must be preceeded by '\'.
  529.       All options must precede operands.
  530.       A '-' by itself may be used to mark the end of the options.
  531.  
  532. @@@@hilite
  533.  
  534.   Format:
  535.  
  536.   /HILITE [<pattern> [= <response>]]
  537.   ___________
  538.  
  539.   Sets up a trigger associated with an unnamed macro.  The trigger
  540.   will have the attribute hilite, be triggered by <pattern> and execute
  541.   <response> if specified.  The probability is 100%. The priority is
  542.   determined by the user variable "hpri", set with the /hpri command.
  543.  
  544.   /hilite with no arguments sets the flag "hilite" to ON.  The flag
  545.   "hilite" determines whether the underline, reverse, flash, dim, and
  546.   hilite attributes on triggers will operate.  This flag can be set to
  547.   OFF by "/nohilite" with no arguments.
  548.  
  549.   The standard library also defines /hilite_page and /hilite_whisper.
  550.  
  551.   The flag "hilite" defaults to ON.
  552.  
  553.   See: triggers, patterns, expansion, flags, variables, DEF, NOHILITE, HPRI
  554.  
  555. @@@@hook
  556.  
  557.   Format:
  558.  
  559.   /HOOK <event> [<pattern>] [= <body>]
  560.   /HOOK [OFF|ON]
  561.   ___________
  562.  
  563.   Sets up an unnamed macro with an associated hook.  The macro has
  564.   normal attribute and executes <body> when the event occurs with the
  565.   arguments that match <pattern>.  <event> may be a single event or a
  566.   list of events separated by '|'.  If omitted, <pattern> will default
  567.   to "*".
  568.  
  569.   /hook with no arguments displays the state of the "hook" flag.  /hook
  570.   with an argument of ON or OFF sets the "hook" flag, which determines
  571.   if hooks will execute their associated macros.
  572.  
  573.   Note that defining a hook will not replace an existing hook on the
  574.   same event, even with /redef on.  (This is new in version 2.1).
  575.  
  576.   See the section "hooks" for details on hook operation, a list of
  577.   event names, and examples.
  578.  
  579.   See: hooks, macros, expansion, flags, DEF, UNHOOK
  580.  
  581. @@@@hpri
  582.  
  583.   Format:
  584.  
  585.   /HPRI [<priority>]
  586.   ___________
  587.  
  588.   Sets the user variable "hpri".  This variable controls the priority
  589.   of all subsequently-set hilites.  It will not change the priorities
  590.   of hilites already set.
  591.  
  592.   The variable "hpri" defaults to 0.
  593.  
  594.   See: variables, triggers, HILITE
  595.  
  596. @@@@input
  597.  
  598.   Format:
  599.  
  600.   /INPUT <text>
  601.   ___________
  602.  
  603.   Enters <text> into the input buffer as if it had been typed at the
  604.   keyboard, without deleting the current contents of the input buffer.
  605.  
  606.   /Input is perhaps most useful in combination with /bind, to create
  607.   short key sequences that expand to longer text.  For example, if you
  608.   have this binding:
  609.  
  610.     /bind ~oj = /input OliverJones
  611.  
  612.   and then type "page ~oj = Hello" at the keyboard, it will appear in
  613.   the input window as "page OliverJones = Hello".
  614.  
  615.   See: BIND, GRAB
  616.  
  617. @@@@isize
  618.  
  619.   Format:
  620.  
  621.   /ISIZE [<size>]
  622.   ___________
  623.  
  624.   Sets the user variable "isize".  This variable determines the size
  625.   of the input window in visual mode.  It may be set before or after
  626.   visual mode is entered.  If visual mode is on, the screen will be
  627.   redrawn.
  628.  
  629.   The variable "isize" applies only to visual mode.
  630.   The variable "isize" defaults to 3.
  631.  
  632.   See: flags, variables, general, VISUAL
  633.  
  634. @@@@kecho
  635.  
  636.   Format:
  637.  
  638.   /KECHO [OFF|ON|<prefix>]
  639.   ___________
  640.  
  641.   Sets the flag "kecho" and optionally the user variable "kprefix".
  642.   The flag "kecho" determines whether keyboard text will be locally
  643.   echoed to the screen before processing.  The user variable "kprefix"
  644.   controls what this text will be prefixed with.
  645.  
  646.   The flag "kecho" defaults to OFF.
  647.   The variable "kprefix" defaults to nothing.
  648.  
  649.   See: flags, variables, general
  650.  
  651. @@@@kill
  652.  
  653.   Format:
  654.  
  655.   /KILL <pid>
  656.   ___________
  657.  
  658.   Terminates a tinyprocess (/quote or /repeat command) denoted by <pid>.
  659.   The pid of a tinyprocess can be determined with the /ps command or a
  660.   PROCESS hook.
  661.  
  662.   The operation of tinyprocesses is described in the section "processes".
  663.  
  664.   See: processes, QUOTE, REPEAT, PS
  665.  
  666. @@@@lcd
  667.  
  668.   Format:
  669.  
  670.   /LCD [newdir]
  671.   ___________
  672.  
  673.   Changes to a new local directory, or displays the current directory.
  674.   Directory display is not supported on some systems.
  675.  
  676. @@@@listbind
  677. @@@@listdef
  678. @@@@listgag
  679. @@@@listhilite
  680. @@@@listhook
  681. @@@@listtrig
  682. @@@@list
  683.  
  684.   Format:
  685.  
  686.   /LIST [-s] [-n<shots>] [-p<pri>] [-c<chance>] [-t<pattern>] [-w<world>]
  687.         [-h<hook>] [-b<bind>] [-a[ngGurfdhb]] [-iI] [<name>] [= <body>]
  688.   ___________
  689.  
  690.   Lists macros having all the specified options.  If "-s" is specified
  691.   as the first option, macros will be listed in a short format.  Other
  692.   options are as in /def except as noted below; see DEF for a full
  693.   explanation.  Omitted options are "don't care", and will not be used
  694.   to determine if a macro is listed.  Thus, with no arguments, /list
  695.   will list all macros.
  696.  
  697.   The "-t" flag with no <pattern> specifies macros with any trigger.
  698.   The "-t-" flag specifies macros without triggers.
  699.  
  700.   The "-h" flag with no <hook> specifies macros with any hook.
  701.   The "-h-" flag specifies macros without hooks.
  702.  
  703.   The "-b" flag with no <bind> specifies macros with any binding.
  704.   The "-b-" flag specifies macros without bindings.
  705.  
  706.   The "-a" flag can be followed by any combination of 'n', 'g', 'G' 'u',
  707.   'r', 'f', 'd', 'h', or 'b'.  The default is to display macros with
  708.   any attributes.
  709.  
  710.   The "-i" flag will also list invisible macros, normally not listed.
  711.   The "-I" flag will list ONLY invisible macros.
  712.  
  713.   A "= <body>" specifies macros whose body match the pattern of <body>.
  714.   If <body> is empty, macros without a body are selected.
  715.  
  716.   Example:  /list -n0 -t -aurfdh foo* =
  717.   will list all macros whose names match "foo*"; have a trigger; are
  718.   not multi-shots; have any of the underline, reverse, flash, dim, or
  719.   hilite attributes; and have an empty body.
  720.  
  721.   See: macros, triggers, patterns, attributes, DEF
  722.  
  723. @@@@listsockets
  724.  
  725.   Format:
  726.  
  727.   /LISTSOCKETS
  728.   ___________
  729.  
  730.   Lists the sockets Fugue is currently connected to, and displays the
  731.   name of the socket Fugue is currently displaying.  For other sockets,
  732.   it will display the state of the socket as "active" (ungagged text
  733.   has been received but not yet displayed), "idle" (not active), "dead"
  734.   (the socket was closed, but there is undisplayed activity), "pending"
  735.   (a connection to the socket was attempted but has not yet been
  736.   established), or "defunct" (a pending socket that was closed with
  737.   /dc but still has a child CONNECT process).
  738.  
  739.   See: sockets, BACKGROUND, WORLD
  740.  
  741. @@@@listworlds
  742.  
  743.   Format:
  744.  
  745.   /LISTWORLDS [-c] [<pattern>]
  746.   ___________
  747.  
  748.   Lists the worlds Fugue knows about, and also displays the current
  749.   default character name, and if the -c flag is present, the password.
  750.  
  751.   See: worlds, patterns
  752.  
  753. @@@@loadbind
  754. @@@@loaddef
  755. @@@@loadgag
  756. @@@@loadhilite
  757. @@@@loadhook
  758. @@@@loadtrig
  759. @@@@load
  760.  
  761.   Format:
  762.  
  763.   /LOAD <file>
  764.   ___________
  765.  
  766.   Loads commands from <file>.  The file may contain any legal TinyFugue
  767.   commands, and may be compressed (see "library").  Blank lines and
  768.   lines beginning with ';' are ignored.  Any leading whitespace on a
  769.   line is stripped.  Lines ending in '\' will be joined with the next
  770.   line.  A '%' preceding a '\' eliminates its special meaning.
  771.  
  772.   The standard macro library also defines the commands /loaddef,
  773.   /loadbind, /loadhilite, /loadgag, /loadtrig, and /loadhook.
  774.  
  775.   See: macros, library, DEF, SAVE
  776.  
  777. @@@@log
  778.  
  779.   Format:
  780.  
  781.   /LOG [-w[<world>]] [-lig] [OFF|ON|<file>]
  782.   ___________
  783.  
  784.   Enables or disables logging to <file> if specified, otherwise to the
  785.   file named in the body of the LOGFILE macro.
  786.  
  787.   Options:
  788.     -w<world>   Log output from <world> only.
  789.     -w          Log output from the current foreground world.
  790.     -l          Log local output (output generated by TF).
  791.     -i          Log keyboard input.
  792.     -g          Log global output (all worlds and local TF output).
  793.  
  794.   If none of the -ligw options are given, -g is assumed.  If more than
  795.   one is given, only the last one takes effect.
  796.  
  797.   It is possible to have multiple log files open simultaneously.  It is
  798.   also possible to have several types of output go to the same log
  799.   file, by using several /log commands.  For example,
  800.  
  801.     /log -g
  802.     /log -wtt tt.log
  803.     /log -i tt.log
  804.  
  805.   will send input from the keyboard and output from the world TT to the
  806.   file "tt.log", and also send all (global) output to the file named by
  807.   the LOGFILE macro.
  808.  
  809.   The functions of the /logme command in older versions of TF can be
  810.   performed with /log -i.
  811.  
  812.   Logging is disabled by default.
  813.  
  814.   See: flags
  815.  
  816. @@@@login
  817.  
  818.   Format:
  819.  
  820.   /LOGIN [OFF|ON]
  821.   ___________
  822.  
  823.   Sets the flag "login".  This flag determines whether Fugue will call
  824.   the LOGIN hook upon connecting to a world.
  825.  
  826.   The standard library defines a default LOGIN hook in TinyMUD format,
  827.   "connect <name> <password>".  You may define other LOGIN hooks, with
  828.   higher priority to override the default, to use your own format.  See
  829.   "hooks" for an example.
  830.  
  831.   The flag "login" defaults to ON.
  832.  
  833.   The "login" flag can be suppressed temporarily at startup with the "-l"
  834.   option, or when manually connecting to a world with "/world -<world>".
  835.  
  836.   See: worlds, flags, variables, WORLD
  837.  
  838. @@@@logme
  839.   Obsolete.  See "log".
  840.  
  841. @@@@lp
  842.  
  843.   Format:
  844.  
  845.   /LP [OFF|ON]
  846.   ___________
  847.  
  848.   Sets the flag "lp".  This flag determines whether partial lines from
  849.   a MUD will be displayed.  This is useful for LP-MUDs.
  850.  
  851.   The flag "lp" defaults to OFF.
  852.  
  853.   See "hooks" for some useful LP-MUD examples.
  854.  
  855.   See: flags, LPQUOTE
  856.  
  857. @@@@lpquote
  858.  
  859.   Format:
  860.  
  861.   /LPQUOTE [OFF|ON]
  862.   ___________
  863.  
  864.   Sets the flag "lpquote".  This flag determines whether the /quote
  865.   and /repeat commands will not operate on a timed basis but instead
  866.   wait for a '*^H' prompt from the MUD.  This is useful for LP-MUDs.
  867.  
  868.   The flag "lpquote" defaults to OFF.
  869.  
  870.   See: flags (lp), QUOTE, REPEAT
  871.  
  872. @@@@mecho
  873.  
  874.   Format:
  875.  
  876.   /MECHO [OFF|ON|<prefix>]
  877.   ___________
  878.  
  879.   Sets the flag "mecho" and the user variable "mprefix".  The flag
  880.   "mecho" determines whether expanded macro text will be echoed to the
  881.   screen before being sent through the socket.  The variable "mprefix"
  882.   is the prefix for this text when echoed to the screen.
  883.  
  884.   Text is prefixed and echoed whenever:
  885.  
  886.   (1) A complete line of socket text is expanded and sent
  887.   (2) A command is executed inside a macro
  888.   (3) A macro body substitution is performed inside a macro
  889.  
  890.   In the latter two cases, an indication of what command is being
  891.   executed or what substitution is being made is given.
  892.  
  893.   The flag "mecho" defaults to OFF.
  894.   The variable "mprefix" defaults to a null string.
  895.  
  896.   See: flags, variables, macros, expansion
  897.  
  898. @@@@more
  899.  
  900.   Format:
  901.  
  902.   /MORE [OFF|ON]
  903.   ___________
  904.  
  905.   Sets the flag "more".  This flag determines whether the pager will
  906.   work in TinyFugue.  The pager will prompt you with "--More--" when a
  907.   screenful of text is received from the MUD between input lines.
  908.   Output will be suspended, but TF will continue to process incoming
  909.   text and triggers, run processes, and allow you to continue typing.
  910.   Typing TAB (^I) at the prompt will scroll a full screen of text;
  911.   [ESC]h will scroll one-half screen; [ESC]l will scroll one line; and
  912.   [ESC]j will jump to the end of the buffer (text will still be stored
  913.   in history, however, so you can /recall it).  The pager keys may be
  914.   rebound using /bind.
  915.  
  916.   The flag "more" defaults to OFF.
  917.  
  918.   See: flags, general
  919.  
  920. @@@@nogag
  921.  
  922.   Format:
  923.  
  924.   /NOGAG [<pattern>]
  925.   ___________
  926.  
  927.   Eliminates a macro that is triggered by <pattern> and has the gag
  928.   attribute.  /nogag with no arguments turns off the flag "gag",
  929.   disabling all gag attributes.
  930.  
  931.   The flag "gag" defaults to ON.
  932.  
  933.   See: flags, triggers, GAG
  934.  
  935. @@@@nohilite
  936.  
  937.   Format:
  938.  
  939.   /NOHILITE [<pattern>]
  940.   ___________
  941.  
  942.   Eliminates a macro that is triggered by <pattern> and has the hilite
  943.   attribute.  /nohilite with no arguments turns off the flag "hilite",
  944.   disabling all hilite attributes.
  945.  
  946.   The flag "hilite" defaults to ON.
  947.  
  948.   See: flags, triggers, HILITE
  949.  
  950. @@@@ps
  951.  
  952.   Format:
  953.  
  954.   /PS
  955.   ___________
  956.  
  957.   Displays currently-running processes and their pids.
  958.  
  959.   See: processes
  960.  
  961. @@@@ptime
  962.  
  963.   Format:
  964.  
  965.   /PTIME [<time>]
  966.   ___________
  967.  
  968.   Sets the user variable "ptime".  This variable determines the number
  969.   of seconds to wait before sending /quote and /repeat text.
  970.  
  971.   The variable "ptime" defaults to 1.
  972.  
  973.   See: variables, processes
  974.  
  975. @@@@purgebind
  976. @@@@purgedef
  977. @@@@purgedeft
  978. @@@@purgegag
  979. @@@@purgehilite
  980. @@@@purgehook
  981. @@@@purgetrig
  982. @@@@purge
  983.  
  984.   Format:
  985.  
  986.   /PURGE [-n<shots>] [-p<pri>] [-c<chance>] [-t<pattern>] [-w<world>]
  987.        [-b<bind>] [-h<hook>] [-a[ngGurfdhb]] [-iI] [<name>] [= <body>]
  988.   ___________
  989.  
  990.   Removes all specified macros.  The macro is specified in the same way
  991.   as in the /list command; see LIST for details.  Invisible macros will
  992.   not be purged unless "-i" is specified.
  993.  
  994.   The standard macro library also defines the commands /purgedef,
  995.   /purgebind, /purgehilite, /purgegag, /purgetrig, /purgdeft, and
  996.   /purgehook.
  997.  
  998.   See: macros, triggers, patterns, attributes, library, DEF, LIST
  999.  
  1000. @@@@purgeworld
  1001.  
  1002.   Format:
  1003.  
  1004.   /PURGEWORLD <pattern>
  1005.   ___________
  1006.  
  1007.   Purges all world entries matching <pattern>.
  1008.  
  1009.   See: worlds, patterns
  1010.  
  1011. @@@@qecho
  1012.  
  1013.   Format:
  1014.  
  1015.   /QECHO [OFF|ON|<prefix>]
  1016.   ___________
  1017.  
  1018.   Sets the flag "qecho" and the user variable "qprefix".  The flag
  1019.   "qecho" determines whether quoted lines will be echoed to the screen
  1020.   before being sent through the socket.  The variable "qprefix" is the
  1021.   prefix for this text when echoed to the screen.
  1022.  
  1023.   The flag "qecho" defaults to OFF.
  1024.   The variable "qprefix" defaults to a null string.
  1025.  
  1026.   See: flags, variables, processes, QUOTE
  1027.  
  1028. @@@@quiet
  1029.  
  1030.   Format:
  1031.  
  1032.   /QUIET [OFF|ON]
  1033.   ___________
  1034.  
  1035.   Sets the flag "quiet".  This flag determines whether TinyFugue will
  1036.   suppress the output from a MUD that occurs when you connect to it.
  1037.   Fugue will stop suppressing text after 25 lines or when it finds a
  1038.   line describing the WHO action which often signifies the end of MUD
  1039.   introduction text.
  1040.  
  1041.   The /quiet command does not function correctly on many MUDs which
  1042.   don't have the expected line in the introductory text.
  1043.  
  1044.   The flag "quiet" defaults to OFF.
  1045.  
  1046.   See: flags
  1047.  
  1048. @@@@quit
  1049.  
  1050.   Format:
  1051.  
  1052.   /QUIT
  1053.   ___________
  1054.  
  1055.   Exits from Fugue.
  1056.  
  1057. @@@@quitdone
  1058.  
  1059.   Format:
  1060.  
  1061.   /QUITDONE [OFF|ON]
  1062.   ___________
  1063.  
  1064.   Sets the flag "quitdone".  This flag determines whether Fugue will
  1065.   exit when disconnected from the last socket it is connected to.
  1066.  
  1067.   The flag "quitdone" defaults to OFF.
  1068.  
  1069.   See: flags
  1070.  
  1071. @@@@quote
  1072.  
  1073.   Format:
  1074.  
  1075.   /QUOTE [-w[<world>] [-<time>] [<prefix>] '"<file>"[<suffix>]
  1076.   /QUOTE [-w[<world>] [-<time>] [<prefix>] !"<shell command>"[<suffix>]
  1077.   /QUOTE [-w[<world>] [-<time>] [<prefix>] #"<history command>"[<suffix>]
  1078.   /QUOTE [-w[<world>] [-<time>] [<prefix>] `"<TF command>"[<suffix>]
  1079.   ___________
  1080.  
  1081.   Quotes a file, shell command, history, or TF command.  This will be
  1082.   done at a rate described in the section "processes".  Each line will
  1083.   be preceded by <prefix> and followed by <suffix> if given.
  1084.  
  1085.   If <time> is specified, it is used as the value in seconds for the
  1086.   delay between each line.  Otherwise, the user variable "ptime" is
  1087.   used.
  1088.  
  1089.   Socket commands generated by /quote will be send to the foreground
  1090.   world by default.  If -w<world> is given, commands will be sent to
  1091.   that world instead .  If -w is given, commands will be sent to the
  1092.   world that was current when the /repeat was started.
  1093.  
  1094.   A single quote (') signifies that a file is to be quoted.
  1095.  
  1096.   A bang (!) signifies that a shell command is to be executed and the
  1097.   output (standard output and standard error) quoted.
  1098.  
  1099.   A pound sign (#) signifies that a /recall command is to be executed
  1100.   and the output quoted (see "recall" for the exact syntax).
  1101.  
  1102.   A backquote (`) signifies that a TF command is to be executed and the
  1103.   output quoted.
  1104.  
  1105.   If <prefix> and/or <suffix> are specified, they are prepended and
  1106.   appended to each line generated by the /quote.  If <suffix> is
  1107.   omitted, the double quotes around the <file> or <command> may be
  1108.   omitted.
  1109.  
  1110.   Quotes are done by means of a tinyprocess; i.e. they run concurrently
  1111.   with normal input and output.
  1112.  
  1113.   Quoted text never has newline or in-line macro substitution done
  1114.   (/repeat'ed text does, however).
  1115.  
  1116.   ___________
  1117.  
  1118.   Examples:
  1119.  
  1120.   (1) /quote -1 :reads about '"/usr/dict/words" in the dictionary.
  1121.  
  1122.   This sends off lines like:
  1123.        :reads about aardvark in the dictionary.
  1124.        :reads about aardvore in the dictionary.
  1125.   with one-second delays between lines.
  1126.  
  1127.   (2) /quote -0 /echo !ps -gux
  1128.  
  1129.   This displays the output of the system command "ps -gux" by echoing
  1130.   it locally, with no delays.
  1131.  
  1132.   (3) /quote -0 :remembers this: #-wTT 212-212
  1133.  
  1134.   This sends off this one line immediately:
  1135.  
  1136.        :remembers this: [The text of line #212 in world TT's recall buffer]
  1137.  
  1138.   (4) /quote :is using `/version
  1139.  
  1140.   will tell everybody in the room what version of TF you're running.
  1141.  
  1142.   ___________
  1143.  
  1144.   See: processes, history, LPQUOTE, PTIME, RECALL
  1145.  
  1146. @@@@recall
  1147.  
  1148.   Format:
  1149.  
  1150.   /RECALL [-w<world>] [-lig] [-a[ngurfdhb]] [#]<range> [<pattern>]
  1151.   ___________
  1152.  
  1153.   Recalls lines from a history buffer.  If none of the -w, -l, -i, or
  1154.   -g options are given, the recall is from the current world's history;
  1155.   -w<world> recalls from the history of <world>; -l recalls from the
  1156.   local history (TF output); -i recalls from the input history; and -g
  1157.   recalls from the global history (local and all worlds).
  1158.  
  1159.   Lines will be displayed with their original attributes; the
  1160.   switches following "-a" can be used to suppress specific attributes.
  1161.  
  1162.   <range> can be one of the following:
  1163.  
  1164.   1. <number>
  1165.   2. <number1>-<number2>
  1166.   3. -<number>
  1167.   4. <number>-
  1168.  
  1169.   The first format will recall <number> lines backward, so /recall -g 10
  1170.   would recall the last ten lines printed in the output window.
  1171.  
  1172.   The second format uses the line numbers in the history buffer as a
  1173.   range.  "/recall -ag -wTT #12-14" recalls line numbers #12, #13 and #14
  1174.   from the history buffer of world TT, even if they were gagged.
  1175.  
  1176.   The third format recalls a single line, <number> lines backward in the
  1177.   history buffer.  So "/recall - -5" would recall the fifth-most-recent
  1178.   line from the current world.  Note the '-' which marks the end of the
  1179.   options, so that '-5' is interpreted as a range, and not a '5' option.
  1180.  
  1181.   The fourth format recalls a single line, using the line numbers in the
  1182.   history buffer.  "/recall 42-" is equivalent to "/recall 42-42".
  1183.  
  1184.   The optional preceding '#' tells TF to prefix the output with line
  1185.   numbers.  NOTE: When using the /quote command with the '#' option,
  1186.   which quotes the output of the recall command, the '#' that tells
  1187.   /quote to execute a recall command does NOT tell /recall to prefix
  1188.   with line numbers.  You must use an additional # in order to do
  1189.   that.
  1190.  
  1191.   If <pattern> is given, only lines in the given range that match
  1192.   <pattern> will be recalled.
  1193.  
  1194.   See: history, attributes, QUOTE
  1195.  
  1196. @@@@redef
  1197.  
  1198.   Format:
  1199.  
  1200.   /REDEF [OFF|ON]
  1201.   ___________
  1202.  
  1203.   Sets the flag "redef".  This flag determines whether macros, worlds,
  1204.   and keybindings can be redefined without undefining them first.
  1205.  
  1206.   The flag "redef" defaults to OFF.
  1207.  
  1208.   See: flags, macros, ADDWORLD, BIND, DEF, UNDEF, UNWORLD
  1209.  
  1210. @@@@repeat
  1211.  
  1212.   Format:
  1213.  
  1214.   /REPEAT [-w[<world>] [-<time>] <count> <command>
  1215.   ___________
  1216.  
  1217.   Repeats <command>, <count> times.  <command> may be any legal macro
  1218.   body.  This works through a tiny-process, i.e. it runs concurrently
  1219.   with normal input and output.
  1220.  
  1221.   /repeat can be begun with a time argument, which is a value in
  1222.   seconds for the delay between command executions.  Otherwise, the
  1223.   user variable "ptime" is used.
  1224.  
  1225.   Socket commands generated by /repeat will be send to the foreground
  1226.   world by default.  If -w<world> is given, commands will be sent to
  1227.   that world instead.  If -w is given, commands will be sent to the
  1228.   world that was current when the /repeat was started.
  1229.  
  1230.   Since the first run is not done until after the first interval, a
  1231.   useful trick is to use "/repeat -<time> 1 <command>" to delay the
  1232.   execution of a command.
  1233.  
  1234.   See: processes, FLAGS, VARIABLES
  1235.  
  1236. @@@@savebind
  1237. @@@@saveedef
  1238. @@@@saveegag
  1239. @@@@saveehilite
  1240. @@@@saveehook
  1241. @@@@saveetrig
  1242. @@@@save
  1243.  
  1244.   Format:
  1245.  
  1246.   /SAVE <file> [-n<shots>] [-p<pri>] [-c<chance>] [-t<pattern>] [-w<world>]
  1247.         [-h<hook>] [-b<bind>] [-a[ngGurfdhb]] [-iI] [<name>] [= <body>]
  1248.   ___________
  1249.  
  1250.   Saves specified macros to <file>.  The macro is specified in the same
  1251.   way as in the /list command; see LIST for details.  Invisible macros
  1252.   will not be saved unless "-i" is specified.
  1253.  
  1254.   Warning:  if <file> already exists, its original contents will be lost
  1255.   and replaced with the specified macros.
  1256.  
  1257.   The standard macro library also defines the commands /savedef,
  1258.   /savebind, /savehilite, /savegag, /savetrig, and /savehook.
  1259.  
  1260.   See: macros, patterns, attributes, library, DEF, LIST, LOAD
  1261.  
  1262. @@@@saveworld
  1263.  
  1264.   Format:
  1265.  
  1266.   /SAVEWORLD [<file>]
  1267.   ___________
  1268.  
  1269.   Saves world definitions to <file> if specified, otherwise from the file
  1270.   named in the body of the WORLDFILE macro.
  1271.  
  1272.   See: worlds, library, ADDWORLD
  1273.  
  1274. @@@@send
  1275.  
  1276.   Format:
  1277.  
  1278.   /SEND [-W] [-w[<world>]] <text>
  1279.   ___________
  1280.  
  1281.   Sends <text> to <world>.  If "-W" is given, <text> is sent to all
  1282.   connected worlds.  If "-W" and "-w" are omitted, <text> is sent to
  1283.   the current world.  /send does not execute the SEND hook.
  1284.  
  1285. @@@@sh
  1286.  
  1287.   Format:
  1288.  
  1289.   /SH [<command>]
  1290.   ___________
  1291.  
  1292.   Creates a subshell to execute <command>, or an interactive shell. If
  1293.   in visual mode, TF will fix the screen first.
  1294.  
  1295.   If the "shpause" flag is set, Fugue will wait for a keypress before
  1296.   returning.
  1297.  
  1298.   See: SHPAUSE
  1299.  
  1300. @@@@shpause
  1301.  
  1302.   Format:
  1303.  
  1304.   /SHPAUSE [OFF|ON]
  1305.   ___________
  1306.  
  1307.   Sets the flag "shpause".  This flag determines whether Fugue will
  1308.   wait for a keypress before returning from an /sh command.
  1309.  
  1310.   The "shpause" flag defaults to OFF.
  1311.  
  1312.   See: flags
  1313.  
  1314. @@@@sockmload
  1315.  
  1316.   Format:
  1317.  
  1318.   /SOCKMLOAD [OFF|ON]
  1319.   ___________
  1320.  
  1321.   Sets the flag "sockmload".  This flag determines whether Fugue will
  1322.   load world macro files upon moving to a socket with the SOCKETB and
  1323.   SOCKETF keys (normally [ESC]B and [ESC]F; see /dokey), or when the
  1324.   /world command is issued and Fugue is already connected to the world
  1325.   given. When off, TF will only load macro files when it first connects
  1326.   to a world.
  1327.  
  1328.   Note that much of the work of /sockmload can be done with a WORLD
  1329.   hook.
  1330.  
  1331.   The "sockmload" flag defaults to OFF.
  1332.  
  1333.   See: flags, worlds
  1334.  
  1335. @@@@sub
  1336.  
  1337.   Format:
  1338.  
  1339.   /SUB [OFF|ON|FULL]
  1340.   ___________
  1341.  
  1342.   Sets the flag "sub".
  1343.  
  1344.   If the flag "sub" is OFF, all lines except for history substitutions
  1345.   (line beginning with '^') and commands (/) are sent as-is to the
  1346.   socket.
  1347.  
  1348.   If the flag "sub" is ON, the sequences "%\" and "%;" are substituted
  1349.   with newlines, and the sequence "%%" is substituted with "%", and the
  1350.   sequence "\nn" is substituted with the character with decimal ASCII
  1351.   code <nn>.  This does not happen to commands and history substitutions.
  1352.  
  1353.   If the flag "sub" is FULL, text is processed just as if it were the
  1354.   body of a macro (see "expansion") called without any arguments. This
  1355.   allows you to have in-line macros in regular input.
  1356.  
  1357.   The flag "sub" defaults to OFF.
  1358.  
  1359.   See: flags, general, expansion
  1360.  
  1361. @@@@act
  1362. @@@@reply
  1363. @@@@trig
  1364.  
  1365.   Format:
  1366.  
  1367.   /TRIG <pattern> = <body>
  1368.   ___________
  1369.  
  1370.   Sets up an unnamed macro with an associated trigger.  The
  1371.   trigger has normal attribute, priority 1, probability 100%, and
  1372.   executes <body> when triggered.
  1373.  
  1374.   See: triggers, expansion, DEF, TRIGP, TRIGC, TRIGPC, UNTRIG
  1375.  
  1376. @@@@trigc
  1377.  
  1378.   Format:
  1379.  
  1380.   /TRIGC <chance> <pattern> = <body>
  1381.   ___________
  1382.  
  1383.   Sets up an unnamed macro with an associated trigger.  The
  1384.   trigger has normal attribute, priority 1, probability <chance> (in
  1385.   percentage), and executes <body> when triggered.
  1386.  
  1387.   See: triggers, expansion, DEF, TRIG, TRIGP, TRIGPC, UNTRIG
  1388.  
  1389. @@@@trigger
  1390.  
  1391.   Format:
  1392.  
  1393.   /TRIGGER <text>
  1394.   ___________
  1395.  
  1396.   Executes any trigger whose pattern match <text>, just as if <text>
  1397.   had come from a socket.
  1398.  
  1399.   See: triggers
  1400.  
  1401. @@@@trigp
  1402.  
  1403.   Format:
  1404.  
  1405.   /TRIGP <pri> <pattern> = <body>
  1406.   ___________
  1407.  
  1408.   Sets up an unnamed macro with an associated trigger.  The trigger has
  1409.   normal attribute, priority <pri>, probability 100%, and executes
  1410.   <body> when triggered.
  1411.  
  1412.   See: triggers, expansion, DEF, TRIG, TRIGC, TRIGPC, UNTRIG
  1413.  
  1414. @@@@trigpc
  1415.  
  1416.   Format:
  1417.  
  1418.   /TRIGPC <pri> <chance> <pattern> = <body>
  1419.   ___________
  1420.  
  1421.   Sets up an unnamed macro with an associated trigger.  The trigger has
  1422.   normal attribute, priority <pri>, probability <chance>, and executes
  1423.   <body> when triggered.
  1424.  
  1425.   See: triggers, expansion, DEF, TRIG, TRIGP, TRIGC, UNTRIG
  1426.  
  1427. @@@@unbind
  1428.  
  1429.   Format:
  1430.  
  1431.   /UNBIND <sequence>
  1432.   ___________
  1433.  
  1434.   Removes a macro with the keybinding <sequence>.
  1435.  
  1436.   See: general, BIND, PURGE
  1437.  
  1438. @@@@undef
  1439.  
  1440.   Format:
  1441.  
  1442.   /UNDEF <name>
  1443.   ___________
  1444.  
  1445.   Removes a macro with the name <name>.
  1446.  
  1447.   See: macros, DEF, PURGE, UNDEFN, UNDEFT, UNTRIG, UNHOOK
  1448.  
  1449. @@@@undefn
  1450.  
  1451.   Format:
  1452.  
  1453.   /UNDEFN <number> ...
  1454.   ___________
  1455.  
  1456.   Removes macros with the numbers specified in the arguments.  Macro
  1457.   numbers can be determined with /list.
  1458.  
  1459.   See: macros, DEF, LIST, PURGE, UNDEF
  1460.  
  1461. @@@@undeft
  1462.  
  1463.   Format:
  1464.  
  1465.   /UNDEFT <trigger>
  1466.   ___________
  1467.  
  1468.   Removes a macro with a trigger associated with it that is triggered
  1469.   by the pattern <trigger>.
  1470.  
  1471.   See: macros, trigger, DEF, PURGE, UNDEF
  1472.  
  1473. @@@@unhook
  1474.  
  1475.   Format:
  1476.  
  1477.   /UNHOOK <event> [<pattern>]
  1478.   ___________
  1479.  
  1480.   Removes a macro with an associated hook on <event> <pattern>.
  1481.  
  1482.   See: hooks, HOOK, PURGE, UNDEF
  1483.  
  1484. @@@@untrig
  1485.  
  1486.   Format:
  1487.  
  1488.   /UNTRIG <trigger>
  1489.   ___________
  1490.  
  1491.   Removes a macro with an associated trigger that is triggered
  1492.   by the pattern <trigger> and has no attributes.
  1493.  
  1494.   See: triggers, TRIG, PURGE, UNDEF
  1495.  
  1496. @@@@unworld
  1497.  
  1498.   Format:
  1499.  
  1500.   /UNWORLD <name>
  1501.   ___________
  1502.  
  1503.   Removes a world with the name <name>.  The history for world <name>
  1504.   will be deleted, although it may still be in the global history.
  1505.  
  1506.   See: worlds, ADDWORLD
  1507.  
  1508. @@@@version
  1509.  
  1510.   Format:
  1511.  
  1512.   /VERSION
  1513.   ___________
  1514.  
  1515.   Displays the TinyFugue version you're running.
  1516.  
  1517. @@@@visual
  1518.  
  1519.   Format:
  1520.  
  1521.   /VISUAL [OFF|ON]
  1522.   ___________
  1523.  
  1524.   Sets the flag "visual".  This flag determines whether Fugue will run
  1525.   in the visual mode.  In visual mode, the screen is divided into an
  1526.   input window and an output window.
  1527.  
  1528.   See: general
  1529.  
  1530. @@@@watchdog
  1531.  
  1532.   Format:
  1533.  
  1534.   /WATCHDOG [OFF|ON] [<n1> [<n2>]]
  1535.   ___________
  1536.  
  1537.   Sets the flag "watchdog".  This flag determines whether Fugue will
  1538.   watch for identical lines and suppress them.  Fugue looks for lines
  1539.   which have occurred <n1> times out of <n2> (<n1> defaults to 2 and
  1540.   <n2> to 5) and suppress them, so with the default settings Fugue
  1541.   will suppress any lines that have occurred 2 times out of the last 5.
  1542.  
  1543.   The <n1> and <n2> settings for /watchdog are distinct from the <n1>
  1544.   and <n2> settings for /watchname.
  1545.  
  1546.   The flag "watchdog" defaults to OFF.
  1547.  
  1548.   See: flags, WATCHNAME
  1549.  
  1550. @@@@watchname
  1551.  
  1552.   Format:
  1553.  
  1554.   /WATCHNAME [OFF|ON] [<n1> [<n2>]]
  1555.   ___________
  1556.  
  1557.   Sets the flag "watchname".  This flag determines whether Fugue will
  1558.   watch for players displaying lots of output.  Fugue looks for names
  1559.   which have begun the line <n1> times out of <n2> (<n1> defaults to 4
  1560.   and <n2> to 5) and gag that person (with a message), so with the
  1561.   default settings Fugue will gag any person whose name has begun 4 of
  1562.   the last 5 lines.
  1563.  
  1564.   The <n1> and <n2> settings for /watchname are distinct from the <n1>
  1565.   and <n2> settings for /watchdog.
  1566.  
  1567.   The flag "watchname" defaults to OFF.
  1568.  
  1569.   See: flags, WATCHDOG
  1570.  
  1571. @@@@world
  1572.  
  1573.   Format:
  1574.  
  1575.   /WORLD [-]<worldname>
  1576.   /WORLD <host> <port>
  1577.   ___________
  1578.  
  1579.   Attempts to open a socket connected to the world <worldname>.
  1580.   <worldname> must be one of the worlds Fugue knows about through the
  1581.   addworld command or through the config file.  "/world <host> <port>"
  1582.   will define a temporary world with the given address, and try to
  1583.   connect to it.
  1584.  
  1585.   If a dash is specified before the world name, Fugue will connect to
  1586.   the world but will not call the LOGIN hook (that is, try to login
  1587.   automatically), even if the "login" flag is on.
  1588.  
  1589.   If Fugue succeeds in connecting, the following will occur:  the new
  1590.   socket is added to the list of open sockets; the new socket is
  1591.   brought into the foreground (thus calling the WORLD hook); the macro
  1592.   file for the new world is loaded (if one is defined, and the
  1593.   "sockmload" flag is on); the CONNECT hook is called; and the LOGIN
  1594.   hook is called (if the "login" flag is on).
  1595.  
  1596.   If TF was compiled with the CONNECT option and the socket can not be
  1597.   opened immediately, it will continue to try to connect in the
  1598.   background, but remain on the current world and allow you to do other
  1599.   things until the connection succeeds or fails.  Without the CONNECT
  1600.   option, TF will block (freeze) until the connection succeeds.  This
  1601.   usually isn't very long, but can take up to 90 seconds or more if the
  1602.   network is lagged.  Hitting the interrupt or suspend key (usually ^C
  1603.   and ^Z) will kill the connection and break the block.
  1604.  
  1605.   See: worlds, sockets, ADDWORLD
  1606.  
  1607. @@@@wrap
  1608.  
  1609.   Format:
  1610.  
  1611.   /WRAP [<column>|OFF]
  1612.   ___________
  1613.  
  1614.   Sets the user variable "wrap".  This variable determines the column
  1615.   at which words are to be wrapped.  Words that would extend past this
  1616.   column are wrapped to the next line.  If the variable "wrapspace" is
  1617.   not 0, the second through last lines of wrapped text will be indented
  1618.   by that many columns.
  1619.  
  1620.   "/wrap off" sets "wrap" to 0, disabling it.
  1621.  
  1622.   The variable "wrap" defaults to one less than the number of columns
  1623.   on the terminal.
  1624.  
  1625.   If logging and wrap are both on, lines will be wrapped in the log file.
  1626.  
  1627.   See: general, variables, WRAPSPACE
  1628.  
  1629. @@@@wrapspace
  1630.  
  1631.   Format:
  1632.  
  1633.   /WRAPSPACE [<number>|OFF]
  1634.   ___________
  1635.  
  1636.   Sets the user variable "wrapspace".  This variable determines the
  1637.   number of columns to indent the second through last lines of wrapped
  1638.   text.  "/wrapspace off" sets "wrapspace" to 0.
  1639.  
  1640.   If the variable "wrap" is 0, "wrapspace" is ignored.
  1641.  
  1642.   The variable "wrapspace" defaults to 0.
  1643.  
  1644.   See: general, variables, WRAP
  1645.  
  1646. @@@@author
  1647. @@@@tf
  1648. @@@@tinyfugue
  1649.       ______                                                  
  1650.      /     /\  TinyFugue was derived from a client initially  
  1651.     /   __/  \ written by Anton Rang (Tarrant) and later      
  1652.     |  / /\  | modified by Leo Plotkin (Grod).  The first     
  1653.     |  |/    | 'Fugue' modifications were written by Greg     
  1654.     |  X__/  | Hudson (Explorer_Bob).  Fugue is currently     
  1655.     \ /      / maintained by Ken Keys (Hawkeye), who can be   
  1656.      \______/  reached at kkeys@ucsd.edu.                     
  1657.                                                               
  1658.                No copyright 1992, no rights reserved.         
  1659.                Fugue is in the public domain.                 
  1660.  
  1661. @@@@commands
  1662. @@@@index
  1663.  
  1664. Help is available on the following commands:
  1665.  
  1666.   ADDWORLD      GRAB          LP            REDEF         UNDEFN      
  1667.   BACKGROUND    HELP          LPQUOTE      +REPEAT        UNDEFT      
  1668.   BAMF          HILITE        MECHO        +SAVE         +UNHOOK      
  1669.   BEEP          HPRI          MORE          SAVEWORLD     UNTRIG      
  1670.  +BIND         +HOOK          NOGAG         SEND          UNWORLD     
  1671.   BORG          INPUT         NOHILITE      SH            VERSION     
  1672.   CAT           ISIZE         PS            SHPAUSE       VISUAL      
  1673.   CLEARDONE     KECHO         PTIME         SOCKMLOAD     WATCHDOG    
  1674.   CLEARFULL     KILL         +PURGE         SUB           WATCHNAME   
  1675.   DC            LCD           PURGEWORLD    TRIG         +WORLD       
  1676.  +DEF          +LIST          QECHO         TRIGC         WRAP        
  1677.  +DOKEY         LISTSOCKETS   QUIET         TRIGGER       WRAPSPACE   
  1678.   ECHO          LISTWORLDS    QUIT          TRIGP                     
  1679.   EDIT          LOAD          QUITDONE      TRIGPC                    
  1680.   GAG          +LOG          +QUOTE         UNBIND                    
  1681.   GPRI          LOGIN         RECALL        UNDEF         BOARD
  1682.  
  1683.        * new command (version 2.1)           + modified command
  1684.  
  1685. @@@@startup
  1686.  
  1687.   Syntax:
  1688.  
  1689.   tf [-f<file>] [-ln] [<world>]
  1690.   tf [-f<file>] <host> <port>
  1691.   ___________
  1692.  
  1693.   At startup, TF will load commands from the standard macro file and
  1694.   your personal configuration file (~/.tfrc).  Then, TF will try to
  1695.   connect to <world>.  If <world> is omitted, it will try to connect to
  1696.   the first world defined in the configuration file(s).  TF with <host>
  1697.   and <port> arguments will define a temporary world and try to connect
  1698.   to it.  The <host> may be an IP number or regular name format.  If no
  1699.   world is specified, or TF can not connect to the specified world, TF
  1700.   will start up in unconnected mode.
  1701.  
  1702.   Options:
  1703.     -f<file>   Load <file> instead of ~/.tfrc at startup.
  1704.     -l         Disable automatic login.
  1705.     -n         Do not connect to any world automatically at startup.
  1706.  
  1707. @@@@interface
  1708. @@@@mode
  1709. @@@@general
  1710.  
  1711.   TinyFugue has two main interface modes-- visual and non-visual.
  1712.   Visual mode is enabled with the "/visual on" command.
  1713.   See:  VISUAL
  1714.  
  1715.   The visual interface has two windows:  the bottom window is for
  1716.   input, the top for output.  TF will scroll output if your terminal
  1717.   has that capability, otherwise output will wrap bottom-to-top in the
  1718.   output window, clearing two lines ahead.  The /isize, /cleardone, and
  1719.   /clearfull commands can be used to customize the visual display.
  1720.   See:  ISIZE, CLEARDONE, CLEARFULL
  1721.  
  1722.   The non-visual interface uses the full screen.  Input and output are
  1723.   both displayed on the bottom line.  If you are typing and output
  1724.   appears, your input is cleared, the output is displayed, and your
  1725.   input is redisplayed on the last line.  If your input has wrapped
  1726.   around to a second or third line, only the last line will be cleared
  1727.   and redisplayed.
  1728.  
  1729.   In both modes, output text is wrapped around at a right margin of
  1730.   one less than the number of columns on your screen (usually 79)
  1731.   unless wrapping has been turned off.  In addition, if you set the
  1732.   variable "wrapspace" with /wrapspace <n>, all lines after the first
  1733.   in a wrapped piece of output will be indented by <n> spaces.
  1734.   See:  WRAPSPACE
  1735.  
  1736.   TF supports a variety of input functions on special key sequences;
  1737.   see DOKEY to get a list.  These functions, such as editing the text
  1738.   in the input buffer, recalling previous commands, and moving back and
  1739.   forth between socket connections, may be accessed using the special
  1740.   keys defined by the /bind command, or via the /dokey command.
  1741.   See:  BIND, DOKEY
  1742.  
  1743.   In addition to being able to define key sequences to these input
  1744.   functions, TF also allows you to bind your own commands to special
  1745.   keys, using the /bind command.
  1746.   See:  BIND
  1747.  
  1748.   TF can perform various substitutions on your input, depending on the
  1749.   setting of the /sub command.  The /sub command also applies to text
  1750.   sent via the /bind and /repeat commands.
  1751.   See:  SUB
  1752.  
  1753.   TF will treat any input line beginning with a single '/' as a
  1754.   command or macro call (see "macros").  TF will treat any line
  1755.   beginning with a '^' as an input history substitution.
  1756.   See:  history
  1757.  
  1758.   Socket output goes through a number of checks before being
  1759.   displayed.  First, it is added to an output history list.  Then, the
  1760.   text is checked to see if it sets off any trigger patterns.  At the
  1761.   same time, TF checks to see if the text has been gagged or hilited.
  1762.   If the text was not gagged, TF also checks to see if it should be
  1763.   suppressed due to the effects of the /quiet, /watchdog and /watchname
  1764.   commands, and may go so far as to ask if you want to gag someone
  1765.   who's been overactive.
  1766.   See:  triggers, QUIET, WATCHDOG, WATCHNAME
  1767.  
  1768. @@@@variables
  1769.  
  1770.   TinyFugue has a number of runtime options which are set as numbers
  1771.   or strings.  A brief description of these follows. Not listed are
  1772.   the settings for /watchdog and /watchname.  Variable types are S for
  1773.   string and N for number.
  1774.  
  1775.     Variable  Default  Command     Description
  1776.   -------------------------------------------------------------------
  1777.   N isize     3        /isize      Input window size
  1778.   N gpri      0        /gpri       Priority of subsequent /gags
  1779.   N hpri      0        /hpri       Priority of subsequent /hilites
  1780.   S kprefix            /kecho      Prefix for keyboard input echoing
  1781.   S mprefix            /mecho      Prefix for macro expansion echoing
  1782.   N ptime     1        /ptime      Seconds to wait between process runs
  1783.   S qprefix            /qecho      Prefix for /quote echoing
  1784.   N wrap      col - 1  /wrap       Column at which to wrap
  1785.   N wrapspace 0        /wrapspace  Spaces to indent wrapped text
  1786.  
  1787. @@@@flags
  1788.  
  1789.   All flags can be set by "/<flag> [OFF|ON]" with the exception of
  1790.   "hilite" and "gag", which are set with "/hilite", "/nohilite", "/gag"
  1791.   and "/nogag".  The "bamf" and "sub" flags each have a third state
  1792.   which is different from either the ON or OFF settings.
  1793.  
  1794.   Flags are preceded with their default states, 1 being ON and
  1795.   0 being OFF.
  1796.  
  1797.   1 background - Triggering on and recording text from background worlds.
  1798.   0 bamf       - Reconnecting to other MUDs directed by server (portals).
  1799.   0 board      - Use additional window to display backgammon boards.
  1800.   1 borg       - Enables triggers.
  1801.   0 clearfull  - Clear input window rather than scroll when full.
  1802.   0 cleardone  - Clears input window on carriage return.
  1803.   1 gag        - Enable gag attribute in triggers.
  1804.   1 hook       - Enable hooks.
  1805.   1 hilite     - Enable u, r, f, d, h, and b attributes in triggers.
  1806.   0 kecho      - Echoing of keyboard text.
  1807.   1 login      - Enable automatic login.
  1808.   0 lp         - Displays partial lines after a short timeout.
  1809.   0 lpquote    - Waits for "*^H" for /quote and /repeat.
  1810.   0 mecho      - Echoing of macro expansion process.
  1811.   0 more       - Output paging (somewhat like the more filter).
  1812.   0 qecho      - Echoing of quote text.
  1813.   0 quiet      - Suppress MUD login text.
  1814.   0 quitdone   - Quit upon disconnection from last MUD.
  1815.   0 redef      - Allows redefinition of existing macros, worlds, & bindings.
  1816.   0 shpause    - Wait for a keypress after shelling out.
  1817.   0 sockmload  - Load macro files on socket moves.
  1818.   0 sub        - Newline substitution in normal text.
  1819.   0 visual     - Windowing.
  1820.   0 watchdog   - Suppress repeated lines.
  1821.   0 watchname  - Suppress overactive players.
  1822.  
  1823. @@@@worlds
  1824.  
  1825.   Associated commands:
  1826.  
  1827.   /addworld
  1828.   /unworld
  1829.   /purgeworld
  1830.   /world (see also "sockets")
  1831.   /saveworld
  1832.   /listworlds
  1833.  
  1834.   Fugue stores a list of "worlds" that it knows about.  Each world has
  1835.   six strings associated with it:
  1836.  
  1837.     A name (which is simply a label for the world)
  1838.     A character name
  1839.     A character password
  1840.     A host address
  1841.     A host port
  1842.     A macro file (optional).
  1843.  
  1844.   The character name and password are used for the automatic login.
  1845.   Fugue also keeps track of a world with the name "default", which is
  1846.   just a dummy world with a character name and password, and
  1847.   optionally a macro file.  After the default world is defined, worlds
  1848.   which have left out the character and password fields still will
  1849.   attempt to log in (assuming the "login" flag is on).  If the default
  1850.   world has a macro file, worlds without macro files will use the
  1851.   default macro file.
  1852.  
  1853.   The world's macro file is a list of macro definitions to be loaded
  1854.   when a socket is opened connecting to a particular world.  If the
  1855.   flag "sockmload" is on, this file will also be loaded whenever the
  1856.   user switches to a world with the SOCKETB and SOCKETF keys (see
  1857.   "sockets", /dokey).
  1858.  
  1859.   World strings can be accessed using reentrance.  The following macro
  1860.   names will expand to the fields associated with the current world
  1861.   (not the foreground world; see /help sockets):
  1862.   
  1863.     world_name
  1864.     world_character
  1865.     world_password
  1866.     world_host
  1867.     world_port
  1868.     world_mfile
  1869.  
  1870.   This is only useful inside macro expansion, generally.
  1871.  
  1872.   Example:
  1873.   
  1874.   /def curw = :notes that the current world is $world_name$, to which
  1875.    he is connected as $world_character$.
  1876.  
  1877.   This would tell the rest of the world some stuff they probably don't
  1878.   care about, namely the label Fugue has assigned to the current world
  1879.   and the character name it logged on under.
  1880.  
  1881. @@@@sockets
  1882.  
  1883.   Associated commands:
  1884.  
  1885.   /world (see also "worlds")
  1886.   /listsockets
  1887.   /dc
  1888.   /quitdone
  1889.   /background
  1890.   /bamf
  1891.   /login
  1892.   /sockmload
  1893.   Next/previous socket keys (SOCKETF/SOCKETB, default [ESC]F and [ESC]B)
  1894.  
  1895.   TF can connect to multiple sockets.  Only one of these can be
  1896.   displayed at a time; this is called the foreground socket, other
  1897.   sockets are in the background.  Text from background sockets will be
  1898.   triggered and stored in history immediately upon receipt (if the
  1899.   "background" flag is on).  You can connect to a new world in one of
  1900.   three ways:
  1901.  
  1902.   1. By specifying the world name or address on a command line.
  1903.   2. By receiving a portal message from the socket when the "bamf"
  1904.      flag is on.  (See "bamf" for portal details.)
  1905.   3. By using the /world command with a world name.
  1906.  
  1907.   When Fugue connects to a socket, it adds it to the sockets list. You
  1908.   can disconnect from a socket, removing it from the list, with the /dc
  1909.   command.  If you are disconnected (either with /dc or because the
  1910.   socket closes) from the last socket you are connected to and the
  1911.   "quitdone" flag is on, Fugue will exit.
  1912.  
  1913.   You can determine what sockets you are connected to with the
  1914.   /listsockets command.
  1915.  
  1916.   You can move through sockets with the next socket and previous
  1917.   socket keys, which default to [ESC]B and [ESC]F and can be modified
  1918.   with /bind.
  1919.  
  1920.   /world with no arguments connects you to the first defined world.
  1921.   /world'ing to a world which you are already connected to moves
  1922.   you to that socket rather than reconnecting you.
  1923.  
  1924.   Moving to a socket that one is already connected to, either with the
  1925.   Next and previous socket keys or with the /world command, will load a
  1926.   world's macro file if the flag "sockmload" is on (see /sockmload)
  1927.  
  1928.   At all times, there is a foreground socket and a current socket.  The
  1929.   foreground socket is the one that is being displayed.  In visual
  1930.   mode, the name of the foreground world will appear on the status
  1931.   bar.  The current socket is the socket to which commands are sent.
  1932.   The current socket is almost always the same as the foreground
  1933.   socket, except:  1) when a trigger is called from any socket, that
  1934.   socket becomes the current socket for the duration of the trigger
  1935.   execution; 2) when a /repeat or /quote with world redirection runs,
  1936.   that world's socket becomes the current socket for the duration of
  1937.   the process execution.
  1938.  
  1939. @@@@smatch
  1940. @@@@wildcards
  1941. @@@@patterns
  1942.  
  1943.   TF patterns are used in matching triggers and in the /purge* and
  1944.   /list* commands.
  1945.  
  1946.   There are four types of things TF looks for in patterns:
  1947.  
  1948.   1. The '*' character matches any number of characters.
  1949.  
  1950.   2. The '?' character matches any one character.
  1951.  
  1952.   3. Square brackets ([]) can be used to match any one of a sequence
  1953.      of characters.  Ranges can be used.  If '^' is the first
  1954.      character, the pattern will match any character NOT contained.
  1955.  
  1956.   4. Curly braces ({}) can be used to match any one of a sequence of
  1957.      words. They operate by comparing the sequences of words, divided
  1958.      by '|' characters, to a word in the string being matched.  They
  1959.      will only match complete words: "{foo}*" and "{foo}p" do not
  1960.      match "foop" and "*{foo}" and "p{foo}" do not match "pfoo".
  1961.  
  1962.      Patterns containing "{}" can easily be meaningless; a {} pattern
  1963.      will match nothing if it:
  1964.  
  1965.        (a) contains spaces,
  1966.        (b) does not follow a wildcard, space or beginning of string,
  1967.        (c) is not followed by a wildcard, space or end of string.
  1968.  
  1969.   "d*g" matches "dg", "dog", "drug", "debug", "dead slug", etc.
  1970.   "d?g" matches "dog", "dig" and "dug" but not "dg" or "drug".
  1971.   "M[rs]." matches "Mr." and "Ms."
  1972.   "M[a-z]" matches "Ma", "Mb", etc.
  1973.   "[^a-z]" matches anything but an alphabetical character.
  1974.   "{storm|chup*}*" matches "chupchup fehs" and "Storm jiggles".
  1975.   "{storm|chup*}*" does NOT match "stormette jiggles".
  1976.  
  1977.   All pattern matches are case insensitive.
  1978.   All special characters may be escaped with a '\'.
  1979.  
  1980. @@@@macros
  1981.  
  1982.   Associated commands:
  1983.  
  1984.   /def
  1985.   /hook, /unhook
  1986.   /trig, /hilite, /gag
  1987.   /bind, /unbind
  1988.   /undef, /undefn, /undeft
  1989.   /purge
  1990.   /list
  1991.   /load, /save
  1992.  
  1993.   Macros provide a shorthand for executing a commands or sequence of
  1994.   commands, by giving them a simple name.  Macros may be called in four
  1995.   ways:  a command of the form "/<name>", by triggers (see the section
  1996.   on "triggers"), by hooks (see the section on "hooks"), or by
  1997.   keybindings.
  1998.  
  1999.   A macro name is the way of calling it from normal input or from
  2000.   another macro.  You can execute a macro by typing "/<name>".
  2001.  
  2002.   A macro body, or execution text, is the commands and/or text executed
  2003.   when the macro is called.  This text is subject to macro expansion
  2004.   processing (see "expansion").
  2005.  
  2006. @@@@triggers
  2007.  
  2008.   Associated commands:
  2009.  
  2010.   /def
  2011.   /trig, /trigp, /trigc, /trigpc
  2012.   /gag, /hilite
  2013.   /trigger
  2014.   /background
  2015.  
  2016.   Triggers are a method of calling a macro based on text received from
  2017.   the socket.  A macro with a trigger is executed when a line of
  2018.   incoming text matches its trigger pattern (see the section on
  2019.   "patterns").  If the "background" flag is on, text from any world can
  2020.   set off a trigger.  Triggers can also be set off with the command
  2021.   /trigger.
  2022.  
  2023.   Triggers do not exist independently of macros; they are part of them.
  2024.  
  2025.   A trigger has various characteristics:
  2026.  
  2027.   1. It has priority, which affects its attributes and its execution
  2028.      text. Socket text which matches multiple triggers will trigger
  2029.      the macro with the highest-priority trigger associated with it.
  2030.   2. It has probability, which only affects its execution text.  A
  2031.      trigger will only execute its execution text <probability>% of
  2032.      the times it is triggered.
  2033.   3. It has display attributes, which are any combination of normal, gag,
  2034.      underline, reverse, flash, dim, hilite, or bell, which affects the
  2035.      way the text which triggered it is (or is not) displayed.
  2036.   4. It may be a multi-shot trigger, in which case it and the macro it
  2037.      is associated with is removed after executing a specified number
  2038.      of times.
  2039.  
  2040.   For purposes of argument substitution, a macro's arguments are the
  2041.   line which triggered it when it is executed as a result of a
  2042.   trigger.
  2043.  
  2044.   If socket text matches multiple trigger patterns and the trigger
  2045.   priorities are not enough to determine a single trigger (i.e. there
  2046.   are multiple triggers of the highest priority level available), a
  2047.   trigger is randomly selected between them.
  2048.  
  2049.   Trigger execution text means the execution text of the macro it is
  2050.   associated with.
  2051.  
  2052.   The /def command is the only way to specify a multi-shot trigger.  All
  2053.   other commands which define triggers will create permanent triggers.
  2054.  
  2055. @@@@hooks
  2056.  
  2057.   Associated commands:
  2058.  
  2059.   /def
  2060.   /hook
  2061.   /unhook
  2062.  
  2063.   Hooks are a method of calling a macro based on special events within
  2064.   TF, in much the same way as triggers call macros based on socket
  2065.   text.  Hooks allow the user to customize the behavior of TinyFugue
  2066.   and automate special functions.
  2067.  
  2068.   A hook definition has two parts:  an <event> and a <pattern>.  When
  2069.   the event occurs, the macro will be executed if the arguments
  2070.   supplied by the event match the macro's <pattern> (see the section on
  2071.   "patterns").
  2072.  
  2073.   Most hooks have a default message associated with them, which will be
  2074.   displayed with the attributes of the hook if one is defined.  Thus a
  2075.   hook with a gag attribute will suppress the display of the message.
  2076.  
  2077.   Hook may be have multi-shots, in which case it and the macro it is
  2078.   associated with is removed after executing a specified number of
  2079.   times.
  2080.  
  2081.     Event Name  Arguments          Default Message or Action
  2082.     ----------  ---------          -------------------------
  2083.     ACTIVITY    world              '% Activity in world <world>'
  2084.     BACKGROUND  world              '% Trigger in world <world>'
  2085.     BAMF        world              '% Bamfing to <world>'
  2086.     CONFAIL     world, reason      '% Connection to <world> failed: <reason>'
  2087.     CONNECT     world              (successful connection to <world>)
  2088.     DISCONNECT  world              '% Connection to <world> closed.'
  2089.     HISTORY     world              '% <world> history buffer full.'
  2090.     KILL        pid                '% Killing process <pid>'
  2091.     LOAD        file               '% Loading commands from file <file>'
  2092.     LOADFAIL    file, reason       '% <file>: <reason>'
  2093.     LOGIN       world, char, pass  (automatic TinyMUD-style login)
  2094.     MAIL                           '% You have new mail.'
  2095.     MORE                           '--More--' (reverse hilite)
  2096.     PENDING     world              '% Connection to <world> in progress.'
  2097.     PROCESS     pid                '% Starting process <pid>'
  2098.     REDEF       object, name       '% Redefined <object> <name>'
  2099.     RESIZE      columns, lines     (window resized)
  2100.     RESUME                         '% Resuming TinyFugue'
  2101.     SEND        keyboard text      (keyboard text sent to socket)
  2102.     SHELL       type, command      '% Executing <type>: "<command>"'
  2103.     WORLD       world              '---- World <world> ----'
  2104.  
  2105.   Notes:
  2106.  
  2107.     The ACTIVITY hook is called only the first time activity occurs on
  2108.     a given socket.
  2109.  
  2110.     The DISCONNECT hook will be called if you use the MUD's "QUIT"
  2111.     command.  Use /dc to avoid this.
  2112.  
  2113.     The MAIL hook may be called falsely if you read your mail without
  2114.     deleting your mail file.
  2115.  
  2116.     Please do not use CONFAIL to write a simple repeating connect macro.
  2117.     The standard library provides a "smart" version of such a macro,
  2118.     called /retry.  See "library".
  2119.  
  2120.     When connecting to a new sockets, these hooks may be called, in
  2121.     this order:  WORLD, LOAD (if "sockmload" is on), CONNECT, and LOGIN
  2122.     (if "login" is on).
  2123.  
  2124.   Examples:
  2125.  
  2126.     1) /hook activity|disconnect {TT|SM} = /world %1
  2127.  
  2128.        will cause TF to automatically switch to TT or SM if activity
  2129.        occurs or you get disconnected from either one.
  2130.  
  2131.     2) /def -n1 -agG -hPROCESS = /def -n1 -agG -h"KILL %1"
  2132.  
  2133.        will suppress display and recording of the next "% Starting
  2134.        process <pid>" message and its corresponding "% Killing process
  2135.        <pid>" message.
  2136.  
  2137.     3) /def -ag -hSEND = /send :%*
  2138.  
  2139.        will effectively add a ':' to the beginning of every line sent
  2140.        to the socket from the keyboard, by suppressing the transmission
  2141.        of the original text and using /send to transmit a ':' followed
  2142.        by the text.
  2143.  
  2144.     4) /def -h"LOGIN KoBra *" -p2  = $world_character$%;$world_password$
  2145.  
  2146.        will send your name and password (if they were defined in an
  2147.        /addworld command) to the mud in LP-MUD format automatically
  2148.        upon connecting to world KoBra.  The "login" flag must be on.  A
  2149.        priority greater than 1 is needed to override the default login
  2150.        hook defined by the standard library.
  2151.  
  2152.     5) /def -p2 -h"WORLD lp*" = /lp on
  2153.        /def -p1 -hWORLD = /lp off
  2154.  
  2155.        will turn on the "lp" flag when you switch to a world whose name
  2156.        matches "lp*", and turn it off for other worlds.
  2157.  
  2158.   See: DEF, HOOK, macros
  2159.  
  2160. @@@@hilites
  2161. @@@@gags
  2162. @@@@underline
  2163. @@@@reverse
  2164. @@@@flash
  2165. @@@@dim
  2166. @@@@bell
  2167. @@@@bold
  2168. @@@@attributes
  2169.   
  2170.   Many TF commands (/def, /echo, /edit, /list, /purge, /recall, /save)
  2171.   take an attribute argument of the form -a[ngGurfdhb].  The flags
  2172.   following the '-a' will determine the attributes (normal, gag,
  2173.   norecord, underline, reverse, flash, dim, hilite, bell) used to
  2174.   display the text produced by the command, or matched by a trigger.
  2175.   Norecord ('G') prevents the line from being recorded in history.
  2176.   Attributes not supported by your terminal type will be ignored.
  2177.  
  2178.   All attributes except 'n' may be combined usefully; 'n' overrides all
  2179.   others.  (Even gags can be combined with other attributes:  combining
  2180.   'g' and 'h', for example, will gag the text initially, but will
  2181.   hilite it if is is recalled with /recall -ag.)
  2182.  
  2183. @@@@arguments
  2184. @@@@substitution
  2185. @@@@expansion
  2186.  
  2187.   The text of a macro body is processed several times before being
  2188.   sent off through the socket.  The following things are checked for:
  2189.  
  2190.   1. Newline and character code substitution.  The sequences "%\" and "%;"
  2191.   are converted into newlines.  The sequence "\<number>" is converted to
  2192.   the character with decimal character code given by <number>.
  2193.   Example: ":part 1.%\:part 2." is sent as two lines.
  2194.  
  2195.   2. Reentrance substitution.  A single slash signifies the beginning
  2196.   of a reentrant command.  Another single slash, a newline, or the end
  2197.   of the string signifies the end.  Reentrant commands can contain
  2198.   argument substitutions and macro body substitutions.  A reentrant
  2199.   command can be a command call or a macro call.  Sequences of
  2200.   multiple slashes are compressed by one during this check.
  2201.   Example: The macro body text "/def foo=bar/" would define a macro
  2202.    "foo" that had the body "bar".
  2203.   Example: The macro body text "Thinks about //s" would be compressed
  2204.    to "Thinks about /s".
  2205.  
  2206.   3. Macro body substitution.  A single '$' signifies the beginning of
  2207.   the name of a macro name to substitute the body of.  Another single
  2208.   '$', a newline, or the end of the string signifies the end.  Macro
  2209.   body substitution can contain argument substitutions.
  2210.   Example: The macro body text "$foo$" would be replaced with the body
  2211.    of the macro with the name "foo".
  2212.  
  2213.   4. Argument substitution.  Argument substitutions begin with a '%',
  2214.   followed by '{', an argument selector, an optional default value, and
  2215.   a '}'.  The '{' '}' pair may be omitted if no default value is
  2216.   given.  The selector can be any of:
  2217.  
  2218.      A. Direct numbered arguments.  "1", "2", etc., are replaced with the
  2219.      corresponding arguments.
  2220.  
  2221.      B. All arguments.  "*" and "0" will be replaced with the entire
  2222.      argument line.
  2223.  
  2224.      C. All arguments excepting a direct range.  "-1", "-2", etc., are
  2225.      replaced with all arguments but the first, all but arguments but
  2226.      the first and second, etc.
  2227.  
  2228.      D. Numbered arguments starting at the end.  "L1", "L2", etc., are
  2229.      replaced with the last argument, the second-to-last, etc. (L is
  2230.      the same as L1.)
  2231.  
  2232.      E. All arguments excepting a range from the end.  "-L1", "-L2", etc.,
  2233.      are replaced by all except the last argument, all except the
  2234.      second-to-last, etc. ("-L" is the same as "-L1").
  2235.  
  2236.      F. Random argment.  "R" is replaced with a random argument, if
  2237.      there are any arguments.
  2238.  
  2239.      G. Escape.  "E" is replaced with an ESC character.
  2240.  
  2241.      All letters can be uppercase or lowercase.
  2242.  
  2243.      DEFAULT ARGUMENTS:  Any selector can be followed by a '-' and a
  2244.      string; this string will be used if the selector produces an empty
  2245.      string.  Thus "%{1-foofle}" is replaced with the first argument if
  2246.      there is one, or "foofle" if there is none.
  2247.  
  2248.   There are many examples of how to use all these symbols in the file
  2249.   EXAMPLES in the distribution archive.  A couple of simple
  2250.   illustrations are provided here:
  2251.  
  2252.   Definition: /def ending = meister
  2253.               /def greet = :waves to %{1-Jack}$ending$.
  2254.   Command:    /greet
  2255.   Sends:      :waves to Jackmeister.
  2256.   Command:    /greet Dave
  2257.   Sends:      :waves to Davemeister.
  2258.  
  2259.   Definition: /def listworld = /listworlds %*
  2260.   Command:    /listworld as*
  2261.   Result:     executes /listworlds as*
  2262.  
  2263. @@@@tinyprocesses
  2264. @@@@processes
  2265.  
  2266.   Associated commands:
  2267.  
  2268.   /quote
  2269.   /repeat
  2270.   /ps
  2271.   /kill
  2272.   /ptime
  2273.   /lpquote
  2274.  
  2275.   The /quote and /repeat commands in Fugue are done by setting up
  2276.   tinyprocesses-- processes that run concurrently with normal input
  2277.   and output.
  2278.  
  2279.   /ps can be used to get a listing of the currently running processes
  2280.   and their process ID's (for use with /kill).
  2281.  
  2282.   /kill can be used to terminate a processes.
  2283.  
  2284.   Processes can be run based on two different criteria:
  2285.  
  2286.   1. Normally, processes run whenever a specfic number of seconds
  2287.      has elapsed.  The delay can be specified when the process is
  2288.      started, or will default to the value of the user variable
  2289.      "ptime".
  2290.  
  2291.   2. If the "lpquote" flag is on, processes run whenever a "*^H"
  2292.      string is received from the server.
  2293.  
  2294. @@@@scrollback
  2295. @@@@history
  2296.  
  2297.   Associated commands:
  2298.  
  2299.   /recall
  2300.   /quote
  2301.   ^<string1>^<string2>
  2302.   Recall previous/next keys (RECALLB/RECALLF, default ^P and ^N)
  2303.  
  2304.   TinyFugue stores lines in 4 different types of history lists.  Input
  2305.   history records the last 50 commands from the keyboard.  Each world
  2306.   has a world history, which stores 1000 lines of output from that
  2307.   world.  Local history stores 100 lines of output generated by TF, i.e.
  2308.   anything that didn't come from a world.  Global history is an
  2309.   integrated list of 1000 lines from TF and every world.  The history
  2310.   sizes are often changed in compilation.
  2311.  
  2312.   /recall is used to display text from any of the history lists.
  2313.   The /quote command may be used to quote out of any history list using
  2314.   the /quote # feature.
  2315.  
  2316.   ^<string1>^<string2> accesses the last command in the input history
  2317.   containing <string1> and replaces it with <string2>, sending off the
  2318.   modified line.
  2319.  
  2320.   The recall previous and recall next keys (default ^P and ^N) bring up
  2321.   previous and subsequent commands in the command history list for
  2322.   editing.
  2323.  
  2324. @@@@mail
  2325. @@@@environment
  2326.  
  2327.   TF will check for mail in the file named by the MAIL environment
  2328.   variable.  If it is not defined, TF will check /usr/spool/mail/$USER.
  2329.  
  2330. @@@@library
  2331.  
  2332.   When TF is started, macros are loaded from the standard macro library
  2333.   (tf.library).  These macros are marked with the invisible flag ("-i")
  2334.   so they will not be processed by /list, /save and /purge unless
  2335.   forced.  Redefining or undefining such a macro will clear the flag,
  2336.   so customized macros can be listed, saved and purged.
  2337.  
  2338. Filenames:
  2339.   These macros may be redefined to any filename.
  2340.   HELPFILE contains the name of the file read by /help.
  2341.   LOGFILE contains the default filename used by /log.
  2342.   MACROFILE, HILITEFILE, GAGFILE, TRIGFILE, BINDFILE, HOOKFILE, and
  2343.     WORLDFILE are used by the /load* and /save* commands.
  2344.  
  2345. List commands:
  2346.   /listdef <spec>        - equivilent to '/list <spec>'.
  2347.   /listhilite <spec>     - lists hilites on <spec>.
  2348.   /listgag <spec>        - lists gags on <spec>.
  2349.   /listtrig <spec>       - lists triggers on <spec>.
  2350.   /listbind <spec>       - lists key bindings matching <spec>
  2351.   /listhook <spec>       - lists hooks matching <spec>.
  2352.  
  2353. Purge commands:
  2354.   /purgedef <spec>       - purges macros whose name matches <spec>
  2355.   /purgehilite <spec>    - purges macros with hilites on <spec>
  2356.   /purgegag <spec>       - purges macros with gags on <spec>
  2357.   /purgetrig <spec>      - purges macros with triggers on <spec>
  2358.   /purgedeft <spec>      - purges named macros with tirggers on <spec>
  2359.   /purgebind <spec>      - purges key bindings matching <spec>.
  2360.   /purgehook <spec>      - purges hooks matching <spec>.
  2361.  
  2362. Load commands:
  2363.   /loaddef, /loadhilite, /loadgag, /loadtrig, /loadbind, /loadhook,
  2364.   /loadworld.  All take a <file> argument; if omitted, the appropriate
  2365.   default filename macro is used.
  2366.  
  2367. Save commands:
  2368.   /loaddef, /loadhilite, /loadgag, /loadtrig, /loadbind, /loadhook,
  2369.   /loadworld.  All take a <file> and <spec> argument.  If <file> is
  2370.   omitted, the appropriate default filename macro is used.  The <spec>
  2371.   argument is used to select macros, as in the /list* commands.
  2372.  
  2373. File compression:
  2374.   The helpfile, ~/.tfrc, and files read with /load may be stored
  2375.   compressed on disk.  If TF can not find a file with the specified
  2376.   name, it will add COMPRESS_SUFFIX to the filename and try to read it
  2377.   by piping it through COMPRESS_READ.  COMPRESS_READ should contain the
  2378.   name of a shell command that takes a filename as an argument, and
  2379.   prints its output on standard output.  The default values for
  2380.   COMPRESS_SUFFIX and COMPRESS_READ defined in the library are ".Z" and
  2381.   "uncompress -c".  Note:  /save does not write a compressed file.
  2382.  
  2383. World connection commands:
  2384.   /retry <world>
  2385.     Try to connect to <world>; repeat every 2 minutes until successful.
  2386.   /retry_off [<world>]
  2387.     Cancels "/retry <world>" (default: all worlds)
  2388.  
  2389. /keys [<mnem> = <key>]
  2390.   Binds <key> to '/dokey <mnem>', or lists bindings if arguments are
  2391.   omitted.  Provided only for backward compatibilty.  You should use
  2392.   /bind or /def, and /list instead.
  2393.  
  2394. Hilite commands:
  2395.   /hilite_whisper, /hilite_page, /nohilite_whisper, and /nohilite_page
  2396.   turn on or off hiliting several different page and whisper formats.
  2397.  
  2398. Backward compatible macros:
  2399.   /reply, /act, /nolog, /nologin, /nologme, /noquiet, and /nowrap are
  2400.   provided for compatibility.
  2401.  
  2402. @@@@hilite_page
  2403. @@@@hilite_whisper
  2404. @@@@keys
  2405. @@@@retry
  2406. @@@@filenames
  2407. @@@@standard
  2408.   See "library".
  2409.  
  2410. @@@@
  2411.