home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-05-25 | 75.9 KB | 2,411 lines |
- @@@@summary
-
- Help is available on the following topics:
-
- +index +macros history processes
- general triggers flags +sockets
- tinyfugue patterns variables +hooks
- worlds attributes +environment +expansion
- *startup *library
-
- Type "/help index" for a complete list of TF builtin commands.
- Type "/help help" for instructions on using this help system.
- Type "/help general" for some general information on using TF.
-
- If you are having problems with TF and wish to contact the author, type
- "/help tinyfugue".
-
- If you are having trouble reading the help sections because text is
- scrolling off the screen, try typing "/more on" before /help commands.
-
- @@@@addworld
-
- Format:
-
- /ADDWORLD <name> [<character> <pass>] <host> <port> [<macro file>]
- /ADDWORLD default <character> <pass> [<mfile>]
- ___________
-
- Adds a new world associated with the name <name>, or defines the
- default character and password. Those worlds without character
- names, passwords, or macro files will reference to those fields in
- the default world if a default world exists and contains those
- strings.
-
- Redefining the default world is permitted. Those worlds previously
- defined without character, password or macro file strings will then
- use the new default.
-
- See: worlds
-
- @@@@background
-
- Format:
-
- /BACKGROUND [OFF|ON]
- ___________
-
- Sets the flag "background". If this flag is on, text received from
- all worlds will be tested for matching triggers and recorded in
- history. If is is off, only text from the current socket will be
- triggered and recorded.
-
- If there is unread socket input queued up when background is turned
- on, it will all be tested for triggers and recorded at that time.
-
- See: triggers, flags, history
-
- @@@@bamf
-
- Format:
-
- /BAMF [OFF|ON|OLD]
- ___________
-
- Sets the flag "bamf". This flag controls whether portals will
- operate. A portal is text sent by a server of the form:
-
- #### Please reconnect to <name>@<IP addr> (<hostname>) port <port> ####
-
- For example:
-
- #### Please reconnect to Islandia@128.100.102.51 (hawkwind.utcs.toronto.edu)
- port 2323 ####
-
- If "bamf" is off, lines in this format have no effect. If "bamf" is
- on, fugue will attempt to use the portal as an UnterMUD portal: it
- will disconnect from the current world, and use the same name and
- password to attempt to connect to the new world (if the login flag is
- on). If bamf is "old", fugue will connect to the new world without
- disconnecting from the current world. If "login" is on and the new
- world has been defined with a name and password in an /addworld
- command, fugue will attempt to log in automatically.
-
- The flag "bamf" defaults to OFF.
-
- See: worlds, sockets, flags
-
- @@@@beep
-
- Format:
-
- /BEEP [<number>|ON|OFF]
- ___________
-
- /beep causes Fugue to emit <number> beeps (ASCII 7). /beep with no
- arguments will emit three beeps. /beep OFF causes Fugue to ignore
- further calls to /beep until a /beep ON is performed.
-
- @@@@bind
-
- Format:
-
- /BIND [<sequence> = <command>]
- ___________
-
- Binds a key sequence to a macro. The <sequence> may use ^<key>
- notation for a control key, and \<number> for a decimal character
- code. For example, the escape character can be given by ^[ or \27.
-
- When the key sequence <sequence> is typed at the keyboard, <command>
- is executed. The command is actually a macro body, so all the
- substitutions described under "expansion" will be performed.
-
- At startup, TF defines bindings for BSPC, BWORD, DLINE, and REFRESH
- keys based on your terminal settings (defined by stty). Also, the
- standard macro library defines a set of (invisible) default bindings,
- one for each of the /dokey functions.
-
- The command
- /bind <sequence> = <command>
- is equivilent to
- /def -b"<sequence>" = <command>.
-
- Examples:
-
- /bind ^X1 = :jumps to the left%;:steps to the right!
- /bind ^[q = /more off
- /bind ~ky = /input Kyosuke
-
- See: general, UNBIND, DOKEY, INPUT
-
- @@@@board
-
- Format:
-
- /BOARD [OFF|ON|1|2|4]
- ___________
-
- Sets the flag "board". This flag controls whether an additional window
- for displaying backgammon boards will be used. This is useful when
- connecting to the FIBS backgammon server. To display backgammon boards
- in this window you have to tell the server to send boards in rawboard
- format. Use the help command of the FIBS backgammon server to find out
- how this is done.
-
- A numeric argument selects the boardstyle used to display the board.
- The default boardstyle is 4, which uses the smallest board window.
-
- The flag "board" defaults to OFF.
-
- See: flags
-
- @@@@borg
-
- Format:
-
- /BORG [OFF|ON]
- ___________
-
- Sets the flag "borg". This flag controls whether trigger bodies will
- be executed. This flag does not control whether trigger attributes
- (gag, underline, reverse, flash, dim, hilite, bell) will work; the
- separate flags "gag" and "hilite" control those.
-
- The flag "borg" defaults to OFF.
-
- See: triggers, flags
-
- @@@@cat
-
- Format:
-
- /CAT [%]
- ___________
-
- Concatenates all following lines until a line containing a single
- "." is reached. If the argument "%" is given, a "%\" sequence is
- appended to each line.
-
- Intermediate lines in the concatenation cannot be recalled with /dokey
- RECALLB (although the line containing the /cat call can be) and the
- entire line will be added to the command history buffer as a whole.
-
- Example:
-
- /cat %
- :foo
- :bar
- :baz
- .
-
- This produces:
- :foo%\:bar%\:baz
-
- If the "sub" flag is set on, this will expand to three lines ":foo",
- ":bar" and ":baz" and be sent to the socket.
-
- See also: general, history, SUB
-
- @@@@cleardone
-
- Format:
-
- /CLEARDONE [OFF|ON]
- ___________
-
- Sets the flag "cleardone". This flag controls whether Fugue will
- clear the input window when return is pressed; otherwise, it will
- drop to the next line in the input window, scrolling or clearing the
- window (see the "clearfull" flag) if necessary.
-
- The flag "cleardone" applies only to visual mode.
- The flag "cleardone" defaults to OFF.
-
- See: general, flags, CLEARFULL
-
- @@@@clearfull
-
- Format:
-
- /CLEARFULL [OFF|ON]
- ___________
-
- Sets the flag "clearfull". This flag controls whether Fugue will
- clear the input window upon reaching the bottom instead of scrolling
- it. Fugue will always clear the input window if your terminal does
- not have the capability to set the scroll area.
-
- The flag "clearfull" applies only to visual mode.
- The flag "clearfull" applies only to terminals with the ability to
- set the scroll area.
- The flag "clearfull" defaults to OFF.
-
- See: general, flags
-
- @@@@dc
-
- Format:
-
- /DC [<world>|-ALL]
- ___________
-
- Disconnects from the named world, or the current world if no world is
- given, or all worlds if "-all" is given. If the flag "quitdone" is
- on, and /dc would cause TF to be unconnected to any socket, this will
- also cause TF to exit.
-
- See: sockets, QUITDONE
-
- @@@@def
-
- Format:
-
- /DEF [-n<shots>] [-p<pri>] [-c<chance>] [-t<pattern>] [-w<world>]
- [-h"<event> [<pattern>]"] [-b<bind>] [-a[ngGurfdhb]] [-iI]
- [<name>] [= <body>]
- ___________
-
- Defines a macro with an optional trigger and hook associated with
- it. The meanings of the options are:
-
- -n<shots> The macro is a multi-shot, that is, it will be deleted
- after it is triggered or hooked <shots> times. A value
- of 0 makes the macro permanent. Default: 0.
-
- -p<pri> Sets the priority of the macro's trigger or hook
- to <pri>. Default: 1.
-
- -c<chance> Sets the percent probability of a trigger execution.
- Default: 100%.
-
- -t<pattern> Defines a trigger pattern which will cause the macro
- to be called. <pattern> may be enclosed in double
- quotes ("); if so, quotes within the pattern must be
- escaped with a '\'. Default: no trigger.
-
- -w<world> If the macro has a <trigger>, it can only be matched
- by text from <world>. Default: any world.
-
- -h"<event> [<pattern>]"
- Specifies that the macro will be called automatically
- whenever <event> occurs and it's arguments match
- <pattern>. <event> may be a single event name or a
- list separated by '|'. If <pattern> is omitted, it
- will default to "*", and the '"' may also be
- omitted. Default: no hook.
-
- -b<bind> The macro will be called when the sequence <bind>
- is entered at the keyboard. Default: no binding.
-
- -a[ngGurfdhb] Set attribute(s) (normal, gag, norecord, underline,
- reverse, flash, dim, hilite, bell) used to display
- text matched by the trigger or to display the default
- message of a hook. Default: normal.
-
- -i Marks the macro as "invisible". Invisible macros
- -I are not processed by /list, /save, or /purge unless
- forced. Default: not invisible.
-
- -1 Defines a one-shot. Equivalent to "-n1".
-
- <name> The name of the macro. Default: no name. Names
- should begin with a letter, and contain letters,
- numbers, or '_' characters. This is not enforced,
- but other characters (especially '$', '/', and '%')
- may cause unwanted interpretations during expansion.
-
- = <body> Text to be executed when macro is called. Default:
- no body.
-
-
- Example:
-
- /def -p2 -c75 -t"* has arrived." -ah greet = :greets %1
-
- This will create a macro that executes ":greets %1" from the command
- line, and associates with it a trigger of priority 2 and probability
- 75% that goes off upon reception of text matching the pattern "* has
- arrived." from the socket, and displays the text hilited.
-
- /def is sufficient to perform all the functions of the /trig, /trigp,
- /trigc, /trigpc, /gag, /hilite, /hook, and /bind commands.
-
- See: macros, triggers, patterns, hooks, expansion, attributes, UNDEF,
- UNDEFN, UNDEFT, UNTRIG, UNHOOK, BIND, PURGE, LIST, SAVE, LOAD
-
- @@@@dokey
-
- Format:
-
- /DOKEY <mnemonic>
- ___________
-
- Executes the function of the edit key <mnemonic>. Most of the edit
- key functions are not meaningful when the /dokey command is executed
- from the regular command line (some, such as RECALLB, RECALLF,
- SOCKETB, SOCKETF and INSERT, are), but these are useful in
- conjunction with the /bind command for creating multiple key
- sequences for the same function.
-
- Default sequence Mnemonic Function
- ___________________________________________________________________
- (shell setting) BSPC Backspace
- (shell setting) BWORD Delete word previous
- (shell setting) DLINE Delete line
- (shell setting) REFRESH Refresh line
- ^P RECALLB Recall previous line
- ^N RECALLF Recall next line
- ^[b SOCKETB Previous socket
- ^[f SOCKETF Next socket
- ^D DCH Delete character
- ^L REDRAW Redraw screen
- ^[[a UP Cursor up
- ^[[b DOWN Cursor down
- ^[[c RIGHT Cursor right
- ^[[d LEFT Cursor left
- ^A HOME Beginning of line
- ^E END End of line
- ^B WLEFT Move left word
- ^F WRIGHT Move right word
- ^K DEOL Delete to end of line
- ^[v INSERT Toggle insert mode
- ^I PAGE Scroll 1 page (/more)
- ^[h HPAGE Scroll half page (/more)
- ^[l LINE Scroll 1 line (/more)
- ^[j FLUSH Jump to end of /more buffer
-
- The default sequences for BSPC, BWORD, DLINE, and REFRESH are those
- used by your shell.
-
- Warning: TF will become essensially useless if there is no key bound
- to /dokey NEWLINE.
-
- Example:
-
- /bind ^? = /dokey BSPC
- /bind ^H = /dokey BSPC
-
- Both ^H and DEL could then be used to do backspacing.
-
- See: general, sockets, history, BIND, DOKEY, MORE
-
- @@@@echo
-
- Format:
-
- /ECHO [-a[ngGurfdhb]] [-w<world>] <text>
- ___________
-
- Locally echoes <text> to the screen or output window. Attributes may
- be given with the -a flag. If -w<world> is given, the text will be
- stored in the history of <world>; if it is not the current world,
- <text> will not be displayed until <world> is made current.
-
- See: attributes, worlds
-
- @@@@edit
-
- Format:
-
- /EDIT [-n<shots>] [-p<priority>] [-c<chance>] [-t<pattern>] [-w<world>]
- [-h<hook>] [-a[ngGurfdhb]] [-iI] [<name>] [= <body>]
- ___________
-
- Edits a currently existing macro or the trigger associated with a
- macro. The name of the macro must be specified and cannot be
- changed, with the following two exceptions:
-
- 1. The macro name can be specified as "#<num>" where <num> is the
- number of the macro instead of the name. A macro number can be
- determined by listing the macro with /list.
-
- 2. The macro name can be specified as "$<pattern>" where <pattern>
- is the trigger pattern. You may still change the pattern if this is
- used to locate the macro.
-
- In either case, the name cannot be changed. It is possible to
- create a macro which changes the name of a macro, if it does not
- have any options other than a name and a body:
-
- /def rename = /def %2 = $%1%;/undef %1
-
- How this works is discussed in the help section "expansion".
-
- All unspecified arguments remain as they were before, with the exception
- of -i, which will be cleared if it is not specified.
-
-
- Example:
-
- /def -p2 -c75 -t"* has arrived." -ah greet = :greets %1
- /edit -c0 greet
-
- The second command will modify the probability of the trigger
- associated with the macro "greet" to 0%, effectively turning it off.
-
- See: macros, triggers, patterns, expansion, attributes, DEF, LIST
-
- @@@@gag
-
- Format:
-
- /GAG [<pattern> [=<response>]]
- ___________
-
- Sets up a trigger associated with an unnamed macro. The trigger
- will have the attribute gag, be triggered by <pattern> and execute
- <response> if specified. The probability is 100%. The priority is
- determined by the user variable "gpri", set with the /gpri command.
-
- /gag with no arguments sets the flag "gag" to ON. The flag "gag"
- determines whether the gag attribute on triggers will operate. This
- flag can be set to OFF by "/nogag" with no arguments.
-
- Gagged lines from background worlds will not set the activity flag
- on the status line or call the activity hook.
-
- The flag "gag" defaults to ON.
- Operation of triggers is described in the section "triggers".
-
- See: triggers, patterns, expansion, flags, variables, DEF, NOGAG, GPRI
-
- @@@@gpri
-
- Format:
-
- /GPRI [<priority>]
- ___________
-
- Sets the user variable "gpri". This variable controls the priority
- of all subsequently-set gags. It will not change the priorities of
- gags already set.
-
- The variable "gpri" defaults to 0.
-
- See: variables, triggers, GAG
-
- @@@@grab
-
- Format:
-
- /GRAB <text>
- ___________
-
- This command puts <text> into the input buffer. It is not really
- useful from the normal command line, but is quite useful when called
- from a macro to redefine macros, or perhaps when bound to a key to
- speed up part of a line (macros allow you to largely do what this
- would allow, however). Any text already in the input buffer is
- discarded.
-
- Example:
-
- /def reedit = /grab //edit %1 = $%1
-
- How macros like this work is discussed in "expansion". If you had
- previously done "/def flail = :flails at his keyboard", the command
- "/reedit foobar" would place "/edit foobar = :flails at his keyboard"
- in the input buffer and allow you to edit it using the editing keys.
-
- See: macros, expansion, general, INPUT
-
- @@@@help
-
- Format:
-
- /HELP [<topic>]
- ___________
-
- Displays help on the topic specified, or displays a summary of
- available topics if no topic is given.
-
- If a HELPFILE macro is defined, it's body will be used as the name of
- the helpfile; otherwise ~/tf.help will be used. The helpfile may be
- compressed; see "library". If the helpfile or the help index is not
- found, /help will not function.
-
- Commands are described with the format "/COMMAND arguments". Words
- in all caps must be spelled exactly as shown. Arguments in <> can be
- given any value. Arguments in [] may be omitted. The character | means
- "or". For example, "[OFF|ON]" means you may type "off", "on", or nothing.
-
- Many commands take options to modify their behavior, following these rules:
- All options must be preceded by '-'.
- Options may be grouped after a single '-'.
- There must be no space between an option and its argument.
- String option-arguments may be delmited by a space or double quotes.
- Delimiters within the string must be preceeded by '\'.
- All options must precede operands.
- A '-' by itself may be used to mark the end of the options.
-
- @@@@hilite
-
- Format:
-
- /HILITE [<pattern> [= <response>]]
- ___________
-
- Sets up a trigger associated with an unnamed macro. The trigger
- will have the attribute hilite, be triggered by <pattern> and execute
- <response> if specified. The probability is 100%. The priority is
- determined by the user variable "hpri", set with the /hpri command.
-
- /hilite with no arguments sets the flag "hilite" to ON. The flag
- "hilite" determines whether the underline, reverse, flash, dim, and
- hilite attributes on triggers will operate. This flag can be set to
- OFF by "/nohilite" with no arguments.
-
- The standard library also defines /hilite_page and /hilite_whisper.
-
- The flag "hilite" defaults to ON.
-
- See: triggers, patterns, expansion, flags, variables, DEF, NOHILITE, HPRI
-
- @@@@hook
-
- Format:
-
- /HOOK <event> [<pattern>] [= <body>]
- /HOOK [OFF|ON]
- ___________
-
- Sets up an unnamed macro with an associated hook. The macro has
- normal attribute and executes <body> when the event occurs with the
- arguments that match <pattern>. <event> may be a single event or a
- list of events separated by '|'. If omitted, <pattern> will default
- to "*".
-
- /hook with no arguments displays the state of the "hook" flag. /hook
- with an argument of ON or OFF sets the "hook" flag, which determines
- if hooks will execute their associated macros.
-
- Note that defining a hook will not replace an existing hook on the
- same event, even with /redef on. (This is new in version 2.1).
-
- See the section "hooks" for details on hook operation, a list of
- event names, and examples.
-
- See: hooks, macros, expansion, flags, DEF, UNHOOK
-
- @@@@hpri
-
- Format:
-
- /HPRI [<priority>]
- ___________
-
- Sets the user variable "hpri". This variable controls the priority
- of all subsequently-set hilites. It will not change the priorities
- of hilites already set.
-
- The variable "hpri" defaults to 0.
-
- See: variables, triggers, HILITE
-
- @@@@input
-
- Format:
-
- /INPUT <text>
- ___________
-
- Enters <text> into the input buffer as if it had been typed at the
- keyboard, without deleting the current contents of the input buffer.
-
- /Input is perhaps most useful in combination with /bind, to create
- short key sequences that expand to longer text. For example, if you
- have this binding:
-
- /bind ~oj = /input OliverJones
-
- and then type "page ~oj = Hello" at the keyboard, it will appear in
- the input window as "page OliverJones = Hello".
-
- See: BIND, GRAB
-
- @@@@isize
-
- Format:
-
- /ISIZE [<size>]
- ___________
-
- Sets the user variable "isize". This variable determines the size
- of the input window in visual mode. It may be set before or after
- visual mode is entered. If visual mode is on, the screen will be
- redrawn.
-
- The variable "isize" applies only to visual mode.
- The variable "isize" defaults to 3.
-
- See: flags, variables, general, VISUAL
-
- @@@@kecho
-
- Format:
-
- /KECHO [OFF|ON|<prefix>]
- ___________
-
- Sets the flag "kecho" and optionally the user variable "kprefix".
- The flag "kecho" determines whether keyboard text will be locally
- echoed to the screen before processing. The user variable "kprefix"
- controls what this text will be prefixed with.
-
- The flag "kecho" defaults to OFF.
- The variable "kprefix" defaults to nothing.
-
- See: flags, variables, general
-
- @@@@kill
-
- Format:
-
- /KILL <pid>
- ___________
-
- Terminates a tinyprocess (/quote or /repeat command) denoted by <pid>.
- The pid of a tinyprocess can be determined with the /ps command or a
- PROCESS hook.
-
- The operation of tinyprocesses is described in the section "processes".
-
- See: processes, QUOTE, REPEAT, PS
-
- @@@@lcd
-
- Format:
-
- /LCD [newdir]
- ___________
-
- Changes to a new local directory, or displays the current directory.
- Directory display is not supported on some systems.
-
- @@@@listbind
- @@@@listdef
- @@@@listgag
- @@@@listhilite
- @@@@listhook
- @@@@listtrig
- @@@@list
-
- Format:
-
- /LIST [-s] [-n<shots>] [-p<pri>] [-c<chance>] [-t<pattern>] [-w<world>]
- [-h<hook>] [-b<bind>] [-a[ngGurfdhb]] [-iI] [<name>] [= <body>]
- ___________
-
- Lists macros having all the specified options. If "-s" is specified
- as the first option, macros will be listed in a short format. Other
- options are as in /def except as noted below; see DEF for a full
- explanation. Omitted options are "don't care", and will not be used
- to determine if a macro is listed. Thus, with no arguments, /list
- will list all macros.
-
- The "-t" flag with no <pattern> specifies macros with any trigger.
- The "-t-" flag specifies macros without triggers.
-
- The "-h" flag with no <hook> specifies macros with any hook.
- The "-h-" flag specifies macros without hooks.
-
- The "-b" flag with no <bind> specifies macros with any binding.
- The "-b-" flag specifies macros without bindings.
-
- The "-a" flag can be followed by any combination of 'n', 'g', 'G' 'u',
- 'r', 'f', 'd', 'h', or 'b'. The default is to display macros with
- any attributes.
-
- The "-i" flag will also list invisible macros, normally not listed.
- The "-I" flag will list ONLY invisible macros.
-
- A "= <body>" specifies macros whose body match the pattern of <body>.
- If <body> is empty, macros without a body are selected.
-
- Example: /list -n0 -t -aurfdh foo* =
- will list all macros whose names match "foo*"; have a trigger; are
- not multi-shots; have any of the underline, reverse, flash, dim, or
- hilite attributes; and have an empty body.
-
- See: macros, triggers, patterns, attributes, DEF
-
- @@@@listsockets
-
- Format:
-
- /LISTSOCKETS
- ___________
-
- Lists the sockets Fugue is currently connected to, and displays the
- name of the socket Fugue is currently displaying. For other sockets,
- it will display the state of the socket as "active" (ungagged text
- has been received but not yet displayed), "idle" (not active), "dead"
- (the socket was closed, but there is undisplayed activity), "pending"
- (a connection to the socket was attempted but has not yet been
- established), or "defunct" (a pending socket that was closed with
- /dc but still has a child CONNECT process).
-
- See: sockets, BACKGROUND, WORLD
-
- @@@@listworlds
-
- Format:
-
- /LISTWORLDS [-c] [<pattern>]
- ___________
-
- Lists the worlds Fugue knows about, and also displays the current
- default character name, and if the -c flag is present, the password.
-
- See: worlds, patterns
-
- @@@@loadbind
- @@@@loaddef
- @@@@loadgag
- @@@@loadhilite
- @@@@loadhook
- @@@@loadtrig
- @@@@load
-
- Format:
-
- /LOAD <file>
- ___________
-
- Loads commands from <file>. The file may contain any legal TinyFugue
- commands, and may be compressed (see "library"). Blank lines and
- lines beginning with ';' are ignored. Any leading whitespace on a
- line is stripped. Lines ending in '\' will be joined with the next
- line. A '%' preceding a '\' eliminates its special meaning.
-
- The standard macro library also defines the commands /loaddef,
- /loadbind, /loadhilite, /loadgag, /loadtrig, and /loadhook.
-
- See: macros, library, DEF, SAVE
-
- @@@@log
-
- Format:
-
- /LOG [-w[<world>]] [-lig] [OFF|ON|<file>]
- ___________
-
- Enables or disables logging to <file> if specified, otherwise to the
- file named in the body of the LOGFILE macro.
-
- Options:
- -w<world> Log output from <world> only.
- -w Log output from the current foreground world.
- -l Log local output (output generated by TF).
- -i Log keyboard input.
- -g Log global output (all worlds and local TF output).
-
- If none of the -ligw options are given, -g is assumed. If more than
- one is given, only the last one takes effect.
-
- It is possible to have multiple log files open simultaneously. It is
- also possible to have several types of output go to the same log
- file, by using several /log commands. For example,
-
- /log -g
- /log -wtt tt.log
- /log -i tt.log
-
- will send input from the keyboard and output from the world TT to the
- file "tt.log", and also send all (global) output to the file named by
- the LOGFILE macro.
-
- The functions of the /logme command in older versions of TF can be
- performed with /log -i.
-
- Logging is disabled by default.
-
- See: flags
-
- @@@@login
-
- Format:
-
- /LOGIN [OFF|ON]
- ___________
-
- Sets the flag "login". This flag determines whether Fugue will call
- the LOGIN hook upon connecting to a world.
-
- The standard library defines a default LOGIN hook in TinyMUD format,
- "connect <name> <password>". You may define other LOGIN hooks, with
- higher priority to override the default, to use your own format. See
- "hooks" for an example.
-
- The flag "login" defaults to ON.
-
- The "login" flag can be suppressed temporarily at startup with the "-l"
- option, or when manually connecting to a world with "/world -<world>".
-
- See: worlds, flags, variables, WORLD
-
- @@@@logme
- Obsolete. See "log".
-
- @@@@lp
-
- Format:
-
- /LP [OFF|ON]
- ___________
-
- Sets the flag "lp". This flag determines whether partial lines from
- a MUD will be displayed. This is useful for LP-MUDs.
-
- The flag "lp" defaults to OFF.
-
- See "hooks" for some useful LP-MUD examples.
-
- See: flags, LPQUOTE
-
- @@@@lpquote
-
- Format:
-
- /LPQUOTE [OFF|ON]
- ___________
-
- Sets the flag "lpquote". This flag determines whether the /quote
- and /repeat commands will not operate on a timed basis but instead
- wait for a '*^H' prompt from the MUD. This is useful for LP-MUDs.
-
- The flag "lpquote" defaults to OFF.
-
- See: flags (lp), QUOTE, REPEAT
-
- @@@@mecho
-
- Format:
-
- /MECHO [OFF|ON|<prefix>]
- ___________
-
- Sets the flag "mecho" and the user variable "mprefix". The flag
- "mecho" determines whether expanded macro text will be echoed to the
- screen before being sent through the socket. The variable "mprefix"
- is the prefix for this text when echoed to the screen.
-
- Text is prefixed and echoed whenever:
-
- (1) A complete line of socket text is expanded and sent
- (2) A command is executed inside a macro
- (3) A macro body substitution is performed inside a macro
-
- In the latter two cases, an indication of what command is being
- executed or what substitution is being made is given.
-
- The flag "mecho" defaults to OFF.
- The variable "mprefix" defaults to a null string.
-
- See: flags, variables, macros, expansion
-
- @@@@more
-
- Format:
-
- /MORE [OFF|ON]
- ___________
-
- Sets the flag "more". This flag determines whether the pager will
- work in TinyFugue. The pager will prompt you with "--More--" when a
- screenful of text is received from the MUD between input lines.
- Output will be suspended, but TF will continue to process incoming
- text and triggers, run processes, and allow you to continue typing.
- Typing TAB (^I) at the prompt will scroll a full screen of text;
- [ESC]h will scroll one-half screen; [ESC]l will scroll one line; and
- [ESC]j will jump to the end of the buffer (text will still be stored
- in history, however, so you can /recall it). The pager keys may be
- rebound using /bind.
-
- The flag "more" defaults to OFF.
-
- See: flags, general
-
- @@@@nogag
-
- Format:
-
- /NOGAG [<pattern>]
- ___________
-
- Eliminates a macro that is triggered by <pattern> and has the gag
- attribute. /nogag with no arguments turns off the flag "gag",
- disabling all gag attributes.
-
- The flag "gag" defaults to ON.
-
- See: flags, triggers, GAG
-
- @@@@nohilite
-
- Format:
-
- /NOHILITE [<pattern>]
- ___________
-
- Eliminates a macro that is triggered by <pattern> and has the hilite
- attribute. /nohilite with no arguments turns off the flag "hilite",
- disabling all hilite attributes.
-
- The flag "hilite" defaults to ON.
-
- See: flags, triggers, HILITE
-
- @@@@ps
-
- Format:
-
- /PS
- ___________
-
- Displays currently-running processes and their pids.
-
- See: processes
-
- @@@@ptime
-
- Format:
-
- /PTIME [<time>]
- ___________
-
- Sets the user variable "ptime". This variable determines the number
- of seconds to wait before sending /quote and /repeat text.
-
- The variable "ptime" defaults to 1.
-
- See: variables, processes
-
- @@@@purgebind
- @@@@purgedef
- @@@@purgedeft
- @@@@purgegag
- @@@@purgehilite
- @@@@purgehook
- @@@@purgetrig
- @@@@purge
-
- Format:
-
- /PURGE [-n<shots>] [-p<pri>] [-c<chance>] [-t<pattern>] [-w<world>]
- [-b<bind>] [-h<hook>] [-a[ngGurfdhb]] [-iI] [<name>] [= <body>]
- ___________
-
- Removes all specified macros. The macro is specified in the same way
- as in the /list command; see LIST for details. Invisible macros will
- not be purged unless "-i" is specified.
-
- The standard macro library also defines the commands /purgedef,
- /purgebind, /purgehilite, /purgegag, /purgetrig, /purgdeft, and
- /purgehook.
-
- See: macros, triggers, patterns, attributes, library, DEF, LIST
-
- @@@@purgeworld
-
- Format:
-
- /PURGEWORLD <pattern>
- ___________
-
- Purges all world entries matching <pattern>.
-
- See: worlds, patterns
-
- @@@@qecho
-
- Format:
-
- /QECHO [OFF|ON|<prefix>]
- ___________
-
- Sets the flag "qecho" and the user variable "qprefix". The flag
- "qecho" determines whether quoted lines will be echoed to the screen
- before being sent through the socket. The variable "qprefix" is the
- prefix for this text when echoed to the screen.
-
- The flag "qecho" defaults to OFF.
- The variable "qprefix" defaults to a null string.
-
- See: flags, variables, processes, QUOTE
-
- @@@@quiet
-
- Format:
-
- /QUIET [OFF|ON]
- ___________
-
- Sets the flag "quiet". This flag determines whether TinyFugue will
- suppress the output from a MUD that occurs when you connect to it.
- Fugue will stop suppressing text after 25 lines or when it finds a
- line describing the WHO action which often signifies the end of MUD
- introduction text.
-
- The /quiet command does not function correctly on many MUDs which
- don't have the expected line in the introductory text.
-
- The flag "quiet" defaults to OFF.
-
- See: flags
-
- @@@@quit
-
- Format:
-
- /QUIT
- ___________
-
- Exits from Fugue.
-
- @@@@quitdone
-
- Format:
-
- /QUITDONE [OFF|ON]
- ___________
-
- Sets the flag "quitdone". This flag determines whether Fugue will
- exit when disconnected from the last socket it is connected to.
-
- The flag "quitdone" defaults to OFF.
-
- See: flags
-
- @@@@quote
-
- Format:
-
- /QUOTE [-w[<world>] [-<time>] [<prefix>] '"<file>"[<suffix>]
- /QUOTE [-w[<world>] [-<time>] [<prefix>] !"<shell command>"[<suffix>]
- /QUOTE [-w[<world>] [-<time>] [<prefix>] #"<history command>"[<suffix>]
- /QUOTE [-w[<world>] [-<time>] [<prefix>] `"<TF command>"[<suffix>]
- ___________
-
- Quotes a file, shell command, history, or TF command. This will be
- done at a rate described in the section "processes". Each line will
- be preceded by <prefix> and followed by <suffix> if given.
-
- If <time> is specified, it is used as the value in seconds for the
- delay between each line. Otherwise, the user variable "ptime" is
- used.
-
- Socket commands generated by /quote will be send to the foreground
- world by default. If -w<world> is given, commands will be sent to
- that world instead . If -w is given, commands will be sent to the
- world that was current when the /repeat was started.
-
- A single quote (') signifies that a file is to be quoted.
-
- A bang (!) signifies that a shell command is to be executed and the
- output (standard output and standard error) quoted.
-
- A pound sign (#) signifies that a /recall command is to be executed
- and the output quoted (see "recall" for the exact syntax).
-
- A backquote (`) signifies that a TF command is to be executed and the
- output quoted.
-
- If <prefix> and/or <suffix> are specified, they are prepended and
- appended to each line generated by the /quote. If <suffix> is
- omitted, the double quotes around the <file> or <command> may be
- omitted.
-
- Quotes are done by means of a tinyprocess; i.e. they run concurrently
- with normal input and output.
-
- Quoted text never has newline or in-line macro substitution done
- (/repeat'ed text does, however).
-
- ___________
-
- Examples:
-
- (1) /quote -1 :reads about '"/usr/dict/words" in the dictionary.
-
- This sends off lines like:
- :reads about aardvark in the dictionary.
- :reads about aardvore in the dictionary.
- with one-second delays between lines.
-
- (2) /quote -0 /echo !ps -gux
-
- This displays the output of the system command "ps -gux" by echoing
- it locally, with no delays.
-
- (3) /quote -0 :remembers this: #-wTT 212-212
-
- This sends off this one line immediately:
-
- :remembers this: [The text of line #212 in world TT's recall buffer]
-
- (4) /quote :is using `/version
-
- will tell everybody in the room what version of TF you're running.
-
- ___________
-
- See: processes, history, LPQUOTE, PTIME, RECALL
-
- @@@@recall
-
- Format:
-
- /RECALL [-w<world>] [-lig] [-a[ngurfdhb]] [#]<range> [<pattern>]
- ___________
-
- Recalls lines from a history buffer. If none of the -w, -l, -i, or
- -g options are given, the recall is from the current world's history;
- -w<world> recalls from the history of <world>; -l recalls from the
- local history (TF output); -i recalls from the input history; and -g
- recalls from the global history (local and all worlds).
-
- Lines will be displayed with their original attributes; the
- switches following "-a" can be used to suppress specific attributes.
-
- <range> can be one of the following:
-
- 1. <number>
- 2. <number1>-<number2>
- 3. -<number>
- 4. <number>-
-
- The first format will recall <number> lines backward, so /recall -g 10
- would recall the last ten lines printed in the output window.
-
- The second format uses the line numbers in the history buffer as a
- range. "/recall -ag -wTT #12-14" recalls line numbers #12, #13 and #14
- from the history buffer of world TT, even if they were gagged.
-
- The third format recalls a single line, <number> lines backward in the
- history buffer. So "/recall - -5" would recall the fifth-most-recent
- line from the current world. Note the '-' which marks the end of the
- options, so that '-5' is interpreted as a range, and not a '5' option.
-
- The fourth format recalls a single line, using the line numbers in the
- history buffer. "/recall 42-" is equivalent to "/recall 42-42".
-
- The optional preceding '#' tells TF to prefix the output with line
- numbers. NOTE: When using the /quote command with the '#' option,
- which quotes the output of the recall command, the '#' that tells
- /quote to execute a recall command does NOT tell /recall to prefix
- with line numbers. You must use an additional # in order to do
- that.
-
- If <pattern> is given, only lines in the given range that match
- <pattern> will be recalled.
-
- See: history, attributes, QUOTE
-
- @@@@redef
-
- Format:
-
- /REDEF [OFF|ON]
- ___________
-
- Sets the flag "redef". This flag determines whether macros, worlds,
- and keybindings can be redefined without undefining them first.
-
- The flag "redef" defaults to OFF.
-
- See: flags, macros, ADDWORLD, BIND, DEF, UNDEF, UNWORLD
-
- @@@@repeat
-
- Format:
-
- /REPEAT [-w[<world>] [-<time>] <count> <command>
- ___________
-
- Repeats <command>, <count> times. <command> may be any legal macro
- body. This works through a tiny-process, i.e. it runs concurrently
- with normal input and output.
-
- /repeat can be begun with a time argument, which is a value in
- seconds for the delay between command executions. Otherwise, the
- user variable "ptime" is used.
-
- Socket commands generated by /repeat will be send to the foreground
- world by default. If -w<world> is given, commands will be sent to
- that world instead. If -w is given, commands will be sent to the
- world that was current when the /repeat was started.
-
- Since the first run is not done until after the first interval, a
- useful trick is to use "/repeat -<time> 1 <command>" to delay the
- execution of a command.
-
- See: processes, FLAGS, VARIABLES
-
- @@@@savebind
- @@@@saveedef
- @@@@saveegag
- @@@@saveehilite
- @@@@saveehook
- @@@@saveetrig
- @@@@save
-
- Format:
-
- /SAVE <file> [-n<shots>] [-p<pri>] [-c<chance>] [-t<pattern>] [-w<world>]
- [-h<hook>] [-b<bind>] [-a[ngGurfdhb]] [-iI] [<name>] [= <body>]
- ___________
-
- Saves specified macros to <file>. The macro is specified in the same
- way as in the /list command; see LIST for details. Invisible macros
- will not be saved unless "-i" is specified.
-
- Warning: if <file> already exists, its original contents will be lost
- and replaced with the specified macros.
-
- The standard macro library also defines the commands /savedef,
- /savebind, /savehilite, /savegag, /savetrig, and /savehook.
-
- See: macros, patterns, attributes, library, DEF, LIST, LOAD
-
- @@@@saveworld
-
- Format:
-
- /SAVEWORLD [<file>]
- ___________
-
- Saves world definitions to <file> if specified, otherwise from the file
- named in the body of the WORLDFILE macro.
-
- See: worlds, library, ADDWORLD
-
- @@@@send
-
- Format:
-
- /SEND [-W] [-w[<world>]] <text>
- ___________
-
- Sends <text> to <world>. If "-W" is given, <text> is sent to all
- connected worlds. If "-W" and "-w" are omitted, <text> is sent to
- the current world. /send does not execute the SEND hook.
-
- @@@@sh
-
- Format:
-
- /SH [<command>]
- ___________
-
- Creates a subshell to execute <command>, or an interactive shell. If
- in visual mode, TF will fix the screen first.
-
- If the "shpause" flag is set, Fugue will wait for a keypress before
- returning.
-
- See: SHPAUSE
-
- @@@@shpause
-
- Format:
-
- /SHPAUSE [OFF|ON]
- ___________
-
- Sets the flag "shpause". This flag determines whether Fugue will
- wait for a keypress before returning from an /sh command.
-
- The "shpause" flag defaults to OFF.
-
- See: flags
-
- @@@@sockmload
-
- Format:
-
- /SOCKMLOAD [OFF|ON]
- ___________
-
- Sets the flag "sockmload". This flag determines whether Fugue will
- load world macro files upon moving to a socket with the SOCKETB and
- SOCKETF keys (normally [ESC]B and [ESC]F; see /dokey), or when the
- /world command is issued and Fugue is already connected to the world
- given. When off, TF will only load macro files when it first connects
- to a world.
-
- Note that much of the work of /sockmload can be done with a WORLD
- hook.
-
- The "sockmload" flag defaults to OFF.
-
- See: flags, worlds
-
- @@@@sub
-
- Format:
-
- /SUB [OFF|ON|FULL]
- ___________
-
- Sets the flag "sub".
-
- If the flag "sub" is OFF, all lines except for history substitutions
- (line beginning with '^') and commands (/) are sent as-is to the
- socket.
-
- If the flag "sub" is ON, the sequences "%\" and "%;" are substituted
- with newlines, and the sequence "%%" is substituted with "%", and the
- sequence "\nn" is substituted with the character with decimal ASCII
- code <nn>. This does not happen to commands and history substitutions.
-
- If the flag "sub" is FULL, text is processed just as if it were the
- body of a macro (see "expansion") called without any arguments. This
- allows you to have in-line macros in regular input.
-
- The flag "sub" defaults to OFF.
-
- See: flags, general, expansion
-
- @@@@act
- @@@@reply
- @@@@trig
-
- Format:
-
- /TRIG <pattern> = <body>
- ___________
-
- Sets up an unnamed macro with an associated trigger. The
- trigger has normal attribute, priority 1, probability 100%, and
- executes <body> when triggered.
-
- See: triggers, expansion, DEF, TRIGP, TRIGC, TRIGPC, UNTRIG
-
- @@@@trigc
-
- Format:
-
- /TRIGC <chance> <pattern> = <body>
- ___________
-
- Sets up an unnamed macro with an associated trigger. The
- trigger has normal attribute, priority 1, probability <chance> (in
- percentage), and executes <body> when triggered.
-
- See: triggers, expansion, DEF, TRIG, TRIGP, TRIGPC, UNTRIG
-
- @@@@trigger
-
- Format:
-
- /TRIGGER <text>
- ___________
-
- Executes any trigger whose pattern match <text>, just as if <text>
- had come from a socket.
-
- See: triggers
-
- @@@@trigp
-
- Format:
-
- /TRIGP <pri> <pattern> = <body>
- ___________
-
- Sets up an unnamed macro with an associated trigger. The trigger has
- normal attribute, priority <pri>, probability 100%, and executes
- <body> when triggered.
-
- See: triggers, expansion, DEF, TRIG, TRIGC, TRIGPC, UNTRIG
-
- @@@@trigpc
-
- Format:
-
- /TRIGPC <pri> <chance> <pattern> = <body>
- ___________
-
- Sets up an unnamed macro with an associated trigger. The trigger has
- normal attribute, priority <pri>, probability <chance>, and executes
- <body> when triggered.
-
- See: triggers, expansion, DEF, TRIG, TRIGP, TRIGC, UNTRIG
-
- @@@@unbind
-
- Format:
-
- /UNBIND <sequence>
- ___________
-
- Removes a macro with the keybinding <sequence>.
-
- See: general, BIND, PURGE
-
- @@@@undef
-
- Format:
-
- /UNDEF <name>
- ___________
-
- Removes a macro with the name <name>.
-
- See: macros, DEF, PURGE, UNDEFN, UNDEFT, UNTRIG, UNHOOK
-
- @@@@undefn
-
- Format:
-
- /UNDEFN <number> ...
- ___________
-
- Removes macros with the numbers specified in the arguments. Macro
- numbers can be determined with /list.
-
- See: macros, DEF, LIST, PURGE, UNDEF
-
- @@@@undeft
-
- Format:
-
- /UNDEFT <trigger>
- ___________
-
- Removes a macro with a trigger associated with it that is triggered
- by the pattern <trigger>.
-
- See: macros, trigger, DEF, PURGE, UNDEF
-
- @@@@unhook
-
- Format:
-
- /UNHOOK <event> [<pattern>]
- ___________
-
- Removes a macro with an associated hook on <event> <pattern>.
-
- See: hooks, HOOK, PURGE, UNDEF
-
- @@@@untrig
-
- Format:
-
- /UNTRIG <trigger>
- ___________
-
- Removes a macro with an associated trigger that is triggered
- by the pattern <trigger> and has no attributes.
-
- See: triggers, TRIG, PURGE, UNDEF
-
- @@@@unworld
-
- Format:
-
- /UNWORLD <name>
- ___________
-
- Removes a world with the name <name>. The history for world <name>
- will be deleted, although it may still be in the global history.
-
- See: worlds, ADDWORLD
-
- @@@@version
-
- Format:
-
- /VERSION
- ___________
-
- Displays the TinyFugue version you're running.
-
- @@@@visual
-
- Format:
-
- /VISUAL [OFF|ON]
- ___________
-
- Sets the flag "visual". This flag determines whether Fugue will run
- in the visual mode. In visual mode, the screen is divided into an
- input window and an output window.
-
- See: general
-
- @@@@watchdog
-
- Format:
-
- /WATCHDOG [OFF|ON] [<n1> [<n2>]]
- ___________
-
- Sets the flag "watchdog". This flag determines whether Fugue will
- watch for identical lines and suppress them. Fugue looks for lines
- which have occurred <n1> times out of <n2> (<n1> defaults to 2 and
- <n2> to 5) and suppress them, so with the default settings Fugue
- will suppress any lines that have occurred 2 times out of the last 5.
-
- The <n1> and <n2> settings for /watchdog are distinct from the <n1>
- and <n2> settings for /watchname.
-
- The flag "watchdog" defaults to OFF.
-
- See: flags, WATCHNAME
-
- @@@@watchname
-
- Format:
-
- /WATCHNAME [OFF|ON] [<n1> [<n2>]]
- ___________
-
- Sets the flag "watchname". This flag determines whether Fugue will
- watch for players displaying lots of output. Fugue looks for names
- which have begun the line <n1> times out of <n2> (<n1> defaults to 4
- and <n2> to 5) and gag that person (with a message), so with the
- default settings Fugue will gag any person whose name has begun 4 of
- the last 5 lines.
-
- The <n1> and <n2> settings for /watchname are distinct from the <n1>
- and <n2> settings for /watchdog.
-
- The flag "watchname" defaults to OFF.
-
- See: flags, WATCHDOG
-
- @@@@world
-
- Format:
-
- /WORLD [-]<worldname>
- /WORLD <host> <port>
- ___________
-
- Attempts to open a socket connected to the world <worldname>.
- <worldname> must be one of the worlds Fugue knows about through the
- addworld command or through the config file. "/world <host> <port>"
- will define a temporary world with the given address, and try to
- connect to it.
-
- If a dash is specified before the world name, Fugue will connect to
- the world but will not call the LOGIN hook (that is, try to login
- automatically), even if the "login" flag is on.
-
- If Fugue succeeds in connecting, the following will occur: the new
- socket is added to the list of open sockets; the new socket is
- brought into the foreground (thus calling the WORLD hook); the macro
- file for the new world is loaded (if one is defined, and the
- "sockmload" flag is on); the CONNECT hook is called; and the LOGIN
- hook is called (if the "login" flag is on).
-
- If TF was compiled with the CONNECT option and the socket can not be
- opened immediately, it will continue to try to connect in the
- background, but remain on the current world and allow you to do other
- things until the connection succeeds or fails. Without the CONNECT
- option, TF will block (freeze) until the connection succeeds. This
- usually isn't very long, but can take up to 90 seconds or more if the
- network is lagged. Hitting the interrupt or suspend key (usually ^C
- and ^Z) will kill the connection and break the block.
-
- See: worlds, sockets, ADDWORLD
-
- @@@@wrap
-
- Format:
-
- /WRAP [<column>|OFF]
- ___________
-
- Sets the user variable "wrap". This variable determines the column
- at which words are to be wrapped. Words that would extend past this
- column are wrapped to the next line. If the variable "wrapspace" is
- not 0, the second through last lines of wrapped text will be indented
- by that many columns.
-
- "/wrap off" sets "wrap" to 0, disabling it.
-
- The variable "wrap" defaults to one less than the number of columns
- on the terminal.
-
- If logging and wrap are both on, lines will be wrapped in the log file.
-
- See: general, variables, WRAPSPACE
-
- @@@@wrapspace
-
- Format:
-
- /WRAPSPACE [<number>|OFF]
- ___________
-
- Sets the user variable "wrapspace". This variable determines the
- number of columns to indent the second through last lines of wrapped
- text. "/wrapspace off" sets "wrapspace" to 0.
-
- If the variable "wrap" is 0, "wrapspace" is ignored.
-
- The variable "wrapspace" defaults to 0.
-
- See: general, variables, WRAP
-
- @@@@author
- @@@@tf
- @@@@tinyfugue
- ______
- / /\ TinyFugue was derived from a client initially
- / __/ \ written by Anton Rang (Tarrant) and later
- | / /\ | modified by Leo Plotkin (Grod). The first
- | |/ | 'Fugue' modifications were written by Greg
- | X__/ | Hudson (Explorer_Bob). Fugue is currently
- \ / / maintained by Ken Keys (Hawkeye), who can be
- \______/ reached at kkeys@ucsd.edu.
-
- No copyright 1992, no rights reserved.
- Fugue is in the public domain.
-
- @@@@commands
- @@@@index
-
- Help is available on the following commands:
-
- ADDWORLD GRAB LP REDEF UNDEFN
- BACKGROUND HELP LPQUOTE +REPEAT UNDEFT
- BAMF HILITE MECHO +SAVE +UNHOOK
- BEEP HPRI MORE SAVEWORLD UNTRIG
- +BIND +HOOK NOGAG SEND UNWORLD
- BORG INPUT NOHILITE SH VERSION
- CAT ISIZE PS SHPAUSE VISUAL
- CLEARDONE KECHO PTIME SOCKMLOAD WATCHDOG
- CLEARFULL KILL +PURGE SUB WATCHNAME
- DC LCD PURGEWORLD TRIG +WORLD
- +DEF +LIST QECHO TRIGC WRAP
- +DOKEY LISTSOCKETS QUIET TRIGGER WRAPSPACE
- ECHO LISTWORLDS QUIT TRIGP
- EDIT LOAD QUITDONE TRIGPC
- GAG +LOG +QUOTE UNBIND
- GPRI LOGIN RECALL UNDEF BOARD
-
- * new command (version 2.1) + modified command
-
- @@@@startup
-
- Syntax:
-
- tf [-f<file>] [-ln] [<world>]
- tf [-f<file>] <host> <port>
- ___________
-
- At startup, TF will load commands from the standard macro file and
- your personal configuration file (~/.tfrc). Then, TF will try to
- connect to <world>. If <world> is omitted, it will try to connect to
- the first world defined in the configuration file(s). TF with <host>
- and <port> arguments will define a temporary world and try to connect
- to it. The <host> may be an IP number or regular name format. If no
- world is specified, or TF can not connect to the specified world, TF
- will start up in unconnected mode.
-
- Options:
- -f<file> Load <file> instead of ~/.tfrc at startup.
- -l Disable automatic login.
- -n Do not connect to any world automatically at startup.
-
- @@@@interface
- @@@@mode
- @@@@general
-
- TinyFugue has two main interface modes-- visual and non-visual.
- Visual mode is enabled with the "/visual on" command.
- See: VISUAL
-
- The visual interface has two windows: the bottom window is for
- input, the top for output. TF will scroll output if your terminal
- has that capability, otherwise output will wrap bottom-to-top in the
- output window, clearing two lines ahead. The /isize, /cleardone, and
- /clearfull commands can be used to customize the visual display.
- See: ISIZE, CLEARDONE, CLEARFULL
-
- The non-visual interface uses the full screen. Input and output are
- both displayed on the bottom line. If you are typing and output
- appears, your input is cleared, the output is displayed, and your
- input is redisplayed on the last line. If your input has wrapped
- around to a second or third line, only the last line will be cleared
- and redisplayed.
-
- In both modes, output text is wrapped around at a right margin of
- one less than the number of columns on your screen (usually 79)
- unless wrapping has been turned off. In addition, if you set the
- variable "wrapspace" with /wrapspace <n>, all lines after the first
- in a wrapped piece of output will be indented by <n> spaces.
- See: WRAPSPACE
-
- TF supports a variety of input functions on special key sequences;
- see DOKEY to get a list. These functions, such as editing the text
- in the input buffer, recalling previous commands, and moving back and
- forth between socket connections, may be accessed using the special
- keys defined by the /bind command, or via the /dokey command.
- See: BIND, DOKEY
-
- In addition to being able to define key sequences to these input
- functions, TF also allows you to bind your own commands to special
- keys, using the /bind command.
- See: BIND
-
- TF can perform various substitutions on your input, depending on the
- setting of the /sub command. The /sub command also applies to text
- sent via the /bind and /repeat commands.
- See: SUB
-
- TF will treat any input line beginning with a single '/' as a
- command or macro call (see "macros"). TF will treat any line
- beginning with a '^' as an input history substitution.
- See: history
-
- Socket output goes through a number of checks before being
- displayed. First, it is added to an output history list. Then, the
- text is checked to see if it sets off any trigger patterns. At the
- same time, TF checks to see if the text has been gagged or hilited.
- If the text was not gagged, TF also checks to see if it should be
- suppressed due to the effects of the /quiet, /watchdog and /watchname
- commands, and may go so far as to ask if you want to gag someone
- who's been overactive.
- See: triggers, QUIET, WATCHDOG, WATCHNAME
-
- @@@@variables
-
- TinyFugue has a number of runtime options which are set as numbers
- or strings. A brief description of these follows. Not listed are
- the settings for /watchdog and /watchname. Variable types are S for
- string and N for number.
-
- Variable Default Command Description
- -------------------------------------------------------------------
- N isize 3 /isize Input window size
- N gpri 0 /gpri Priority of subsequent /gags
- N hpri 0 /hpri Priority of subsequent /hilites
- S kprefix /kecho Prefix for keyboard input echoing
- S mprefix /mecho Prefix for macro expansion echoing
- N ptime 1 /ptime Seconds to wait between process runs
- S qprefix /qecho Prefix for /quote echoing
- N wrap col - 1 /wrap Column at which to wrap
- N wrapspace 0 /wrapspace Spaces to indent wrapped text
-
- @@@@flags
-
- All flags can be set by "/<flag> [OFF|ON]" with the exception of
- "hilite" and "gag", which are set with "/hilite", "/nohilite", "/gag"
- and "/nogag". The "bamf" and "sub" flags each have a third state
- which is different from either the ON or OFF settings.
-
- Flags are preceded with their default states, 1 being ON and
- 0 being OFF.
-
- 1 background - Triggering on and recording text from background worlds.
- 0 bamf - Reconnecting to other MUDs directed by server (portals).
- 0 board - Use additional window to display backgammon boards.
- 1 borg - Enables triggers.
- 0 clearfull - Clear input window rather than scroll when full.
- 0 cleardone - Clears input window on carriage return.
- 1 gag - Enable gag attribute in triggers.
- 1 hook - Enable hooks.
- 1 hilite - Enable u, r, f, d, h, and b attributes in triggers.
- 0 kecho - Echoing of keyboard text.
- 1 login - Enable automatic login.
- 0 lp - Displays partial lines after a short timeout.
- 0 lpquote - Waits for "*^H" for /quote and /repeat.
- 0 mecho - Echoing of macro expansion process.
- 0 more - Output paging (somewhat like the more filter).
- 0 qecho - Echoing of quote text.
- 0 quiet - Suppress MUD login text.
- 0 quitdone - Quit upon disconnection from last MUD.
- 0 redef - Allows redefinition of existing macros, worlds, & bindings.
- 0 shpause - Wait for a keypress after shelling out.
- 0 sockmload - Load macro files on socket moves.
- 0 sub - Newline substitution in normal text.
- 0 visual - Windowing.
- 0 watchdog - Suppress repeated lines.
- 0 watchname - Suppress overactive players.
-
- @@@@worlds
-
- Associated commands:
-
- /addworld
- /unworld
- /purgeworld
- /world (see also "sockets")
- /saveworld
- /listworlds
-
- Fugue stores a list of "worlds" that it knows about. Each world has
- six strings associated with it:
-
- A name (which is simply a label for the world)
- A character name
- A character password
- A host address
- A host port
- A macro file (optional).
-
- The character name and password are used for the automatic login.
- Fugue also keeps track of a world with the name "default", which is
- just a dummy world with a character name and password, and
- optionally a macro file. After the default world is defined, worlds
- which have left out the character and password fields still will
- attempt to log in (assuming the "login" flag is on). If the default
- world has a macro file, worlds without macro files will use the
- default macro file.
-
- The world's macro file is a list of macro definitions to be loaded
- when a socket is opened connecting to a particular world. If the
- flag "sockmload" is on, this file will also be loaded whenever the
- user switches to a world with the SOCKETB and SOCKETF keys (see
- "sockets", /dokey).
-
- World strings can be accessed using reentrance. The following macro
- names will expand to the fields associated with the current world
- (not the foreground world; see /help sockets):
-
- world_name
- world_character
- world_password
- world_host
- world_port
- world_mfile
-
- This is only useful inside macro expansion, generally.
-
- Example:
-
- /def curw = :notes that the current world is $world_name$, to which
- he is connected as $world_character$.
-
- This would tell the rest of the world some stuff they probably don't
- care about, namely the label Fugue has assigned to the current world
- and the character name it logged on under.
-
- @@@@sockets
-
- Associated commands:
-
- /world (see also "worlds")
- /listsockets
- /dc
- /quitdone
- /background
- /bamf
- /login
- /sockmload
- Next/previous socket keys (SOCKETF/SOCKETB, default [ESC]F and [ESC]B)
-
- TF can connect to multiple sockets. Only one of these can be
- displayed at a time; this is called the foreground socket, other
- sockets are in the background. Text from background sockets will be
- triggered and stored in history immediately upon receipt (if the
- "background" flag is on). You can connect to a new world in one of
- three ways:
-
- 1. By specifying the world name or address on a command line.
- 2. By receiving a portal message from the socket when the "bamf"
- flag is on. (See "bamf" for portal details.)
- 3. By using the /world command with a world name.
-
- When Fugue connects to a socket, it adds it to the sockets list. You
- can disconnect from a socket, removing it from the list, with the /dc
- command. If you are disconnected (either with /dc or because the
- socket closes) from the last socket you are connected to and the
- "quitdone" flag is on, Fugue will exit.
-
- You can determine what sockets you are connected to with the
- /listsockets command.
-
- You can move through sockets with the next socket and previous
- socket keys, which default to [ESC]B and [ESC]F and can be modified
- with /bind.
-
- /world with no arguments connects you to the first defined world.
- /world'ing to a world which you are already connected to moves
- you to that socket rather than reconnecting you.
-
- Moving to a socket that one is already connected to, either with the
- Next and previous socket keys or with the /world command, will load a
- world's macro file if the flag "sockmload" is on (see /sockmload)
-
- At all times, there is a foreground socket and a current socket. The
- foreground socket is the one that is being displayed. In visual
- mode, the name of the foreground world will appear on the status
- bar. The current socket is the socket to which commands are sent.
- The current socket is almost always the same as the foreground
- socket, except: 1) when a trigger is called from any socket, that
- socket becomes the current socket for the duration of the trigger
- execution; 2) when a /repeat or /quote with world redirection runs,
- that world's socket becomes the current socket for the duration of
- the process execution.
-
- @@@@smatch
- @@@@wildcards
- @@@@patterns
-
- TF patterns are used in matching triggers and in the /purge* and
- /list* commands.
-
- There are four types of things TF looks for in patterns:
-
- 1. The '*' character matches any number of characters.
-
- 2. The '?' character matches any one character.
-
- 3. Square brackets ([]) can be used to match any one of a sequence
- of characters. Ranges can be used. If '^' is the first
- character, the pattern will match any character NOT contained.
-
- 4. Curly braces ({}) can be used to match any one of a sequence of
- words. They operate by comparing the sequences of words, divided
- by '|' characters, to a word in the string being matched. They
- will only match complete words: "{foo}*" and "{foo}p" do not
- match "foop" and "*{foo}" and "p{foo}" do not match "pfoo".
-
- Patterns containing "{}" can easily be meaningless; a {} pattern
- will match nothing if it:
-
- (a) contains spaces,
- (b) does not follow a wildcard, space or beginning of string,
- (c) is not followed by a wildcard, space or end of string.
-
- "d*g" matches "dg", "dog", "drug", "debug", "dead slug", etc.
- "d?g" matches "dog", "dig" and "dug" but not "dg" or "drug".
- "M[rs]." matches "Mr." and "Ms."
- "M[a-z]" matches "Ma", "Mb", etc.
- "[^a-z]" matches anything but an alphabetical character.
- "{storm|chup*}*" matches "chupchup fehs" and "Storm jiggles".
- "{storm|chup*}*" does NOT match "stormette jiggles".
-
- All pattern matches are case insensitive.
- All special characters may be escaped with a '\'.
-
- @@@@macros
-
- Associated commands:
-
- /def
- /hook, /unhook
- /trig, /hilite, /gag
- /bind, /unbind
- /undef, /undefn, /undeft
- /purge
- /list
- /load, /save
-
- Macros provide a shorthand for executing a commands or sequence of
- commands, by giving them a simple name. Macros may be called in four
- ways: a command of the form "/<name>", by triggers (see the section
- on "triggers"), by hooks (see the section on "hooks"), or by
- keybindings.
-
- A macro name is the way of calling it from normal input or from
- another macro. You can execute a macro by typing "/<name>".
-
- A macro body, or execution text, is the commands and/or text executed
- when the macro is called. This text is subject to macro expansion
- processing (see "expansion").
-
- @@@@triggers
-
- Associated commands:
-
- /def
- /trig, /trigp, /trigc, /trigpc
- /gag, /hilite
- /trigger
- /background
-
- Triggers are a method of calling a macro based on text received from
- the socket. A macro with a trigger is executed when a line of
- incoming text matches its trigger pattern (see the section on
- "patterns"). If the "background" flag is on, text from any world can
- set off a trigger. Triggers can also be set off with the command
- /trigger.
-
- Triggers do not exist independently of macros; they are part of them.
-
- A trigger has various characteristics:
-
- 1. It has priority, which affects its attributes and its execution
- text. Socket text which matches multiple triggers will trigger
- the macro with the highest-priority trigger associated with it.
- 2. It has probability, which only affects its execution text. A
- trigger will only execute its execution text <probability>% of
- the times it is triggered.
- 3. It has display attributes, which are any combination of normal, gag,
- underline, reverse, flash, dim, hilite, or bell, which affects the
- way the text which triggered it is (or is not) displayed.
- 4. It may be a multi-shot trigger, in which case it and the macro it
- is associated with is removed after executing a specified number
- of times.
-
- For purposes of argument substitution, a macro's arguments are the
- line which triggered it when it is executed as a result of a
- trigger.
-
- If socket text matches multiple trigger patterns and the trigger
- priorities are not enough to determine a single trigger (i.e. there
- are multiple triggers of the highest priority level available), a
- trigger is randomly selected between them.
-
- Trigger execution text means the execution text of the macro it is
- associated with.
-
- The /def command is the only way to specify a multi-shot trigger. All
- other commands which define triggers will create permanent triggers.
-
- @@@@hooks
-
- Associated commands:
-
- /def
- /hook
- /unhook
-
- Hooks are a method of calling a macro based on special events within
- TF, in much the same way as triggers call macros based on socket
- text. Hooks allow the user to customize the behavior of TinyFugue
- and automate special functions.
-
- A hook definition has two parts: an <event> and a <pattern>. When
- the event occurs, the macro will be executed if the arguments
- supplied by the event match the macro's <pattern> (see the section on
- "patterns").
-
- Most hooks have a default message associated with them, which will be
- displayed with the attributes of the hook if one is defined. Thus a
- hook with a gag attribute will suppress the display of the message.
-
- Hook may be have multi-shots, in which case it and the macro it is
- associated with is removed after executing a specified number of
- times.
-
- Event Name Arguments Default Message or Action
- ---------- --------- -------------------------
- ACTIVITY world '% Activity in world <world>'
- BACKGROUND world '% Trigger in world <world>'
- BAMF world '% Bamfing to <world>'
- CONFAIL world, reason '% Connection to <world> failed: <reason>'
- CONNECT world (successful connection to <world>)
- DISCONNECT world '% Connection to <world> closed.'
- HISTORY world '% <world> history buffer full.'
- KILL pid '% Killing process <pid>'
- LOAD file '% Loading commands from file <file>'
- LOADFAIL file, reason '% <file>: <reason>'
- LOGIN world, char, pass (automatic TinyMUD-style login)
- MAIL '% You have new mail.'
- MORE '--More--' (reverse hilite)
- PENDING world '% Connection to <world> in progress.'
- PROCESS pid '% Starting process <pid>'
- REDEF object, name '% Redefined <object> <name>'
- RESIZE columns, lines (window resized)
- RESUME '% Resuming TinyFugue'
- SEND keyboard text (keyboard text sent to socket)
- SHELL type, command '% Executing <type>: "<command>"'
- WORLD world '---- World <world> ----'
-
- Notes:
-
- The ACTIVITY hook is called only the first time activity occurs on
- a given socket.
-
- The DISCONNECT hook will be called if you use the MUD's "QUIT"
- command. Use /dc to avoid this.
-
- The MAIL hook may be called falsely if you read your mail without
- deleting your mail file.
-
- Please do not use CONFAIL to write a simple repeating connect macro.
- The standard library provides a "smart" version of such a macro,
- called /retry. See "library".
-
- When connecting to a new sockets, these hooks may be called, in
- this order: WORLD, LOAD (if "sockmload" is on), CONNECT, and LOGIN
- (if "login" is on).
-
- Examples:
-
- 1) /hook activity|disconnect {TT|SM} = /world %1
-
- will cause TF to automatically switch to TT or SM if activity
- occurs or you get disconnected from either one.
-
- 2) /def -n1 -agG -hPROCESS = /def -n1 -agG -h"KILL %1"
-
- will suppress display and recording of the next "% Starting
- process <pid>" message and its corresponding "% Killing process
- <pid>" message.
-
- 3) /def -ag -hSEND = /send :%*
-
- will effectively add a ':' to the beginning of every line sent
- to the socket from the keyboard, by suppressing the transmission
- of the original text and using /send to transmit a ':' followed
- by the text.
-
- 4) /def -h"LOGIN KoBra *" -p2 = $world_character$%;$world_password$
-
- will send your name and password (if they were defined in an
- /addworld command) to the mud in LP-MUD format automatically
- upon connecting to world KoBra. The "login" flag must be on. A
- priority greater than 1 is needed to override the default login
- hook defined by the standard library.
-
- 5) /def -p2 -h"WORLD lp*" = /lp on
- /def -p1 -hWORLD = /lp off
-
- will turn on the "lp" flag when you switch to a world whose name
- matches "lp*", and turn it off for other worlds.
-
- See: DEF, HOOK, macros
-
- @@@@hilites
- @@@@gags
- @@@@underline
- @@@@reverse
- @@@@flash
- @@@@dim
- @@@@bell
- @@@@bold
- @@@@attributes
-
- Many TF commands (/def, /echo, /edit, /list, /purge, /recall, /save)
- take an attribute argument of the form -a[ngGurfdhb]. The flags
- following the '-a' will determine the attributes (normal, gag,
- norecord, underline, reverse, flash, dim, hilite, bell) used to
- display the text produced by the command, or matched by a trigger.
- Norecord ('G') prevents the line from being recorded in history.
- Attributes not supported by your terminal type will be ignored.
-
- All attributes except 'n' may be combined usefully; 'n' overrides all
- others. (Even gags can be combined with other attributes: combining
- 'g' and 'h', for example, will gag the text initially, but will
- hilite it if is is recalled with /recall -ag.)
-
- @@@@arguments
- @@@@substitution
- @@@@expansion
-
- The text of a macro body is processed several times before being
- sent off through the socket. The following things are checked for:
-
- 1. Newline and character code substitution. The sequences "%\" and "%;"
- are converted into newlines. The sequence "\<number>" is converted to
- the character with decimal character code given by <number>.
- Example: ":part 1.%\:part 2." is sent as two lines.
-
- 2. Reentrance substitution. A single slash signifies the beginning
- of a reentrant command. Another single slash, a newline, or the end
- of the string signifies the end. Reentrant commands can contain
- argument substitutions and macro body substitutions. A reentrant
- command can be a command call or a macro call. Sequences of
- multiple slashes are compressed by one during this check.
- Example: The macro body text "/def foo=bar/" would define a macro
- "foo" that had the body "bar".
- Example: The macro body text "Thinks about //s" would be compressed
- to "Thinks about /s".
-
- 3. Macro body substitution. A single '$' signifies the beginning of
- the name of a macro name to substitute the body of. Another single
- '$', a newline, or the end of the string signifies the end. Macro
- body substitution can contain argument substitutions.
- Example: The macro body text "$foo$" would be replaced with the body
- of the macro with the name "foo".
-
- 4. Argument substitution. Argument substitutions begin with a '%',
- followed by '{', an argument selector, an optional default value, and
- a '}'. The '{' '}' pair may be omitted if no default value is
- given. The selector can be any of:
-
- A. Direct numbered arguments. "1", "2", etc., are replaced with the
- corresponding arguments.
-
- B. All arguments. "*" and "0" will be replaced with the entire
- argument line.
-
- C. All arguments excepting a direct range. "-1", "-2", etc., are
- replaced with all arguments but the first, all but arguments but
- the first and second, etc.
-
- D. Numbered arguments starting at the end. "L1", "L2", etc., are
- replaced with the last argument, the second-to-last, etc. (L is
- the same as L1.)
-
- E. All arguments excepting a range from the end. "-L1", "-L2", etc.,
- are replaced by all except the last argument, all except the
- second-to-last, etc. ("-L" is the same as "-L1").
-
- F. Random argment. "R" is replaced with a random argument, if
- there are any arguments.
-
- G. Escape. "E" is replaced with an ESC character.
-
- All letters can be uppercase or lowercase.
-
- DEFAULT ARGUMENTS: Any selector can be followed by a '-' and a
- string; this string will be used if the selector produces an empty
- string. Thus "%{1-foofle}" is replaced with the first argument if
- there is one, or "foofle" if there is none.
-
- There are many examples of how to use all these symbols in the file
- EXAMPLES in the distribution archive. A couple of simple
- illustrations are provided here:
-
- Definition: /def ending = meister
- /def greet = :waves to %{1-Jack}$ending$.
- Command: /greet
- Sends: :waves to Jackmeister.
- Command: /greet Dave
- Sends: :waves to Davemeister.
-
- Definition: /def listworld = /listworlds %*
- Command: /listworld as*
- Result: executes /listworlds as*
-
- @@@@tinyprocesses
- @@@@processes
-
- Associated commands:
-
- /quote
- /repeat
- /ps
- /kill
- /ptime
- /lpquote
-
- The /quote and /repeat commands in Fugue are done by setting up
- tinyprocesses-- processes that run concurrently with normal input
- and output.
-
- /ps can be used to get a listing of the currently running processes
- and their process ID's (for use with /kill).
-
- /kill can be used to terminate a processes.
-
- Processes can be run based on two different criteria:
-
- 1. Normally, processes run whenever a specfic number of seconds
- has elapsed. The delay can be specified when the process is
- started, or will default to the value of the user variable
- "ptime".
-
- 2. If the "lpquote" flag is on, processes run whenever a "*^H"
- string is received from the server.
-
- @@@@scrollback
- @@@@history
-
- Associated commands:
-
- /recall
- /quote
- ^<string1>^<string2>
- Recall previous/next keys (RECALLB/RECALLF, default ^P and ^N)
-
- TinyFugue stores lines in 4 different types of history lists. Input
- history records the last 50 commands from the keyboard. Each world
- has a world history, which stores 1000 lines of output from that
- world. Local history stores 100 lines of output generated by TF, i.e.
- anything that didn't come from a world. Global history is an
- integrated list of 1000 lines from TF and every world. The history
- sizes are often changed in compilation.
-
- /recall is used to display text from any of the history lists.
- The /quote command may be used to quote out of any history list using
- the /quote # feature.
-
- ^<string1>^<string2> accesses the last command in the input history
- containing <string1> and replaces it with <string2>, sending off the
- modified line.
-
- The recall previous and recall next keys (default ^P and ^N) bring up
- previous and subsequent commands in the command history list for
- editing.
-
- @@@@mail
- @@@@environment
-
- TF will check for mail in the file named by the MAIL environment
- variable. If it is not defined, TF will check /usr/spool/mail/$USER.
-
- @@@@library
-
- When TF is started, macros are loaded from the standard macro library
- (tf.library). These macros are marked with the invisible flag ("-i")
- so they will not be processed by /list, /save and /purge unless
- forced. Redefining or undefining such a macro will clear the flag,
- so customized macros can be listed, saved and purged.
-
- Filenames:
- These macros may be redefined to any filename.
- HELPFILE contains the name of the file read by /help.
- LOGFILE contains the default filename used by /log.
- MACROFILE, HILITEFILE, GAGFILE, TRIGFILE, BINDFILE, HOOKFILE, and
- WORLDFILE are used by the /load* and /save* commands.
-
- List commands:
- /listdef <spec> - equivilent to '/list <spec>'.
- /listhilite <spec> - lists hilites on <spec>.
- /listgag <spec> - lists gags on <spec>.
- /listtrig <spec> - lists triggers on <spec>.
- /listbind <spec> - lists key bindings matching <spec>
- /listhook <spec> - lists hooks matching <spec>.
-
- Purge commands:
- /purgedef <spec> - purges macros whose name matches <spec>
- /purgehilite <spec> - purges macros with hilites on <spec>
- /purgegag <spec> - purges macros with gags on <spec>
- /purgetrig <spec> - purges macros with triggers on <spec>
- /purgedeft <spec> - purges named macros with tirggers on <spec>
- /purgebind <spec> - purges key bindings matching <spec>.
- /purgehook <spec> - purges hooks matching <spec>.
-
- Load commands:
- /loaddef, /loadhilite, /loadgag, /loadtrig, /loadbind, /loadhook,
- /loadworld. All take a <file> argument; if omitted, the appropriate
- default filename macro is used.
-
- Save commands:
- /loaddef, /loadhilite, /loadgag, /loadtrig, /loadbind, /loadhook,
- /loadworld. All take a <file> and <spec> argument. If <file> is
- omitted, the appropriate default filename macro is used. The <spec>
- argument is used to select macros, as in the /list* commands.
-
- File compression:
- The helpfile, ~/.tfrc, and files read with /load may be stored
- compressed on disk. If TF can not find a file with the specified
- name, it will add COMPRESS_SUFFIX to the filename and try to read it
- by piping it through COMPRESS_READ. COMPRESS_READ should contain the
- name of a shell command that takes a filename as an argument, and
- prints its output on standard output. The default values for
- COMPRESS_SUFFIX and COMPRESS_READ defined in the library are ".Z" and
- "uncompress -c". Note: /save does not write a compressed file.
-
- World connection commands:
- /retry <world>
- Try to connect to <world>; repeat every 2 minutes until successful.
- /retry_off [<world>]
- Cancels "/retry <world>" (default: all worlds)
-
- /keys [<mnem> = <key>]
- Binds <key> to '/dokey <mnem>', or lists bindings if arguments are
- omitted. Provided only for backward compatibilty. You should use
- /bind or /def, and /list instead.
-
- Hilite commands:
- /hilite_whisper, /hilite_page, /nohilite_whisper, and /nohilite_page
- turn on or off hiliting several different page and whisper formats.
-
- Backward compatible macros:
- /reply, /act, /nolog, /nologin, /nologme, /noquiet, and /nowrap are
- provided for compatibility.
-
- @@@@hilite_page
- @@@@hilite_whisper
- @@@@keys
- @@@@retry
- @@@@filenames
- @@@@standard
- See "library".
-
- @@@@
-