!              DQUERY          LIST            REHASH          WALLOPS
#              ECHO            LOAD            RESTART         WHICH
:              ENCRYPT         LUSERS          SAVE            WHILE
ADMIN          EVAL            ME              SAY             WHO
ALIAS          EXEC            MLOAD           SEND            WHOIS
ASSIGN         EXIT            MODE            SENDLINE        WHOWAS
AWAY           FLUSH           MOTD            SERVER          WINDOW
BIND           FOREACH         MSG             SET             XECHO
BYE            HELP            NAMES           SIGNOFF         XTYPE
CD             HISTORY         NICK            SLEEP           basics
CHANNEL        HOOK            NOTE            SQUIT           commands
CLEAR          IF              NOTICE          STATS           etiquette
COMMENT        IGNORE          NOTIFY          SUMMON          expressions
CONNECT        INFO            ON              TIME            intro
CTCP           INPUT           OPER            TIMER           ircII
DATE           INVITE          PARSEKEY        TOPIC           menus
DCC            JOIN            PART            TRACE           news
DEOP           KICK            PING            TYPE            newuser
DESCRIBE       KILL            QUERY           USERHOST        rules
DIE            LASTLOG         QUIT            USERS
DIGRAPH        LEAVE           QUOTE           VERSION
DMSG           LINKS           REDIRECT        WAIT
===========================================================================
!:
Usage: ![<history number>|<history match>]
  The ! command is used to recall previous commands in your command
  history for re-execution.  The ! command is unique in that when it
  is used, it leaves the matching history entry in the input line for
  re-editing.  You can specify a history entry either by its number
  in the history list, or by a match with a given wildcard expression.
  For example:
    !10
  will put entry 10 in the history list into the input line.  
  The following:
    !/MSG 
  will search the history list for a line beginning with /MSG and
  put it in the input line (an * is implied at the end of /MSG).  When
  using ! command with a wildcard expression, subsequent uses of
  the ! command continue their search in the history list from where 
  they left off.  This is reset to the end of the list when a command
  is executed that adds an entry to the history list. Also, if a
  wildcard expression is used once, subseqent uses of ! with no
  expression will use the previous wild card expression.  For example,
  the following:
    !/MSG
    !
  The first call returns the first match of /MSG in the history list, 
  and the second returns the next match, and so on.  This is useful 
  in the following key binding:
    BIND ^R PARSE_COMMAND /!$"Search: "
  With this, you can hit ^R and you will be prompted for a search
  string in the history list.  If you want to then repeat the search
  you simply have to hit ^R and hit return, since it will use
  the previous search by default.
  
  Lastly, ! may be used in command aliases as well.  When it is
  embedded in an alias it simply executes the matching history entry
  without first putting it in the input line for re-editing.

See Also:
  HISTORY
===========================================================================

#:
See COMMENT for more information about #.
===========================================================================

::
See COMMENT for more information about :.
===========================================================================

ADMIN:
Usage: ADMIN [<server>|<nickname>]
  Displays the administrative details about the given server. If
  no server is specified, the server you are connected to is
  used. If a nickname is supplied then it gives the administrative 
  information for that person's current server.
===========================================================================

ALIAS:
ALIAS          functions       quote           special         width
===========================================================================
Usage: ALIAS [[-]<alias> [<commands>]]
  Creates a command alias for <commands>. Commands do not need to be
  prefixed with a command character, in fact they shouldn't!
  If you want an alias to type something to the channel or query
  use SEND or SAY. You can use ';' to put multiple commands in a row.

  Special character sequences, usually ircII variables, are prefixed
  with '$'.  There are certain $ sequences built in to IRCII for getting
  such information as your nickname and current channel, plus you can
  expand your own variables and system variables using the $ format.  
  You can also expand functions, substituting their return values.
  See ASSIGN for more on this.

  Here are some simple alias examples:
    ALIAS HELLO MSG $0 Hello, $0! $1-
  This alias can be used by typing:
    HELLO BigCheese How are you?
  This would act as though you had typed:
    MSG BigCheese Hello, BigCheese! How are you?
  ALIAS with just the <alias> argument shows the current alias
  for that word.  ALIAS with no argument shows all current
  aliases. To remove an alias, use ALIAS -<alias>.

  To use more than one command in an alias, separate them by ';'.  

  When using ALIAS in a script it is frequently useful to surround
  the contents of your alias with { }s when you want to put more than
  one commands in an alias. E.g:
    ALIAS loadcommon {
      LOAD netsplit
      LOAD troy
    }
  is the same as
    ALIAS loadcommon LOAD netsplit;LOAD troy
  but lacks the ; and it much easier to read in a script or the .ircrc file.

  For more specific information about the $ uses and more examples,
  see the specific help files listed below.

See Also:
  SET
  INPUT_ALIASES
  SEND
  SAY
  ircII programming
  ASSIGN
  expressions  (note also Special Cases at the end)
===========================================================================

IRCII Functions
  IRCII functions are substituted with the format $FUNCTION(arguments).
  A function is an ALIAS which assigns a value to FUNCTION_RETURN.
  For example:
    ALIAS DOUBLE assign FUNCTION_RETURN ${[$0]+[$0]}
  which is the same as:
    ALIAS DOUBLE @ function_return = [$0] * 2
  used with:
    ALIAS SHOWDOUBLE echo $DOUBLE($0)
  will cause
    SHOWDOUBLE 7
  to display "14".

  The following built-in functions already exist and cannot be overriden:

  LEFT(COUNT STRING)    Returns the COUNT leftmost bytes from the STRING.
  RIGHT(COUNT STRING)   Returns the COUNT rightmost bytes from the STRING.
  MID(INDEX COUNT STRING) Returns COUNT bytes starting at position INDEX
                        in STRING.
  INDEX(CHARLIST STRING) Returns the index to the first character in STRING
                        which appears in CHARLIST.
  RINDEX(CHARLIST STRING) Returns the index to the last character in STRING
                        which appears in CHARLIST.
  TIME()                Returns the current system time as a long integer
  STIME(TIMEVAL)        Returns the date and time in English that corresponds
                        to the long integer TIMEVAL.
  TDIFF(TIME_INTERVAL)  Takes a TIME_INTERVAL in seconds and returns it in 
                        the format.. dd days hh hours mm minutes ss seconds
                        Any fields with 00 are omitted.
  RAND(LIMIT)           Returns a random number x such that 0<=x<LIMIT
  SRAND(SEED)           Seeds the random number generator and returns nothing.
                        The seed may be a long integer, although only the low
                        integer is used.
  USERHOST()            Returns the user@host value under which the current
                        message was sent if you are on a 2.7 server or better.
  MATCH(PATTERN WORDS)  Returns an index into the list of WORDS of the first
                        match for the given PATTERN. Returns 1 if it matches
                        the first word, 0 if it matches none.
  RMATCH(WORD PATTERNS) Returns an index into the list of PATTERNS of the
                        pattern which best matches the given WORD. Returns
                        1 for the first pattern, 0 for none.
  WORD(INDEX WORDS)     Returns the single word in the list of WORDS pointed
                        to by INDEX.
  STRIP(CHARLIST STRING) Returns the STRING with all occurrences of characters
                        listed in CHARLIST removed.
  CONNECT(HOST PORT)    Returns the file descriptor for the connection.
                        A NULL fd means host could not be resolved.
                        Negative fd means some error occurred in the attempt.
                        Communication through the connection is done with 
                        DCC RAW and ON DCC_RAW.
                        (See DCC RAW and ON DCC_RAW)
  LISTEN(PORT)          Creates a listening socket on the specified port.
                        If the port # is not specified then it returns the 
                        number of the port it chose arbitrarily.  It cannot
                        open a port# < 1025
  ISCHANNEL(word)       Returns 1 if word is a valid channel name.
  ISCHANOP(nick channel) Returns 1 if nick is a chanop on the given channel.
  WINNUM()              Returns the current window number.  This is always 
                        the window which is indicated by STATUS_WINDOW.
  WINNAM()              Returns the current window name.
                        This is always the window which is indicated by 
                        STATUS_WINDOW.  If the window has no name, it returns
                        nothing.
  ENCODE(input text)    Convert input text to an encoded string suitable for
                        use as an ircII variable or alias name.  Any special
                        including spaces can be encoded into the string.
  DECODE(encoded text)  Decode a single STRING of text produced by ENCODE()
                        into it's original characters.  Note that these are
                        case sensitive.
  TOUPPER(string)       Convert string to upper case.
  TOLOWER(string)       Convert string to lower case.
  CURPOS()              Returns the postition from the start of the input line
                        to where the cursor is now.
  MYCHANNELS(refnum)    Returns a string with a list of channels on that
                        windows server. (defaults to current window)
  MYSERVERS()           Returns a string of the names of the servers
                        you are connected to.

Note:
  The argument separator for functions is the space character, not the comma.
===========================================================================

ALIAS MODIFIER:
  This is a special quoting modifier.  Use of this modifier tells
  IRCII that you wish certain characters in the converted text to be
  quoted using the \ character.  The form of this modifier is:
    $^c<sequence>
  where c is the character to be quoted, and <sequence> is one of the
  special sequences.  For example, you may wish to do the following:
    alias foo eval echo $^$*
  and you do
    foo This is a $Test
  Since $ expressions are parsed first, the $^$* is the first thing
  parsed.  The ^$ part tells IRCII to quote all $ in the resultant
  string.  So, the $^$* is expanded just like $* and becomes:
    This is a $Test
  and the ^$ causes it to quote all $, which becomes:
    This is a \$Test
  This is then replaced in the original alias for parsing, so /foo
  becomes:
    eval echo This is a \$test
  When eval goes through the line and reparses it the $ is protected 
  by the new \, and thus the final output will be "This is a $Test".
  If $ was not quoted, eval would try to expand any $'s into the
  contents of the associated variable.  Eg. one$two  would try to 
  expand the variable $two
  The ^ modifier must be first after the initial $.  You may specify
  more than one character to be quoted simply be adding more ^c to the
  expression:
    $^$^\B
  will quote all occurences of $ and \ in the body of the last message
  you received.

  Remember, you can use both forms of modifiers, but they must be in
  the correct order.  All ^ modifiers must be first, followed by any
  [] modifier.  For example:
    $^.[-10]S
  This will right justify your server name and quote any . in the
  server name with \.

See Also:
  ALIAS WIDTH
  EVAL
===========================================================================

Special character sequences for ALIAS:
  All special character sequences begin with a $.  In their simpliest
  form, the following have special meaning in aliases:
    $*   Expands to the rest of the arguments on the command line.
    $n   Where n is a non-negative number, expands to the nth arg.
    $n-m Where n and m are non-negative numbers, expands to the
         nth thru mth arguments inclusive.
    $n-  Where n is a non-negative number, expands from the nth
         argument to the end of the argument list.
    $-m  Where m is a non-negative number, expands from the
         beginning of the argument list to the mth argument.
         This is the same as $0-m.
    $~   Expands to the last word on a line.
    $,   Expands to the nickname of the last person who send you 
         a /MSG
    $.   Expands to the nickname of the last person to whom you 
         sent a /MSG
    $variable  Expands to the value of one of the following:
           1) Matching ASSIGN'd variable
           2) Matching IRCII SET variable
           3) Matching environment variable
           4) Nothing
         It checks in the order shown.  Thus, if 1 doesn't match, 2 is
         tried.  If 2 doesn't match, 3 is tried, etc.
         See ASSIGN for more details.
    $[number]variable  Expands the variable and shows only 'number' of
     characters. e.g. $blue == "nonsense"  $[3]blue == "non"
     and $[20]blue == "nonsense           "
     In the second case note it is left justified in the space.
    $[-number]variable Expands as above but it is right justified when
     the 'number'  is bigger than the number of chars in variable.
         $[20]blue == "           nonsense"
    $#variable  Expands to the number of words in the variable.
    $@variable  Expands to the number of letters in the variable.
    $"Prompt"  Will prompt you (using the text between the double 
               quotes) for input which will be replaced in the 
               alias. ***WARNING***  This is no longer supported.
               use the INPUT command instead.
    $(sub-alias)  This expands out the sub-aliases, then uses that
         result in place of the (sub-alias) expression.  For example
         $($0) will first expand $0... suppose it expands to S.  Then
         it replaces that in the original text, giving you $S, which
         is then expanded to the name of your current server.
    $!history!  This expands to a matching entry in your command
         history.  The text between the ! may contain wildcards.
    $:   Expands to the nickname of the last person to join your 
         channel
    $;   Expands to the nickname of the last person to send a public
         message to your channel
    $A   Expands to the text of your AWAY message
    $B   Expands to the body of the last MSG you sent.
    $C   Expands to your current channel
    $D   Expands to the nickname of the person whose sign-on was last
         detected by the NOTIFY mechanism
    $H   Expands to the current numeric being processed
    $I   Expands to the name of the channel to which you were last
         INVITED
    $K   Expands to the current value of CMDCHAR.  Useful to have 
         aliases work even when you change CMDCHAR.
    $L   Expands to the current contents of the input line
    $N   Expands to your nickname
    $O   Expands to the value of STATUS_OPER if you are currently an operator
    $P   Expands to "@" if you are a chanop on the current channel
    $Q   Expands to the nickname of the person you are QUERYing.
    $S   Expands to the name of your server
    $T   Expands to the 'target' of your input (either a QUERY nick or
         a current channel)
    $U   Expands to the last thing cut from the command line. e.g. ^U to 
         clear line will put the line in the variable $U
    $V   Expands to the internal ircII release date
    $W   Expands to the current working directory
    $Z   Expands to the time of day
    $$   Expands to $

  Argument to aliases will automatically be appended to the expanded
  alias unless you use one of the following forms in the alias:
     $*
     $n
     $n-m
     $-m
     $n-
     $(sub-alias)
  If one of these forms is used in the alias arguments are not appended.
  For example: 
    ALIAS M /MSG
  will be treated as:      
    ALIAS M /MSG $*
  However,
    ALIAS M /MSG $0 $1-
  will not have the arguments appended.  If you have an alias and you wish to 
  prevent arguments from being appended, add $() to the alias.  The $() with
  nothing between the parenthesis expands to nothing and prevents arguments
  from being appended.

  Any alias may be surrounded by {}s so that it can be imbedded within
  another string.  For example:
    a${N}a
  will expand to (assuming your nickname is BigCheese):
    aBigCheesea
  Aliases are automatically delimited by certain characters.  For example:
    "$N"
  expands to:
    "BigCheese"
===========================================================================

ALIAS MODIFIER:
  This modifier is a width specifier for any of the forms of
  alias.  This is done by placing [<width>] after the $ (and
  after and ^c expressions).  For example:
    $[10]C
  This expand to your current channel, but it will truncate any
  characters beyond 10 in the channel name.  If the channel is
  less than 10 characters, it will be padded on the right with
  blanks.  Specifying a negative width will justify the field on
  the right and pad on the left with blanks.  A width of 0 is
  treated as though no width specifier was used.  If you get real
  tricky, you can do things like this:
    $([$CHANNEL_NAME_WIDTH]C)
  The value of the IRCII variable CHANNEL_NAME_WIDTH will be expanded
  in the $() expression.   If CHANNEL_NAME_WIDTH is 10, this will result
  in $[10]C which will then expand as described above.
 
  Remember, you can use both forms of modifiers, but they must be in
  the correct order.  All ^ modifiers must be first, followed by any
  [] modifier.  For example:
    $^.[-10]S
  This will right justify your server name and quote any . in the
  server name with \.

See Also:
  ALIAS QUOTE
===========================================================================

ASSIGN:
Usage: ASSIGN [[-]<user-variable> [<whatever>]]
  ASSIGN lets you create user variables which are automatically
  expanded by ircII in aliases using the $variable-name format.
  For example, if you had defined:
    ASSIGN me The Big Cheese
  Then, in an alias, $me would expand to "The Big Cheese".  These
  are straight textual substitutions.  You can use these kind
  of variables as counters and indexes into lists as well.  For
  example:
    ASSIGN index 0
    ASSIGN index ${index+1}
  The first line sets "index" to 0, the seconds increments index by 1.
  Note that the second will always be expanded if used in another
  alias (where $ are normally expanded).  If you want it to be
  expanded if typed at the input line, you must first set
  INPUT_ALIASES to ON.

  Note: In the above example, the mathematical expression must be
  enclosed by {}'s  otherwise the + would be treated as an alias
  delimiter and the addition not performed. (See @ as well)

  Suppose now you wanted to use index to get a single word in a list, 
  you could do:
    ALIAS WORD ECHO $($index)
  Then doing:
    WORD This is a test
  would display the index'th word in the list.  
  The $($index) format does the following: it parses the text
  between the () as a sub-alias.  The "$index" is thus evaluated
  and returns it's value.  This value is then replaced for the () 
  expression and evaluated.  So, if you had:
    ASSIGN index 1
  Then, the following would be evaluated:
    $index becomes 1 which given
    $(1) which becomes simply $1
  Thus the $1 argument is used.  
  This functionality can be nested. This the following:
    ASSIGN A Hey You!
    ASSIGN B A
    ASSIGN C B
    ALIAS NESTING echo $($($C))
  will cause NESTING to display "Hey You!"

  The following format are also legal:
    $#name    evaluates to the number of words in name
    $@name    evaluates to the number of characters in name
  You can use these with the mathematical expressions as well, 
  for example:
    ASSIGN foo Testing One Two
    ECHO $#foo $@foo
    ASSIGN junk ${#foo + @foo}
  The ECHO line will display 3 15 and the variable junk have the 
  value 18.

  Additionally, values assigned to FUNCTION_RETURN are taken to be
  the return value of a function.

IMPORTANT NOTE:
  There is a special version of this command called '@'
  for use in aliases and scripts.  It is well suited to mathematical
  operations.  Its use over ASSIGN is highly recommended.

See Also:
  @
  ALIAS
  IF
  SET INPUT_ALIASES
  ALIAS functions
===========================================================================

AWAY:
Usage: AWAY [<flags>] [<away message>]
  Marks you as "away".  Whenever someone sends you a MSG or a
  does a WHOIS on you, they automatically see whatever message
  you set.  While you are away, all messages you receive will be
  timestamped and you will optionally get beeped (see SET 
  BEEP_WHEN_AWAY) for each message.  Using AWAY with no
  parameters marks you as no longer being away.

Available Flags:
  -one  Send away message to only the server in the current window.
  -all  (default) send away message to all servers you may be on.

See Also:
  SET BEEP_WHEN_AWAY
  SET SHOW_AWAY_ONCE
===========================================================================

BIND:
BACKSPACE                  FORWARD_CHARACTER       SCROLL_END
BACKWARD_CHARACTER         FORWARD_HISTORY         SCROLL_FORWARD
BACKWARD_HISTORY           FORWARD_WORD            SCROLL_START
BACKWARD_WORD              HELP_CHARACTER          SELF_INSERT
BEGINNING_OF_LINE          META1_CHARACTER         SEND_LINE
BIND                       META2_CHARACTER         STOP_IRC
CLEAR_SCREEN               META3_CHARACTER         SWITCH_CHANNELS
COMMAND_COMPLETION         META4_CHARACTER         TOGGLE_INSERT_MODE
DELETE_CHARACTER           NEXT_WINDOW             TOGGLE_STOP_SCREEN
DELETE_NEXT_WORD           NOTHING                 TRANSPOSE_CHARACTERS
DELETE_PREVIOUS_WORD       PARSE_COMMAND           TYPE_TEXT
END_OF_LINE                PREVIOUS_WINDOW         UNSTOP_ALL_WINDOWS
ENTER_DIGRAPH              QUIT_IRC                YANK_FROM_CUTBUFFER
ENTER_MENU                 QUOTE_CHARACTER         examples
ERASE_LINE                 REFRESH_INPUTLINE       keys
ERASE_TO_BEG_OF_LINE       REFRESH_SCREEN    
ERASE_TO_END_OF_LINE       SCROLL_BACKWARD    
===========================================================================
Usage: BIND <key> BACKSPACE
  The BACKSPACE function deletes the character to the left of the
  cursor and moves the cursor one space to the left.  If the
  cursor is at the first position in the input line, BACKSPACE
  has no effect.
===========================================================================

Usage: BIND <key> BACKWARD_CHARACTER
  The BACKWARD_CHARACTER function moves the cursor one space to
  the left.  If the cursor is at the first character in the input
  buffer, this function has no effect.
===========================================================================

Usage: BIND <key> BACKWARD_HISTORY
  Replaces the contents of the input buffer with the previous
  command in the command history buffer.  The command history
  buffer is a circular buffer that wraps at the end.
===========================================================================

Usage: BIND <key> BACKWARD_WORD
  Moves the cursor to the first character of the previous word.
  If the cursor is in the middle of a word, the cursor is moved
  to the first character of the same word.  If the cursor is on
  the first character of a word or on whitespace, the cursor is
  moved to the first character of the previous word.
===========================================================================

Usage: BIND <key> BEGINNING_OF_LINE
  Moves the cursor to the first character in the input buffer.
  This need not be the first character visible on the screen,
  since the input buffer wraps when the line gets too long.  This
  is always the first characters in the input buffer.
===========================================================================

Usage: BIND <key> <function> [<string>]
  Binds a keystroke sequence to an IRC function.  The
  QUOTE_CHARACTER key (by default ^Q) may be used to override any
  key binding and have IRC insert the actual value of the key in
  the input line.  
  
See Also:
  BIND KEYS         for information on allowable [key] parameters
  BIND EXAMPLES     for some examples.
  BIND <function>   for help on individual key binding functions
  PARSEKEY
===========================================================================

Usage: BIND <key> CLEAR_SCREEN
  This function will clear the display and restart a screen that 
  has been stopped by HOLD_MODE or by the TOGGLE_STOP_SCREEN
  function.
===========================================================================

Usage: BIND <key> COMMAND_COMPLETION
  The COMMAND_COMPLETION function will cause IRCII to attempt to
  complete the command you have typed in the input line.  If a
  match is found, it is expanded to its full length in the input
  line.  If multiple matches are found, the complete list of
  matching commands is displayed.  If no match is found, the
  input line is left unchanged.
===========================================================================

Usage: BIND <key> DELETE_CHARACTER
  Deletes the character under the cursor.  The cursor is not
  moved by this operation.  If the cursor is at the end of the
  input buffer, this function has no effect.
===========================================================================

Usage: BIND <key> DELETE_NEXT_WORD
  Deletes from the cursor position to the end of the next word.
  If the cursor is in the middle of a word, all characters from
  the cursor position to the end of the word are deleted.  If the
  cursor is on whitespace, all following whitespace up through
  the end of the next word is deleted.
===========================================================================

Usage: BIND <key> DELETE_PREVIOUS_WORD
  Deletes to the beginning of the previous word.  If the cursor
  is in the middle of a word, all characters from the left of the
  cursor to the beginning of the word.  If the cursor is on
  whitespace, all whitespace through to the beginning of the
  previous word are deleted.
===========================================================================

Usage: BIND <key> END_OF_LINE
  Moves the cursor to the last character of the input buffer.
===========================================================================

Usage: BIND <key> ENTER_DIGRAPH
  The ENTER_DIGRAPH function allows you to enter digraphs or
  compose letters not normally available on your keyboard.  If
  you have not made any changes to the internal digraph table
  (using DIGRAPH), you could for example enter a German sharp
  "s";  enter the key to activate the ENTER_DIGRAPH function,
  followed by two "s".  Note that, in order to display this
  character on your screen, your terminal must be capable of
  doing so.  If you, for instance, have an American 7-bit ASCII
  terminal, and have informed ircII of this (by entering the
  command "SET TRANSLATION ASCII"), only a normal "s" will
  displayed, eventhough it will be treated as a German sharp
  "s" internally.

  To view the available digraphs, enter the "DIGRAPH" command
  with no arguments.  By default, ircII uses the same sequences
  as available on Digital VT320/VT420 terminals as well as in
  the editor Elvis.

See Also:
  DIGRAPH
  SET TRANSLATION
===========================================================================

Usage: BIND <key> ENTER_MENU
  Enters the menu what was loaded by MLOAD and set into MENU.

See Also: 
  MENUS
  SET MENU
  MLOAD
===========================================================================

Usage: BIND <key> ERASE_LINE
  Erases the contents of the input buffer, leaving it very empty.
===========================================================================

Usage: BIND <key> ERASE_TO_BEG_OF_LINE
  Erases from the cursor position to the beginning of the input line.
===========================================================================

Usage: BIND <key> ERASE_TO_END_OF_LINE
  Erases from the cursor position to the end of the input buffer.
===========================================================================

Usage: BIND <key> FORWARD_CHARACTER
  Moves the cursor to the right one position.  If the cursor is
  at the end of the input buffer, this function has no effect.
===========================================================================

Usage: BIND <key> FORWARD_HISTORY
  Replaces the contents of the input buffer with the next entry
  in the command history buffer.  The command history buffer is
  circular and wraps at the end.
===========================================================================

Usage: BIND <key> FORWARD_WORD
  Moves the cursor to the end of the next word.  If the cursor is
  in the middle of a word, it is moved to the end of that word.
  If the cursor is already at the end of a word or on whitespace,
  it is moved to the end of the next word.
===========================================================================

Usage: BIND <key> HELP_CHARACTER
  This shows help on the current input buffer without disturbing
  the contents of the buffer.  It is as though you had typed
  HELP followed by whatever is in the input buffer.
===========================================================================

Usage: BIND <key> META1_CHARACTER
  This function switches to an "alternate" keymap.  That is,
  after this character is hit, the next key hit can have a new
  definition.  This is how the Escape sequences are done.  In
  fact, the escape key's default binding is META1_CHARACTER.  For
  example:
    BIND ^X META1_CHARACTER
  binds this function to ^X.  You may then bind meta key
  sequences with either of the two following formats:
    BIND ^X? HELP_CHARACTER
  or
    BIND META1-? HELP_CHARACTER
===========================================================================

Usage: BIND <key> META2_CHARACTER
  This function switches to an "alternate" keymap.  That is,
  after this character is hit, the next key hit can have a new
  definition.  This is how the Escape sequences are done.  In
  fact, the escape key's default binding is META1_CHARACTER.  For
  example:
    BIND ^X META2_CHARACTER
  binds this function to ^X.  You may then bind meta key
  sequences with either of the two following formats:
    BIND ^X? HELP_CHARACTER
  or
    BIND META2-? HELP_CHARACTER
===========================================================================

Usage: BIND <key> META3_CHARACTER
  This function switches to another "alternate" keymap.  That is,
  after this character is hit, the next key hit can have a new
  definition.  This is how the Escape sequences are done.  In
  fact, the escape key's default binding is META1_CHARACTER.  For
  example:
    BIND meta1-[ META3_CHARACTER
  binds this function to ^[[.  You may then bind meta key
  sequences with either of the two following formats:
    BIND ^[[A BACKWARD_HISTORY
  or
    BIND META3-A BACKWARD_HISTORY
  Works just like the META1_CHARACTER and the META2_CHARACTER but the
  default binding is meta1-[   which is very useful for binding arrow
  keys and other escape sequences.
===========================================================================

Usage: BIND <key> META4_CHARACTER
  The META4_CHARACTER is just like the other meta keys except that it
  is now sticky. That is, Meta4-C-D-E-F-G invokes the
  meta4 versions of C, D, E, F and G. This effect lasts until
  meta4 is invoked again. Additionally, the Meta4 characters
  ^h, SPACE, h, i, j, k, x, H, I, J, K, L and X have been
  bound in such a way that BIND ^[ META4_CHARACTER now
  gives a vi editing mode.

  It will stay 'stuck' until it is unstuck with any key bindings that
  happen to activate the META4_CHARACTER.
===========================================================================

Usage: BIND <key> NEXT_WINDOW
  Switches the "current window" to be the next window in the
  window list.  This is the window "below" the current window on
  the screen.  At the bottom of the screen, this will jump to the
  top most window on the screen.
===========================================================================

Usage: BIND <key> NOTHING
  The NOTHING function does nothing.  Effectively, it disables
  the key it is bound to (to which it is bound for you
  grammatical types).
===========================================================================

Usage: BIND <key> PARSE_COMMAND <string>
  The PARSE_COMMAND function cause the supplied string to be
  executed as an ircII command (or alias). It doesn't need to be
  prefixed by the command character. This function does not disturb
  the contents of the input line and is not added to the command history.
  You may also include any of the special $ sequences available in ALIAS
  and they will be expanded before the line is parsed.  The
  sequences that deal with command line arguments ($*, $n, $-n)
  are expanded as though there were no command line arguments.

See Also:
  ALIAS
  ircII programming
===========================================================================

Usage: BIND <key> PREVIOUS_WINDOW
  Switches the "current window" to be the previous window in the
  window list.  This is the window "above" the current window on
  the screen.  At the top of the screen, this will jump to the
  bottom most window on the screen.
===========================================================================

Usage: BIND <key> QUIT_IRC
  Exit irc and return to whatever excuse for a shell you're
  using.  Sorry.  Didn't mean that.
===========================================================================

Usage: BIND <key> QUOTE_CHARACTER
  This function "quotes" the next key hit.  What this really
  means is that it overrides the key binding for the next key and
  forces it to insert itself into the input buffer.  For example,
  if you have Control D bound to delete character, and you hit
  the quote character (defaults to Control Q) then Control D, it
  will insert a Control D (shows up as an inverse video D) and
  does not delete the character.  Got it?
===========================================================================

Usage: BIND <key> REFRESH_SCREEN
  Amazingly, this refreshes the input line, in case some other nasty
  program has munged it up.
===========================================================================

Usage: BIND <key> REFRESH_SCREEN
  This redraws the screen, in case some other nasty program has
  munged it up.
===========================================================================

Usage: BIND <key> SCROLL_BACKWARD
  When SCROLL is set on, this will allow you to scroll back through
  your lastlog entries 1/2 page at a time.  The default binding for
  this is meta1-p.  A key must be bound to SCROLL_END to exit this
  (default meta1-e).  It is suggested that you have HOLD_MODE set on
  or otherwise when you get out of the history all your new messages
  will flash by.

See Also:
  BIND SCROLL_FORWARD
  BIND SCROLL_END
  BIND SCROLL_START
===========================================================================

Usage: BIND <key> SCROLL_END
  This binding is absolutely necessary if you plan to use
  the features found with SCROLL_BACKWARD and SCROLL_FORWARD.
  It allows you to exit from the viewing of the lastlog.
  It is the counterpart of SCROLL_START.  Default binding is
  meta1-e.

See Also:
  BIND SCROLL_START
  BIND SCROLL_FORWARD
  BIND SCROLL_BACKWARD
===========================================================================

Usage: BIND <key> SCROLL_FORWARD
  When SCROLL is set on, this will allow you to move forward through
  your lastlog entries 1/2 page at a time.  This is after you have
  entered the lastlog viewing mode with SCROLL_BACKWARD. The default
  binding for this is meta1-n  a key must be bound to SCROLL_END to
  exit this (default meta1-e).  A good way to use this is to use
  SCROLL_START and then SCROLL_FORWARD to the end of the lastlog.
  It is suggested that you have HOLD_MODE set on or otherwise when
  you get out of the history all your new messages will flash by.

See Also: 
  BIND SCROLL_BACKWARD
  BIND SCROLL_END
  BIND SCROLL_START
===========================================================================

Usage: BIND <key> SCROLL_START
  This binding allows you to go to the start of the lastlog
  buffer immediately, rather than using SCROLL_BACKWARD
  a heap of times.  It is the opposite of SCROLL_END.
  Default binding is meta1-<.

See Also:
  BIND SCROLL_END
  BIND SCROLL_FORWARD
  BIND SCROLL_BACKWARD
===========================================================================

Usage: BIND <key> SELF_INSERT
  Causes the key it is bound to to insert itself into the input
  buffer.  This is the default binding for the alphabet keys,
  numbers, etc.  If this is bound to a meta sequence, it will
  only insert the last key hit in the meta sequence.

Note:
  This is how you "unbind" a key.  
===========================================================================

Usage: BIND <key> SEND_LINE
  This "sends" the input buffer to the server.  Well, really it
  first expands aliases, etc...  but you get the idea.  It is
  normally bound to the return key or enter key...  or both.

See Also:
  SENDLINE
===========================================================================

Usage: BIND <key> STOP_IRC
  Sends a Stop signal to IRC II, returning you to the shell.
  Normally, you can then return to IRC II by typing fg.  Please
  read about your shell to find out about this.  The default 
  binding for stop_irc is meta2-^Z or for most people ^X^Z
===========================================================================

Usage: BIND <key> SWITCH_CHANNELS
  Changes the current channel for the current window.  This will
  only switch to a channel not currently directed to another
  window.  That is, if you are on three channels, #Foo, #Bar,
  and #Cheese, and #Foo and #Bar are currently directed to two
  windows but #Cheese isn't, then SWITCH_CHANNELS will only
  toggle between #Cheese and either #Foo or #Bar (depending upon
  which window this is done in)
===========================================================================

Usage: BIND <key> TOGGLE_INSERT_MODE
  Toggles the INSERT_MODE variable.  This function is equivalent
  to doing:  
    SET INSERT_MODE TOGGLE
===========================================================================

Usage: BIND <key> TOGGLE_STOP_SCREEN
  Stops and starts the screen display if it is scrolling madly
  out of your control.  The display is also restarted after the
  SEND_LINE function is executed.
===========================================================================

Usage: BIND <key> TRANSPOSE_CHARACTERS
  Swaps the two characters before the cursor. Thats all.
===========================================================================

Usage: BIND <key> TYPE_TEXT <string>
  Causes the given string to be typed into the input buffer using
  the current setting of the INSERT_MODE variable.
===========================================================================

Usage: BIND <key> UNSTOP_ALL_WINDOWS
  When activated, all currently stopped windows will be restarted.
===========================================================================

Usage: BIND <key> YANK_FROM_CUTBUFFER
  Restores the last deleted thing.  The following functions store
  what they deleted to the cutbuffer:
    DELETE_NEXT_WORD
    DELETE_PREVIOUS_WORD
    ERASE_LINE
    ERASE_TO_END_OF_LINE
===========================================================================

Examples of the BIND function:

    BIND ^X META2_CHARACTER
  Makes control X a meta key.

    BIND ^Xl parse LIST
  Binds the meta sequence control X followed by l to perform a LIST.
  This binding is only valid if ^X was previously bound
  to a meta function (as was done in the first example).

    BIND META1-u BACKWARD_HISTORY
  by default, the escape key is bound to META1_CHARACTER, so this
  binding makes the escape u key sequence show the last command
  history entry.  Note that more than one key may be bound to
  *any* function.

    BIND ! type Bang!
  This binds the ! (exclamation mark) to type the word "Bang!"
  into the input line whenever it is hit.

    BIND META1-[ meta2
    BIND meta2-A BACKWARD_HISTORY
    BIND meta2-B FORWARD_HISTORY
    BIND meta2-D BACKWARD_CHARACTER
    BIND meta2-C FORWARD_CHARACTER
  This sequence would bind your arrow keys to the functions listed.
===========================================================================

Allowable key sequences for use with the BIND function:
  c          where c is any key (case sensitive)
  ^c         where c is one of A thru Z or one of
             the following quoted set '?[]\^@'
             (^? == delete key)
  METAn-c    where n is 1, 2, 3 or 4 and c is the same as the 
             first form above
  METAn-^c   where n is 1, 2, 3 or 4 and c is the same as the
             second form above
  mc         where m has been previously bound to META1_CHARACTER,
             META2_CHARACTER, META3_CHARACTER, or META4_CHARACTER 
             and c is the same as the first form above.  m may be 
             either of the first two forms above (m or ^m).
  m^c        where m has been previously bound to META1_CHARACTER
             META2_CHARACTER, META3_CHARACTER, or META4_CHARACTER
             and c is the same as the second form above.  m may be
             either of the first two forms above (m or ^m).
===========================================================================

BYE:
See QUIT for more information about BYE.
===========================================================================

CD:
Usage: CD [<path>]
  If a <path> is specified, this changes ircIIs working directory. 
  This is the default directory for EXEC's and other things
  (such as logs) that don't have absolute paths specified.
  CD with no arguments shows you the current directory.

See Also:
  WHICH
===========================================================================

CHANNEL:
See JOIN for more information about CHANNEL.
===========================================================================

CLEAR:
Usage: CLEAR [-ALL]
  Clears the current window.
  If the -ALL flag is used, clears all visible windows.
===========================================================================

COMMENT:
Usage: COMMENT [<anything you want>]
  This is a comment, it does nothing.
  Useful in .ircrc files.

  COMMENT, : and # are identical in operation.
===========================================================================

CONNECT:
Usage: CONNECT <serverX> [[<port>] <serverY>]
  Tells <serverY> to attempt to connect to <serverX> on port <port>
  with <port> defaulting to the default port for that server
  (probably 6667) and <serverY> defaulting to the local server

  CONNECT is a server operator command.

See Also:
  SQUIT
  TRACE
===========================================================================

CTCP:
ACTION        CTCP      FINGER    TIME      UTC
CLIENTINFO    ECHO      PING      USERINFO  VERSION
===========================================================================
Usage: CTCP <nick> ACTION <action description>
  This command can be used to send a description of what you are doing
  or how you are feeling or just about anything concerning you, to the
  current channel or query.  It's just the low-level version of ME and
  DESCRIBE.

See Also:
  ME
  DESCRIBE
===========================================================================

Usage: CTCP <nick> CLIENTINFO [<ctcpcommand>]
  CLIENTINFO returns the known CTCP commands from another client in a list.
  You can inspect commands further by calling 'CLIENTINFO VERSION' for
  example. You will (or should) be given a one-line explanation of
  what this command is supposed to do.

  To find out about your own client services, execute a CLIENTINFO
  on yourself: CTCP mynick CLIENTINFO

Warning:
  Some CTCP commands are not supposed to be sent by hand,
  in particular ERRMSG, DCC, and SED.
===========================================================================

Usage: CTCP <nick> <command> [<args>]
  CTCP allows you access to the client-to-client protocol used
  to perform certain client specific actions between different
  clients on the network.  The CTCP mechanism works by sending
  a specially coded message to another user whose client is
  supposed to reply with a reply message of the type, or with
  an error message, unless you sent it to a channel.

  For example, if you do:
    CTCP BigCheese VERSION
  you will receive:
    *** CTCP REPLY VERSION from BigCheese: ircII 2.2.2 *IX.

  The <command> field may be of several types, new ones are
  introduced all the time, but there is a mechanism for you to
  find out what you can use: see CLIENTINFO.
  If the nickname is "*" the output is sent to the current channel.

See Also:
  CTCP CLIENTINFO
  ON CTCP
  ON CTCP_REPLY
===========================================================================

Usage: CTCP ECHO <nick> <text>
  Simply asks the remote client to return whatever <text> you send to it.
===========================================================================

Usage: CTCP <nick> FINGER
  FINGER will attempt to show the real name and idle time for the
  specified nickname.
===========================================================================

Usage: CTCP PING <nick> <current time>
  Current time is the same as what the function $TIME() returns and
  represents the number of seconds since Jan 1, 1970.  Other ircII
  clients will take a CTCP ping and bounce the time back to you.
  This CTCP function is used by the PING command.

See Also:
  PING
===========================================================================

Usage: CTCP <nick> TIME
  TIME will return the current time for the nickname specified.
  This differs from the /TIME command in that it asks the user's
  client for the time instead of the user's server, which can 
  be a long distance away.
===========================================================================

Usage: CTCP <nick> USERINFO
  USERINFO returns whatever information a person choses to put in their
  USER_INFORMATION variable.  

See Also:
  SET USER_INFORMATION
===========================================================================

Usage: CTCP <nick> UTC <system time>
  This is primarily for robots to send date and time information
  to users and have it displayed in local time. The format of the
  UTC CTCP is:
    UTC number
  where number is the ASCII representation of the 32 bit
  integer representing the time as is used on UNIX machines.
  When IRCII receives this CTCP, it replaces the text of
  the local time expressed in the local language back into
  the original message. Thus if you send the following:
    NOTICE nick The time is ^AUTC 702777074^A
  The user might see:
    -yournick- The time is Thu Apr  9 09:51:14 1992
  (if their timezone is Australian Eastern Standard Time).
  Obviously you can use the $TIME() function here effectively.
===========================================================================

Usage: CTCP <nick> VERSION
  VERSION will show you the version of the client that a particular
  person is using.

Note:
  SL0 means Script Level 0
===========================================================================

DATE:
Usage: DATE [<server>|<nickname>]
  Shows the current time of day and date.  If a server is specified,
  the time of day and date are reported from that server.
  If a nickname is specified it shows you the above information
  for that person's current server.

  DATE and TIME are identical.
===========================================================================

DCC:
CHAT   CLOSE   DCC   GET   LIST   RAW   RENAME   SEND   TALK   TMSG
===========================================================================
Usage: DCC CHAT NICK
  DCC CHAT initiates a direct client connection chat to the given
  nick, who must respond with DCC CHAT. This is the most secure
  form of communication available on IRC. Messages sent via a DCC
  CHAT connection are not sent through IRC, but are sent by a direct
  connection between your client and the remote client. Messages
  are sent over a DCC CHAT connection with /MSG =nick

See Also:
  MSG
===========================================================================

Usage: DCC CLOSE <type> <nick> [<arguments>]
  DCC CLOSE closes an unwanted DCC connection or offer. The type,
  nick and arguments are the same as those shown by DCC LIST.
  If the arguments are not specified, the oldest connection of
  the specified type is closed.

See Also:
  DCC LIST
  DCC RENAME
===========================================================================

Usage: DCC [<function> [<arguments>]]
  DCC handles direct connections to remote clients.
  The behaviour of DCC is determined by the FUNCTION specified.
  DCC called with no function is the same as DCC LIST

See Also:
  DMSG
  ALIAS functions ($connect() and $listen())
===========================================================================

Usage: DCC GET <nick> <filename>
  DCC GET accepts a file transfer by direct client connection.
  If the filename is not supplied then it defaults to the first
  file offered by that nickname.
  The sender must first have offered the file with DCC SEND.

See Also:
  DCC RENAME
  DCC SEND
===========================================================================

Usage: DCC LIST
   DCC LIST lists all the current DCC connections showing the type
   of connection, the nick of the person on the other end of the
   connection, the current state of that connection and any other
   information associated with that connection.

See Also:
  DCC CLOSE
===========================================================================

Usage: DCC RAW <fd> <host> <message>
  After a connection has been established with the $CONNECT()
  function DCC RAW is used to talk to that connection.  
  $CONNECT(HOST PORT)  returns the (fd) of the connection 
  which is then used by DCC RAW. E.g:
    ALIAS socktest ECHO $connect(host 7)
  Which will echo the file descriptor.

  Then send messages to it with:
    DCC RAW fd host message

  These will be echoed back at you by the remote host.
  Incoming messages can be intercepted with ON DCC_RAW.

See Also:
  ON DCC_RAW
  ALIAS FUNCTIONS
===========================================================================

Usage: DCC RENAME <nick> [<filename1> [<filename2> ...]]
  DCC RENAME renames a file prior to a DCC GET from filename1 to
  filename2. If filename1 is not specified, the oldest file
  connection to the given nick is renamed.

See Also:
  DCC GET
  DCC LIST
===========================================================================

Usage: DCC SEND <nick> <filename>
  DCC SEND initiates a file transfer by direct client connection.
  The recipient must accept your offer of a file transfer with
  DCC GET.

See Also:
  DCC GET
===========================================================================

Usage: DCC TALK <user>[@<host>]
  DCC TALK initiates a talk connection to the user at the named host,
  or responds to one initiated by that user if one exists. Messages
  are sent across a DCC TALK connection with DCC TMSG or MSG @user

See Also:
  DCC CHAT
  DCC TMSG
  MSG
===========================================================================

Usage: DCC TMSG <user>[@<host>]
  DCC TMSG sends a message across a talk connection to the given
  user. If only one connection with the given username exists, the
  host need not be supplied. Another way of doing this is with
  MSG @user[@host].

See Also:
  DMSG
  MSG
  DCC TALK
===========================================================================

DEOP:
Usage: DEOP
  Removes your IRC operator status.

See Also:
  OPER
  MODE
===========================================================================

DESCRIBE:
Usage: DESCRIBE <nickname>|<channel> <action description>
  This command can be used to send a description of what you are doing
  or how you are feeling or just about anything concerning you, to the
  person or channel you pass as first argument.

    DESCRIBE BigCheese takes a flask of whisky out of the fridge.
  is supposed to produce a line on BigCheese's screen stating:
     * Lynx takes a flask of whisky out of the fridge.

  This command makes use of CTCP and is not understood by all clients.
  If you get an error message, your description has not arrived properly.

See Also:
  ME
  LOAD ACTION
  LOAD MUDLIKE
  CTCP
  CTCP ACTION
  CTCP CLIENTINFO
===========================================================================

DIE:
Usage: DIE
  Causes your server to exit, die, pack it in, give up the ship,
  kick the bucket, etc.
  DIE is a server operator command.

2.8 Servers:
  DIE may not work anymore on 2.8 servers.
===========================================================================

DIGRAPH:
Usage: DIGRAPH [-<flag> [<arg0> <arg1> ...]]
  A command for maintaining the internal digraph table.  See
  BIND ENTER_DIGRAPH for information on entering digraphs.

  Use the DIGRAPH command without any arguments to display the
  current digraph table.  Note that if you are using a map
  other than Latin-1, (your TRANSLATION variable is set to
  something else than LATIN-1), many characters might be
  converted on the screen to something that your terminal is
  capable of displaying.

Available flags:
  -ADD <arg0> <arg1> <arg2>
    Adds a digraph to the table, where <arg0> and <arg1> are the two
    characters that should result in the digraph represented by the
    character <arg2>. The arguments can be given in several formats.
      DIGRAPH -ADD a b c
    will result in a digraph entry for the letter "c", that will be given
    by composing the letters "a" and "b".
      DIGRAPH -ADD a b !c
    would result in a digraph entry for the letter represented by an "a"
    with a tilde above, which is the same as "c" with MSB (bit 8) set in the
    ISO 8859/1 map.  The very same result is achieved with
      DIGRAPH -ADD 61 62 227
    thus giving the values in directly in decimal.
    All modes can be combined.

  -REMOVE <arg0> <arg1>
    Removes a digraph entry in the table, in a similar fashion as
    DIGRAPH -ADD.

  -CLEAR
    Removes ALL digraph entries from the table.
    Use this command only if you know what you are doing.
    It's primary use is when loading the .ircrc file.

  If you do any changes in the digraph table, using -ADD,
  -REMOVE or -CLEAR flags, they will be recorded in your .ircrc
  file if you chose to save it.

See Also:
  BIND ENTER_DIGRAPH
  SET TRANSLATION
===========================================================================

DMSG:
Usage: DMSG <nickname> <text>
  DMSG is an alias for MSG =<nickname>, and as such sends a message
  across a DCC CHAT connection.  If you don't install the 'script'
  directory then this command will not work.

See Also:
  MSG
  DCC CHAT
===========================================================================

DQUERY:
Usage: DQUERY [<nickname>]
  DQUERY is an alias for QUERY =<nickname>, thus allowing you
  to QUERY a DCC CHAT connection.

See Also:
  DCC CHAT
  MSG
  QUERY
===========================================================================

ECHO:
Usage: ECHO [<anything you want>]
  This simply displays all of it's arguments.  However, it's not
  that simple.  ECHO will work even if DISPLAY is set to OFF,
  making it useful in your .ircrc file.  Also, ECHO will work in
  the action portion of an ON command in all modes.  This can be
  used to redefine the way messages appear.

See Also:
  ON
  SET DISPLAY
  XECHO
===========================================================================

ENCRYPT:
Usage: ENCRYPT [<nickname>|<channel> [<key>]]
  ENCRYPT allows you to hold an encrypted conversations with 
  a person or a whole channel.  Once a nickname/channel and
  key is specified, all messages you send to that 
  nickname/channel will automatically be encrypted using the
  given key.  Likewise, any messages from that nickname/channel
  will automatically be decrypted. ircII is smart enough to know
  if the incoming message isn't encrypted and will not attempt to 
  decrypt it.  If you received an encrypted message from someone
  for whom you haven't specified a key, it will be displayed as
  [ENCRYPTED MESSAGE].

  The <key> can be any text which is to be used an they key 
  for encryption/decryption of the conversation.  It is up to
  you and the people you wish to talk to about how to agree upon 
  a key and how to communicate it to one another.

  For example, if user CheeseDog wishes to talk encryptedly with
  user DogCheese, they must first agree on an encryption key
  (case sensitive), say foo.  Then user CheeseDog must issue a
    ENCRYPT DogCheese foo
  and user DogCheese must issue a 
    ENCRYPT CheeseDog foo
  Thereafter, all messages sent between CheeseDog and DogCheese
  will be encrypted and decrypted automatically.  

  If ENCRYPT is given with a nickname but no key, then encrypted
  conversation is ended with that user.  If ENCRYPT is given with
  no arguments, the list of encrypted user and keys are
  displayed.

  IrcII uses a built in encryption method that isn't terribly secure.
  You can use another if you so choose, see SEE ENCRYPT_PROGRAM
  for information about this.
 
  If you are sending encrypted messages to a user or channel, you
  can toggle it off and on in a message line by inserting the
  control-E character in the input line.  This is usually done
  by hitting control-Q then control-E.  An inverse video E will
  appear in the input line.  

Note:
  Control-q is bound (see BIND) to quote_character by default.
  It is frequently necessary to change this to some other char.

See Also:
  SET ENCRYPT_PROGRAM
===========================================================================

EVAL:
Usage: EVAL <commands>
  EVAL passes the commands through the inline parser and executes them.
  This means that variables are expanded, and ;'s are honored.  

Note:
  You HAVE to use EVAL in a script if you want it to expand 
  aliases and vars while it loads. The value of INPUT_ALIASES is
  ignored when loading scripts.

See Also:
  LOAD
  SET INPUT_ALIASES
===========================================================================

EXEC:
Usage: EXEC <shell commands>
       EXEC -NAME <name> <shell commands>
       EXEC -OUT [%<process id>|<shell commands]
       EXEC -MSG <nickname> [%<process id>|<shell commands>]
       EXEC -NOTICE <nickname> [%<pocess id>|<shell commands>]
       EXEC -IN %<process id> <text to send to process>
       EXEC -WINDOW [%<process id>|<shell commands>]
       EXEC -<signal> %<process id>
       EXEC -CLOSE %<process id>

  EXEC allows you to start subprocesses in ircII and manipulate
  them in various ways.  You can start multiple subprocesses
  simultaneously and access them via a process number assigned
  by ircII.  You can list all currently running subprocesses by
  using EXEC with no parameters.  The process id of a process
  is the number assigned by ircII for that process, or the 
  name of the process given by the -NAME flag.  If a NAME is 
  given to a process, that name may be used anyway in place of
  the process number assigned by ircII.

  The first form of EXEC will simply start a subprocess and send
  it's output to your display.

  The second form tells IRCII to send the output of the process
  to your current channel.  For example:
    EXEC -OUT ls
  sends the output of ls to your channel.  
    EXEC -OUT %1
  tells ircII to send the output of subprocess 1 to your channel.
  Subprocess 1 must exist already by a previous call to EXEC.

  The third form is much like the second, except that it sends
  to the specified nickname or nicknames (the format of the
  nicknames is the same as for MSG).  As with the second form,
  you can start a subprocess with -MSG, or you can change an
  already running process to send it's output to the given nicknames.

  The fourth form is identical to the first, except the messages
  are send as NOTICEs not as PRIVMSG's.

  The fifth form lets you send a line of input to a running
  subprocess.  For example:
    EXEC -IN %shell This is a test.
  Sends "This is a test." to subprocess 0.  This processes must
  have previously been started with a call to EXEC -NAME shell. 
  An alternate method of sending text to processes is using the 
  MSG or QUERY command.  In the place of a nickname, you may 
  specify %n, when  n is a current running processes id.   For 
  example:
    MSG %shell This is a test.
  is equivalent to the previous example.

  The sixth form lets you specify that you want all output from
  the process to go to the current window.  Normally, output
  from processes goes to whichever window has a level setting of
  CRAP.  This locks the output into the current window.  
    EXEC -WINDOW %1
  Sends the output of process 1 to the current window.

  The last form lets you send various signals to subprocesses.
  The allowable signals are:
    HUP     INT     QUIT     ILL     TRAP     IOT     EMT
    FPE     KILL    BUS      SEGV    SYS      PIPE    ALRM
    TERM    URG     STOP     TSTP    CONT     CHLD    TTIN
    TTOU    IO      XCPU     XFSZ    VTALRM   PROF    WINCH
    LOST    USR1    USR2
  What these signals do depends on the process running, etc.
    EXEC -KILL %0
  Sends a KILL signal to process 0, forcing it to exit
  immediately.  If you want to read more about these signals, do
  a "man kill" at your shell prompt.

  The last form is for really ornery processes that simply won't
  die.  Sometimes this is because an EXEC'd process has forked
  off subprocesses which don't die when you use -KILL (or other
  flag).  Doing a:
    EXEC -CLOSE %0
  closes all of ircII's connections to that processes.  This means 
  that even if the processes is still sending output you won't see
  it.  This also means (in most cases) that the process will be
  killed by a SIGPIPE when it tries to send to ircII.

See Also: 
  SET SHELL
  SET SHELL_FLAGS
  SET SHELL_LIMIT
  SET NOTIFY_ON_TERMINATION    
===========================================================================

EXIT:
See QUIT for more information about EXIT.
===========================================================================

FLUSH:
Usage: FLUSH
  Flushes all pending output from the server.  This has the
  effect of stopping long lists from the server, such as a LINKS
  command which can get quite lengthy.  It also flushed any 
  output pending from the client itself.  It is useful for 
  wiping away anything pending when you have HOLD_MODE set.
===========================================================================

FOREACH:
Usage: FOREACH <structure> <variable> { <commands> }
  This causes <commands> to be executed once for each 
  element in the structure.  The aliases inside the {} 
  are not expanded until execution unless the leading { 
  is quoted like \{
  Here are a couple examples of basic foreach commands.
    assign blue.1 one
    assign blue.2 two 
    assign blue.3 three
    foreach blue ii { echo $ii $blue[$ii] }
  will return
    1 one
    2 two
    3 three
  FOREACH can also be imbedded such as in the following example.
    assign blue.1.1 one one
    assign blue.1.2 one two
    assign blue.2.1 two one
    assign blue.2.2 two two
    alias showblue {
      foreach blue ii
      {
        foreach blue.$ii jj
        {
      echo $ii $jj $blue[$ii][$jj]
        }
      }
    }
  And /showblue returns.. 
    1 1 one one
    1 2 one two 
    2 1 two one
    2 2 two two

Note:
  When using this format the {} in the foreach must be on separate 
  lines by themselves.  This is true for IF and WHILE as well.

  Notice that variable names 'ii' and 'jj' were used.  Any name can
  be used for the index but keep in mind that single letter vars can
  interfere with the built in single char vars.  See ALIAS special

See Also:
  expressions
  ALIAS special
===========================================================================

HELP:
Usage: HELP [<command> [<subcommands>]]
  Shows help on the given command.  The help documentation is 
  set up in a hierarchical fashion.  That means that certain
  help topics have sub-topics under them.  For example, doing
    HELP ADMIN
  gives help on the admin command, while:
    HELP SET
  gives help on the set command and also displays a list of
  sub-topics for SET.  If you are using a help service, like
  help_US or help_AU, then to get help on the subtopics, you would do:
    HELP SET <subtopic>
  where <subtopic> is one of the subtopics.  If you are using the 
  built in help, then you need only type the subtopic name.  The
  input prompt will indicate what help level you are on.  Hitting
  return will move you up one level.  

  At any time, you can specify a ? to get a list of subtopics 
  without the associated help file, for example:
    HELP ?
  gives a list of all main help topics.  The following:
    HELP BIND ?
  gives the list of all BIND subtopics.  If you use a ? with 
  a topic that has no subtopics, you will simply get the 
  standard help file for that topic.

Note:
  Case is unimportant even when viewing the lower case
  filenames such as 'newuser' or 'intro'.

See Also:
  intro
===========================================================================

HISTORY:
Usage: HISTORY [<number>]
  Displays the command history to the screen.  You can specify
  the number of history entries you wish to view as well.

See Also:
  SET HISTORY
===========================================================================

HOOK:
Usage: HOOK <anything you want>
  This command sends <anything you want> in such a way that it can
  be caught by
    ON HOOK "anything you want"
  or any regular ON syntax. E.g. if you have
    ON HOOK * echo one $* three
  and you send
    HOOK two
  it will display "one two three" as the ON is activated.
  This is useful if you want to put a special hook in a script or 
  alias that you can act upon with an ON HOOK or ignore at will.

See Also:
  ON
  ON HOOK
===========================================================================

IF:
Usage: IF (<variable-expression>) {<true-command/s>} [{<false-command/s>}]
  IF tests the value of the variable expression for truth. An
  expression is true if it is either a non empty string or a non
  zero number. If the expression is true, the true-commands are
  executed. If it is false, and the false-commands are given, they
  are executed. Usually the expressions will be formed by using
  combinations of the following:
    ( exp )                  ( exp1 ^^ exp2 )
    ( exp1 == exp2 )         ( exp1 >= exp2 )
    ( exp1 != exp2 )         ( exp1 <= exp2 )
    ( exp1 >  exp2 )         ( exp1 || exp2 )
    ( exp1 <  exp2 )         ( exp1 && exp2 )
        
  Here exp is evaluated as though it were in ${} which means that 
  if (blah)  expands the contents of $blah.  Numbers are treated 
  as constants and thus to expand $0 it must be passed to the 
  regular parser with [].   eg.  IF ([$0]) ...

  IF (!exp)  is also possible which will negate a number or a string.
  In the other expressions, if both exp1 and exp2 expand to numbers, 
  then the following cause true-command to be executed:
    ==     if exp1 is equal to exp2
    !=     if exp1 is not equal to exp2
    >      if exp1 is greater than exp2
    <      if exp1 is less than exp2
    >=     if exp1 is greater than or equal to exp2
    <=     if exp1 is less than or equal  to exp2
    ^^     Logical XOR of exp1 and exp2 (1 ^^ 1) == 0 
           (1 ^^ 0) or (0 ^^ 1) == 1
    ||     Logical OR of exp1 and exp2
    &&     Logical AND or exp1 and exp2

  Otherwise, false-command (if present) is executed.
  If both exp1 and exp2 are non-numeric, then the above operations
  are string value comparisons.  And for the logical operations 
  A NULL string is treated as 0 with the possible exception of the ^^
  operator.

  To put a string in an expression it must be passed to the 
  regular parser with [].   eg IF ([string1] == [string2]) ..
  All string comparisons are case-insensitive: so ([Hello]==[HELLO])
  is true.  

  Examples:
    IF (C) { set input_prompt $C } { set -input_prompt }
    IF (C!=0) { set input_prompt $C } { set -input_prompt }

  Both of the above evaluate the same way, since $C will either expand 
  to your current channel or 0 if none.  Notice the (C) format which 
  means that it will expand exactly like ${C}.
 
  $ expansion is always performed on the contents of an the true-commands
  and false commands, regardless of the setting of the INPUT_ALIASES
  variable. 

    IF (USER==[ms5n]) { echo Hello Mike! } { echo Who the hell are you? }

  This example will look for an ASSIGN'd variable named USER, and if found
  replace it and compare to ms5n.  If no ASSIGN'd variable exists, it
  will check the environment variables for USER and return that.  

    IF (index > max*2) { echo Limit reached }
  This checks the ASSIGN'd variable against the ASSIGN'd variable
  max times 2 and displays "Limit reached" if the first is greater than
  the second. It does nothing if this is not true.

  IF's can now be imbedded within each other. It is inconvient to write it 
  out on a single line, so I will show the format needed in a script file.

  if (time() - lasttime > 600)
  {
    if (thud == [gone home])
    {
      echo Bill went home over ten minutes ago
      echo $stime($time())
    }
    {
      echo Bill is still here.
    }
  }

  This will first expand the function time() and the ASSIGN'd var 'lasttime'
  to their current values, subtract (seconds) and see if its more than 
  600 seconds, (10 minutes).  If that is true, then it checks to see if the
  ASSIGN'd var 'thud' equals the string "gone home".  If that is ALSO true
  then it will echo "Bill went home over ten minutes ago" and the current
  date and time.  If the second IF is not true then it will display
  "Bill is still here.".   Note there is no 'false' clause for the first
  IF.

See Also:
  @
  FOREACH
  WHILE
  expressions
===========================================================================

IGNORE:
Usage: IGNORE [<nick>] [-|+|^][<message type>]
       IGNORE [<user@host>] [-][<message type>]

  The standard form of IGNORE allows you to specify which type of
  messages you wish to ignore from a user.  The message type
  parameter can be one of the following:
    MSGS            All MSGs received
    NOTICES         All NOTICEs received
    PUBLIC          All normal channel conversation
    INVITES         All INVITEs received
    WALLOPS         All WALLOPS received
    NOTES           All NOTEs received
    CTCP            All CTCPs received
    CRAP            Anything else
    ALL             All of the above message types
    NONE            No message types

  You can ignore by nickname or by specifying a userid@hostname
  format.  Wildcards may be used in all formats.  You can specify
  multiple types of messages to ignore on the command line.
  Preceeding a type with a - indicates removal of ignoring of
  that type of message.  For example:
    IGNORE BigCheese MSGS INVITES
  ignores MSGs and INVITES from BigCheese.  
    IGNORE *@*.cmu.edu ALL -NOTES
  ignores all types of messages except NOTES from anyone from CMU.

  You may also specify a + before any message type to cause messages
  of that type from that user to be displayed with the nickname
  highlighted.  (See SET HIGHLIGHT_CHAR) For example:
    IGNORE *Cheese* +MSGS
  will cause all MSGs from anyone with Cheese in their nickname
  to appear with their nickname highlighted.  
    IGNORE * +PUBLIC +NOTES
  will highlight all PUBLIC messages and NOTES received.  The + has no 
  effect with the user@host name format.

  If you specify a ^ before a message type, then messages from the
  matching nicknames will be displayed no matter what.  This allows
  you to exclude certain nicknames from larger matching lists.  For
  example:
    IGNORE * MSG
    IGNORE BigCheese ^MSG
  This will ignore private messages from everyone except BigCheese.
  
  All forms of IGNORE use the - to remove ignore attributes,
  and the type NONE will remove the user from the list
  completely.  

  All forms of IGNORE will match against the nickname with the
  most true matching characters.  What this means is if you have:
    IGNORE BigCheese MSGS
    IGNORE * +ALL
  Then MSG's from BigCheese will be ignored, and all other types
  of messages from BigCheese will be unaffected.  All messages
  of all types from any other user will be highlighted.

See Also:
  SET HIGHLIGHT_CHAR
===========================================================================

INFO:
Usage: INFO [<server>]
  Shows information about the IRC creators, debuggers, slaves and 
  a lot of other people who no longer have much to do with irc.
===========================================================================

INPUT:
Usage: INPUT "<prompt>" <command> <args>
  Where it displays "prompt" and then calls command, with args,
  and with the line prompted for as $*.  The use of this is
  strongly encouraged over the use of variable $"..". Similar
  problems that occur in /wait. E.g:
    ALIAS ex INPUT "Enter shell command >" exec $$*
===========================================================================

INVITE:
Usage: INVITE <nickname> [<channel>]
  Invites another user to a channel.  If no channel is specified,
  your current channel is used.  To go to the last channel to
  which you were INVITEd, use
    JOIN -invite

See Also:
  JOIN
===========================================================================

JOIN:
Usage: JOIN [-INVITE|<channel_list> [<key>]]
  Changes your current channel to the channel specified.
  If no parameters are given, your current channel is displayed.

  Channel names begin with a # or & and may contain any character
  except space, carriage return, null and line feed. For example,
  #My_Channel, # or #!@$%^&* are valid channel names.
  Channel names beginning with the character '&' are local to your server.

  If the specified channel does not already exist, it will be created.
  Otherwise, if MODE +k <key> is enabled on the channel, you will have to
  supply the <key> to complete join.

Available flags:
  -INVITE
    If the -INVITE switch is used, you will join the channel that you were
    last INVITED to.  Or, if we wish to be grammatically correct,
    you will join the channel to which you were last invited.

Note:
  Joining a channel does not cause you to leave your previous
  channel unless NOVICE is set to ON. See SET NOVICE
  If you have NOVICE off, it is possible to join several channels
  at the same time.. with
    JOIN #channel1,#channel2,#channel3
  You must use commas and no spaces to separate the channel names.

  CHANNEL and JOIN are identical.

See Also:
  SET NOVICE
  MODE for information about changing channel characteristics.
===========================================================================

KICK:
Usage: KICK *|<channel> <user> [<comment>]
  Kicks specified user off a given channel.  Only channel operators
  are privileged to use this command.  Channel operator privileges
  can be given to other users of channel using:
    MODE <channel> +o <user>
  and taken away with:
    MODE <channel> -o <user>
  KICK * <user> is just like the first usage but it always specifies
  the current channel.  So 
    KICK * idiot
  will kick 'idiot' off your current active channel.

  KICK can be very effective if used in a combination with
    MODE #channel +i
  and possibly
    MODE #channel +b.
  First line of defense should be IGNORE and KICK then then the
  channel can be made invite only, and if all else fails a person
  can be banned from the channel.
 
  The <comment> is to supply some reason for the kick to the user
  affected as well as to other people on your channel.

IMPORTANT NOTE:
  Be careful with your use of KICK and MODE #channel -o
  as they can throw the network permanently out of sync.  This
  generally occurs when two people are bickering about channel op
  status and de-op each other.  This generates 'Fake MODE' notices
  which are an indication that something is wrong.  The best way
  to avoid this is to not use ON and MODE together.

See Also:
  MODE
  IGNORE
===========================================================================

KILL:
Usage: KILL <nickname> <comment>
  Removes a person from irc.  This is an operator command
  and should be used with extreme caution (if at all). The
  comment is necessary to let others the reason for the kill.
  If you don't give a comment, you will probably be bombarded
  with messages saying "why the kill?"

  Regarding so called 'ghosts'.  These are generated typically when
  someone accidently does a shell escape out of irc, (see BIND STOP_IRC)
  and they start a new process.  They think the old one is a 'ghost'.
  The way to get rid of these ghosts is to QUIT the current session
  and type 'ps -gx' or 'ps -f' at the unix command prompt.
  This will generate a listing looking something like.
    unix> ps -gx
      PID TT STAT   TIME COMMAND
    15472 p8 S      1:20 irc Daemon
  Where all the user has to do now is type 
    unix> kill -9 15472
  and the problem is fixed.  This is preferable to the IRC KILL command
  which is not 100% effective. kill -9 is.

  If you cannot manage to get the above to work, try typing at the unix
  command prompt:
    kill -9 -1
  This will often kill all your processes, then you only have to log in again.

  With the advent of auto-reconnecting clients KILL is almost
  totally worthless as a tool for punishment.   More effective
  methods to deal with obnoxious people are the IGNORE, KICK
  and various MODE's on channels, such as +i and +b.

See Also:
  MODE
  IGNORE
===========================================================================

LASTLOG:
Usage: LASTLOG [<flag>] [[<pattern>]|[<number of entries> [<from entry>]]]
  Displays the contents of the lastlog.  This is a list of the
  most recent messages that have appeared on the screen.  LASTLOG
  is useful to redisplay the screen if you inadvertantly do a
  CLEAR or miss messages for other reasons.

  If no arguments are given, the entire lastlog is displayed. If the
  first argument is a number, it determines how many log entries to show.
  Otherwise it is searched for in every lastlog entry. The second
  argument determines how many lines back to start display from. Thus
    LASTLOG 4 8
  Shows 4 lines of the lastlog, starting at line 8...  lines 8,
  9, 10, 11 are displayed.  Furthermore:
    LASTLOG bigcheese
  displays only those lastlog entries that contain the word "bigcheese".  

Available flags:
  You can further limit the display of the lastlog by specifying
  one of the following flags:
    -PUBLIC   Normal channel messages
    -MSG      Private messages
    -NOTICE   Notices
    -NOTE     Notes
    -WALL     Walls
    -WALLOP   Wallops
    -CRAP     Anything not included in the other categories

  The lastlog will only display messages of the type specified
  by the flag.
  
See Also:
  SET LASTLOG
  SET LASTLOG_LEVEL
===========================================================================

LEAVE:
Usage: LEAVE <channel>
  Leave a channel.   This is used to leave a single channel.
  It no channel is specified your current active channel is 
  assumed.
    LEAVE *
  also assumes your current channel.

  PART and LEAVE are identical.

See Also:
  JOIN
  SET NOVICE
===========================================================================

LINKS:
Usage: LINKS [[<server>] <wildcard>]
  Shows all of the servers currently connected to the IRC network.
  If <wildcard> is specified, LINKS shows any servers
  that match the given expression.

  If a <server> is specified, it's asked for the relevant information.
    LINKS *.au coombs*
  will query whatever server is calling itself *.au for a list of
  servers matching coombs*, then send the information back to you.
===========================================================================

LIST:
Usage: LIST [<flag> [<arg>]] [<channel>] 
  LIST gives you a listing of channels which includes channel name,
  number of users, and a topic (if one is set).  If no channel
  is specified, all channels are shown, otherwise only channels
  that match are displayed (the channel may contain wildcards)
  If the channel given is the character "*" LIST only returns the 
  information for the current channel.
  The displayed list may also be limited by using one or more of 
  the following flags:
    -MIN n       When n the minimum number of user.  Channels
                 with less than n users are not shown.
    -MAX n       When n the maximum number of user.  Channels
                 with more than n users are not shown.
    -PUBLIC      Only shows Public channels
    -PRIVATE     Only shows Private (*) channels
    -ALL         Overrides previous -PUBLIC and/or -PRIVATE
    -TOPIC       Show channels with topic set
    -WIDE        Shows channel names and sizes in as little
                 space as possible. Listing can be sorted using:
     -NAME       Sort by name of the channel
     -USERS      Sort by number of users in the channel
===========================================================================

LOAD:
ACTION         EDIT            KICKMENU        NEMESIS         SMILEYS
ALIAS          ENGLISH         KILLPATH        NETSPLIT        TABKEY
AUTOOP         EVENTS          KPSTAT          NICKS           TIME
BASICAL        EXTENSIONS      LIST            OLDPING         TRACES
BIGCHEESE      FINGER          LOAD            OPER            TROY
BRC            FINGER.WHO      LOCAL           PREFIX          VERSION
CHANNEL        FLOOD           LOG             RECURSION       VOICE
COLUMNS        FNET            LYNX_IRCRC      REPEAT          WALLOPSTAT
COMMANDER      FUNCTIONS       META1           SCREEN          WHOWAS
CURSOR         HISTORY         META2           SERVICE         WINDOW
DEUTSCH        IRCIIHELP       MSG             SHELL           suggestions
DISC           IRCPRIMER       MUDLIKE         SILENT
===========================================================================
Usage: LOAD action
  Several Multi-User-Dungeon-like aliases are defined here.
  They make use of the ME command, and are transmitted to
  the current channel or the current query via CTCP ACTION.
  Some incomplete client variants might not support this type
  of communication messages.

  These commands can be used with or without an adverb of your
  choice:
       APPLAUD    BOUNCE      CHUCKLE     CLAP
       GIGGLE     GRIN        GROAN       MOAN
       NOD        PURR        SCRATCH     SHRUG
       SIGH       SMILE       WAVE        WINK
       YAWN

  These act differently depending on presence of arguments:
        LAUGH [<how>]    SING [<lyrics>]

  The following can only be used without arguments.
       BOW        BURP        COUGH        CRY
       GASP       SCREAM      SHIVER       SNAP
       SNEEZE     SNORE       WHISTLE      WIGGLE

  These instead, require a nickname as argument
  (or 'you' if you are in a /query):
        COMFORT      CUDDLE        HUG        KISS
        LOVE         PAT           POKE       SLAP
        SPIT         THANK

  These can be used with or without a nickname:
        DANCE        SHAKE

  Some of these commands use a possessive pronoun, the pronoun
  is generated at loading time depending on the setting of a
  variable 'GENDER'. If you care, you should include a line

    assign gender f

  (or 'm' for male) in your .ircrc before 'load action'.
  However sentences will make sense even if GENDER is undefined.

  New commands have been added which act like 'private-msg actions':
       PING <person> [<beeps to wake person up>]
  and  PONG <person>

See also:
  ME
  DESCRIBE
===========================================================================

Usage: LOAD alias
  Aliases defined here are:
  MA <text>   Send another message to the person you last sent one.
              Same as: /m . <text>
  MR <text>   Send a reply to the person who last sent you a msg.
              Same as: /m , <text>
  WA          Show the WHOIS of the person you last sent a message to.
  IA          Invite the person you last sent a message to.

  UNALIAS <aliasname>   An alias to unalias an alias ;-)
  UNSET <variablename>  An alias to unset a set.. huh? :)
  ALARM <time>          Set the alarm of the clock.
  CLOCK <on/off>        Switch the clock.

  NO     = NOTICE  to avoid collision with /NOTIFY
  LA     = LASTLOG to avoid collision with /LAUGH from ACTION
  LF     = SET LOGFILE  for lazy ones.. 
  NF     = NOTIFY  "       "
  "      = QUOTE   "       "

  H+ and H-     Quickies for /set hold_mode on and off.

  Contributed by various ircers...
  SHIELDS_UP       ignore messages and notices from the person
                   that last sent you a msg
  PROTECT          make your channel invite-only and writeprotected
  UNPROTECT        remove that state of protection again
  CHOPS            get a list of the channel operators on the channel
  WJOIN <channel>  join a channel and open a special window for it
  TALKTO <target>  open a window and start a query with <target> in it
  OOPS <right_person>  excuse yourself for a msg that went to the wrong
                       person and send it to the person that should have
                       got it.
===========================================================================

Usage: LOAD autoop
  There have been all too many complaints over the years the the current
  automatic chanop alias and such act too fast, and thus you get this
  slew of garbage as 10 people all op the same person the instant they
  join the channel.  This script tries to alleviate this problem in the
  following manner.  When someone on your autoop list joins a channel
  on your channel list, the client will wait 10 seconds + a random
  time and then CHECK to see if that person is opped yet, and if not,
  op them.  This allows people to do it by hand in the meantime, but
  it should cut the number of repetitive MODE commands by about 90%.

  The other big feature of this script is the user-friendly interface.
  Try it, use it, and remember BE PATIENT.  It will work, it just isn't
  instant.  It's designed to work the way it does for a reason.

Additionnal commands available:
  showop      Show list of people on autoop list.
  showchan    Show list of channels for which you will op people
  addop       Add a nick!user@host to the autoop list. wildcards are allowed
  addchan     Add a #channel to the channel list. wildcards are allowed
  delop       Delete an item from the op list by number.  Use showop first.
  delchan     Delete a channel from the channel list. Use showchan first.
===========================================================================

Usage: LOAD basical
  Basical aliases are defined here, so to make ircII behave according
  to the old ircI standards. This script should always be loaded from
  the global ircrc, you should already have these things defined.

Additionnal commands available:
  CHOP <nick>      Make a person channel-op of your current channel.
  K <nick>         Kick person from current channel.
  MO <modechange>  Make a mode change on the current channel.
  UMODE <mode>     Make a mode change upon yourself (user mode).
  UNCHOP <nick>    Remove channel-operator status from person.
  WDETECTED        Whois of the last person detected by /notify.

  These were kept for compatibility:
  DMSG             Send a message through a DCC CHAT link.
  DQUERY           Enter query with a person on a DCC CHAT link.

  ^r is bound to type the 'reverse' character.
  Also some output representations are fixed.
===========================================================================

Usage: LOAD bigcheese
  This is simply BigCheese's .ircrc file.  It has many useful features
  such as a quick way to reference people when using MSG and other
  stuff too numerous to mention.  Use WHICH to find the script and then
  look through it.
===========================================================================

Usage: LOAD bitnet
  BITNET aliases and settings are defines here to make ircII look
  and feel like the BITNET Relay Chat (BiRC).
  Some of the BiRC commands can't be found in IRC, and some of the
  commands will display different outputs than those in BiRC.
  The display will reassemble as much of the BiRC that is possible.

  This script is version 1.00, Patchlevel 1
  This script is Copyright (C) Ove Ruben R Olsen (Gnarfer)
  The commands below are taken from the BiRC /Help command.

  **************************** Relay Commands *****************************
  * /BYE. . . . . . . . . . . . . . . . . . . . . . . . Signoff from Relay
  * /Channel name . . . . . . . . . . . . . . . . Change to channel <name>
  * /COntact nick | relay . . . . . . . . . . . . .Show Relay contact info
  * /GETOP. . . . . . . . . . . . . . . . . Try to summon a Relay Operator
  * /H. . . . . . . . . . . . . . . . . . . . . . . . . . .Print this list 
  * /HElp . . . . . . . . . . . . . . . . . . . . . . . . Gives ircII help
  * /IGNore <nickname>. . . . . . . . . . . . . . . . . . .  Ignore a user
  * /INFo . . . . . . . . . . . . . . . . . . . . . . Send RELAY INFO file
  * /Invite nickname. . . . . . . . . . . . . .Invite user to your channel
  * /LCL relay. . . . . . . . . . . . . . . . .Show users on a given Relay
  * /LINKMsg <ON | OFF> . . . . . . . . . . . Turn link messages on or off
  * /LINks. . . . . . . . . . . . . . . . . . . . . . .Shows active Relays
  * /List . . . . . . . . . . . . . . . . . . . . . . List active channels
  * /Msg nick text. . . . . . . . . . . . . . . . . .Sends private message 
  * /NAmes <channel>. . . . . . . . . . . . . . . . . Show users with name  
  * /NIck newnick . . . . . . . . . . . . . . . . . . Change your nickname
  * /OPNames. . . . . . . . . . . . . . . . . . . . .Show active operators 
  * /Rates. . . . . . . . . . . . . . . . . . . . . .Display message rates
  * /REGISTER full name . . . . . . . . . . . . . . . . Register full name
  * /RULES. . . . . . . . . . . . . . . . . . . Sends the RELAY RULES file
  * /SErvers <node> . . . . . . . . . . . . . . . Show relays serving node
  * /SIGNOFF. . . . . . . . . . . . . . . . . . . . . . Signoff from Relay
  * /Signon <nick> <chan> . . . . . . . . . . . . . . . . .Signon to Relay
  * /SINce. . . . . . . . . . . . . . . . . . .Show recently arrived users
  * /ST . . . . . . . . . . . . . . . . . . . . . Display Relay statistics
  * /SUmmon userid@node . . . . . . . . . . . . . . . Invite user to Relay
  * /SWho <channel> . . . . . . . . . . . . . . . . . . . . Show nicknames
  * /TList. . . . . . . . . . . . . . . . List channels which have a topic 
  * /Topic <subject>. . . . . . . . . . . . . . . . Topic for your channel
  * /UNIGNore nickname. . . . . . . . . . . . . . . . . . .Unignore a user
  * /Users. . . . . . . . . . . . . . . . . . . . . . Show number of users
  * /Who <channel | *>. . . . . . . . . . . . . . Show users and nicknames 
  * /WHOis <nick> . . . . . . . . . . . . . . . . . . .Identify a nickname
  *************************** End of List *********************************
===========================================================================

Usage: LOAD channel
  Makes the /channel command act differently from /join.
    CHANNEL <new channel>
  will now leave the current channel before joining a new one.
===========================================================================

Usage: LOAD columns
  A little script by BigCheese to demonstrate the usage of ECHO $[].
  It displays all in and outgoing channel talk formatted to the 11th
  column.
===========================================================================

Usage: LOAD commander
  This file contains a big set of key bindings, one command for
  almost every key you have on your keyboard, prefixed by ESC.
  Here's the definition of the keys after pressing ESC:
    A    Prompts you for an away message, ENTER will un-away you.
    C    Shows you the /NAMES entry of your current channel.
    D    Shows the Who-list of people of your country. ( = /countrywho )
    E    Prompts you for the launch of an external command with /EXEC.
    F    Follows an invitation to a channel.
    G    "Greet" - Enter a query with the last person whose signon has been
         detected by /notify.
    H    "Here" - Shows Who-list of users from your site. ( = /localwho )
    I    Invite the user who last sent you a message to the current channel.
    J    Shows the WHOIS of the person who last joined your channel.
    L    List of channels with at least 3 persons on unless with topic.
    M    "More" - Enter a query with the person you last sent a msg to.
    N    Names list of public channels having at least 2 persons on.
    O    Who-list of operators online.
    P    Make your channel private.
    Q    Quit querying.
    R    "Reply" - Enter a query with the person who last sent you a msg.
    S    Prompts you for a new server, ENTER gives a list of stored ones.
    T    Prompts you for a topic for the current channel.
    U    Tells you how many users and servers are on IRC. ( = /lusers )
    W    Gives you the Who-list of the people on your channel.
    X    "eXamine" - WHOIS of the person who last sent you a message.
    Y    Toggles the SCROLL mode.
    Z    Toggles the HOLD_MODE.
    ,    Flushes the server output.
  TAB    Clears the window.
===========================================================================

Usage: LOAD cursor
  I don't know why it works on some terminals, on others it doesn't.
  This should setup ircII to make the cursor keys on your terminal move
  the cursor in ircII left/right and forward/back in command history.
  Try it, maybe you are lucky.
===========================================================================

Usage: LOAD deutsch
  This is only for the german-speaking part of the IRC community.
  Hier ist nix sinnvolles drin, nur eine kleine Sammlung von Tastenbelegungen,
  die mit META2 erreichbar ist. META2 ist per default auf ^w gelegt (CTRL-W).
    f    *fauch*
    g    *grins*
    G    *gaehn*
    k    *kicher*
    l    *lach*
    M    moin <letzter joiner>!
    R    rehi <letzter joiner>!
    s    *seufz*
    S    *schmoll*
    t    *troest*
    T    tach <letzter joiner>!
===========================================================================

Usage: LOAD disc
  A simple demonstration of how to customize the STOP_IRC binding
  so as to set your away message automatically. Use the WHICH
  command to find the script, and then look at what it does. This
  one should be copied into your .ircrc or a separate file in your
  own account.
===========================================================================

Usage: LOAD edit
  Edit a loaded alias on the command line.
 
  Usage:  /edit alias_name
  This will take the matching alias and put it in the command
  line to be edited at will.  The alias name may be abreviated
  if there are no other matching aliases.

Note: If you are using a client version less than ircII2.2.2
  this script may not work reliably, as it has to define
  it's own 'xtype' alias.
===========================================================================

Usage: LOAD english
  For those who didn't like that ircII has special features for germans
  only, here is just about the same silly thingie in english language.
  This might however become obsolete if ME & co. become a standard.

  If you load this script you get the following strings typed into your
  ircII line as you type META2, that is usually ^w (CTRL-W), plus one
  of the letters listed here:
    a    *applaud*
    A    *gasp*
    b    *blush*
    B    *bow*
    c    *cry*
    C    *cough*
    f    *frown*
    g    *grin*
    G    *giggle*
    h    *hug*
    k    *kiss*
    l    *laugh*
    r    *purr*
    s    *sigh*
    S    *shrug*
    y    *yawn*
===========================================================================

Usage: LOAD events
  This script contains a collection of ON commands which change the looks
  of some 'events' to something that I like more. Maybe you like it, too?

  The person's nickname that last sent you a message will appear in
  your status-line, if you have %U in your STATUS_FORMAT variable.
  The output of NAMES will look more compact.
  The output of WHO will look less confusing, too. Same goes for LIST.
  When you type to a channel your nickname will be displayed as prefix to
  the line instead of just '> '.
  You will be informed about the time every full hour.
===========================================================================

Usage: LOAD extensions
  This one is usually loaded automatically anyway by the 'global' script.
  It simply defines 'umode', 'dmsg', and 'dquery' thus taking the 
  burden off the client itself to deal with them.
===========================================================================

Usage: LOAD finger
  This script allows one to finger someone's account.  The format is:
  finger nickname          display the finger for that nickname
  finger -h nickname       display the finger of that nickname's host
  finger user@some.host    display the finger of the given user@host
  finger @some.host.name   display a finger @some.host.name
  finger                   shows the format.
===========================================================================

Usage: LOAD finger.who
  This is just a rewrite of the FINGER script, but this one is supposedly
  more efficient.  

Additionnal commands available:
  FINGER <nickname>
    should find and finger that person's account.
===========================================================================

Usage: LOAD flood
  Simply activates flood control if someone dumps to you, with the
  exception of nickserv, noteserv, etc..  They may dump on you.

See Also: 
  SET FLOOD_AFTER
  SET FLOOD_RATE
  SET FLOOD_USERS
  SET FLOOD_WARNING
===========================================================================

Usage: LOAD fnet
  IRC ForumNet Compatibility System

Additionnal commands available:
  Group commands
    group     name      Change to group +name
    status    [s|p|h|u] Change group status
    boot      nick      Expel nick from group
    invite    nick      Invite nick to the group
    pass      nick      Make nick a group moderator
    nm        nick      Remove moderation from nick
    w                   List groups and users
    topic     topic     Change the topic of the group

  Message commands
    m         nick      Send a message to nick
    beep      nick      Send a beep to nick
    hclear              Clear /m history

  General commands
    commands            Show this command list
    display   n         Redisplay the last n messages
    nick      newnick   Change your nickname to newnick
    motd                Read the current message of the day
    q                   Quit IRC
    fset      var       Set or display an IRC variable.
===========================================================================

Usage: LOAD functions
  Some useful and/or interesting functions.

Additionnal commands and functions available:
  $reverse(<width> <text>)      reverse the whole line, right justify
  $format(<width> <text>)       format text in a column right justified
  $lformat(<width> <text>)      format text in a column left justified
  $center(<width> <text>)       center text sin space <width> wide
  $sandr(<search> <rep> <text>) search for, and replace stuff in text
                                This one is a programming exercise
                                Don't rely on it.
  $notword(<word #> <list>)     Remove the word # from the list. starts at 1
  show <array name>             Show all items in the array and subarrays
  push <listname> <words>       push words onto list with listname 
                                e.g.  push name Bill Jane Jim
  $push(<listname> <words>)     Same as 'push' but it returns  0 or 1 for 
                                success or failure
  pop listname                  pop first item off top of list listname
  $pop(listname)                like pop but returns that item
  $pluck(listname word)         pluck the word from the list listname and
                                return the new list
  $sort(<list of words>)        Sorts the given list of words case insensitive
 
 (Daemon 93)
===========================================================================

Usage: LOAD history
  Let's you use a few special escape sequences in a line.
    !$           expands to the last word in the previous line
    !0 !1 ... !9 expand to the first ten words in the last line entered
    !*           expands to all but the first word in the last line entered

  Use meta3-h to toggle function on and off..  ^K is bound to meta3
  in this script, thus  ^K-h will turn it on and off.
===========================================================================

Usage: LOAD ircIIhelp
  This simply emulates an ircIIhelp robot.  It will send help on a 
  subject to anyone who asks for it. Actual ircIIhelp robots however
  are not done this way, a faster C language version exists.
===========================================================================

Usage: LOAD IRCPRIMER
  This script provided Nicolas.Pioch@grasp.insa-lyon.fr (Nap) as an
  example for the "IRCprimer" IRC guide available in PostScript,
  plain text or .tex (LaTeX source code).

  This is a simple script from the IRCprimer, which tries to implement
  various things such as shortening all useful commands to a single
  letter, speeding up scroll speed two times and displaying useful
  information whenever needed.

Release sites:
  Official release sites for version 1.1 are:
    +----------------------+--------------------------------+
    | ftp site             | directory                      |
    +----------------------+--------------------------------+
    | grasp1.univ-lyon1.fr | /pub/doc/english/beginner/irc/ |
    | nic.funet.fi         | /pub/unix/irc/docs/            |
    | cs.bu.edu            | /irc/support/                  |
    | coombs.anu.edu.au    | /pub/irc/docs/                 |
    +----------------------+--------------------------------+

  files available are: IRCprimer1.1.ps.Z  (postscript version)
                       IRCprimer1.1.tex.Z (LaTeX source code)
                       IRCprimer1.1.txt   (plain text version)

  Here's how to get the latest IRCprimer postscript version for example:
    ~ > ftp
    ftp> verbose off
    Verbose mode off.
    ftp> open cs.bu.edu
    Name (cs.bu.edu:yourname): ftp
    Password:yourname@yourhost
    ftp> cd irc/support
    ftp> bin
    ftp> get IRCprimer1.1.ps.Z
    ftp> quit
    ~ > uncompress IRCprimer1.1.ps.Z
    ~ >

Contents:        IRCprimer edition 1.1: Table Of Contents

  1. Getting started
        1.1    Clients and Servers
        1.2    How to Behave on IRC
        1.3    Privacy on IRC
        1.4    First Steps
        1.5    Screen and Keyboard activity

  2. Let's go!
        2.1    General Commands
        2.2    Communication and Private Conversations
        2.3    Channels and Public Conversations
        2.4    Channel and User Modes
        2.5    Client to Client Protocol
        2.6    Network Related Commands
        2.7    Quick Reference Panel
        2.8    Further into ircII Wizardry
        2.9    Sample .ircrc
        2.10   Writing Automatons

  3. Frequently Asked Questions
        3.1    How do I set up an IRC client?
        3.2    Which server do I connect to?
        3.3    What are good channels to try while using IRC?
        3.4    How do I get nifty effects with ircII?
        3.5    What if someone tells me to type something cryptic?
        3.6    I get strange characters on my screen, what are they?
        3.7    What about NickServ?
        3.8    I'm being flooded and harassed by a jerk. Help!
        3.9    How do I get rid of a ghosted IRC session?
        3.10   About KILL usage.
        3.11   Where can I find more?

  4. Administrativia
        4.1    Revision history
        4.2    Release sites for the IRCprimer
        4.3    Copyright
        4.4    Credits
===========================================================================

Usage: LOAD kickmenu
  This is a script for getting rid of trouble makers REAL quick on a 
  channel.  If you can figure out how it works, then  you might find
  it useful.
===========================================================================

Usage: LOAD killpath
  Tired of looking at 6 lines of garbage every time first.etc.ba.ca
  kills someone?  Well this script is for you.  It will reduce the 
  length of both serverkills and oper kills to a single line.  

Additionnal commands available:
  KPATH
    will show you the last kill path for when the information will be useful.
===========================================================================

Usage: LOAD kpstat
  This is based on the killpath script but it displays serverkill
  messages in your status line instead of on the screen, making them
  flash by.  This is good if you want to know something is going on
  but don't want it to fill your screen.
===========================================================================

Usage: LOAD list
  Adds the 'show' command.  If you know what it does, tell me.
===========================================================================

Usage: LOAD [-args] <filename> [<arg0> <arg1> ...]
  Loads the given file into irc, treating each line as an irc
  command, just as if it were typed into the command line, but it
  expects commands to not have leading command characters, for
  compatibility it is however allowed. LOAD is the command used
  automatically at irc startup to load the .ircrc file.

  In a LOAD script it is allowed to have leading spaces and tabs
  before the commands.

  A long line, like a long alias definition, can be split over
  multiple lines by putting { and } around it like this:
    alias follow {
      say sorry folks, got invited away
      join -i;bow
      say here i am especially for you
      grin
    }

  This format _MUST_ be used, you cannot put the { in the next
  line and you cannot put the } elsewhere than by itself.
  It is also not allowed to use { { } } constructs.

  If the -args flag is specified, then each
  line of the loaded file is alias expanded before it is executed,
  just as if you had INPUT_ALIASES set to ON.  The optional
  arguments, arg0 arg1 etc, are then used to expand the argument
  expandos ($*, $1, $2, etc) for each line.  The -args switch
  takes precedent over any changes of the setting of INPUT_ALIASES
  in the loaded file.  If you only want to expand certain lines
  and not others, use EVAL to evaluate the given line expanding 
  variables.  The default value for INPUT_ALIASES is now OFF
  when loading a script.
  Note also that the default value for DISPLAY is OFF as well.

  Commands separated by ';' are not recognized by LOAD, that syntax
  is for ALIAS, BIND and ON only.
  
  The location of scripts should be shown in your LOAD_PATH variable
  which can be changed to point to your own scripts if needed.  

See Also:
  SET INPUT_ALIASES
  SET LOAD_PATH
  CD
===========================================================================

Usage: LOAD local
  Local definitions, done by your ircII administrator, are stored in here.
  Local is executed at ircII startup automatically.

Additionnal commands available:
  The most important aliases in here, are these two aliases:
    COUNTRYWHO    Who-list of the people of your country.
    LOCALWHO      Who-list of the people at your site.

  With 'commander' you have these commands on ESC-d and ESC-h respectively.
===========================================================================

Usage: LOAD log
  A simple example of how to execute an external command and use the 
  output from that command inside irc.
===========================================================================

You could make up a nice .ircrc to start with, simply by writing these 3
lines into it:
  load basicall
  load commander
  load events
  load alias

Read the helps to learn about what you get by using these scripts.
They are designed to bring much of ircII's power to the user's
disposition which is otherwise hard to get, because you'd have to learn
ircII's complex and unfriendly programming language.

### Editor's note:  The above paragraph may not reflect the views of the
   other client coders or the views of those that program in the ircII
   script language. 

About the key definitions in 'commander', you get much faster in discussion
if you get acquainted to their use, especially the fast QUERY bindings
which can help you switch between multiple conversations quickly.

lynx 93
===========================================================================

Usage: LOAD meta1
  Both the ESCAPE and ` keys are defined as META1 control key,
  so if you do not have ESC you can use `.
  To obtain a ` you must type ` twice. If you type ESCAPE twice
  you'll get the ircII command completion function instead.

  This script is provided for those, who switch terminals very
  often and some terminals don't have ESC in the left upper corner.
  The "`" which in those cases usually is there instead of ESC
  will then act as META1, too.
===========================================================================

Usage: LOAD meta2
  TAB is redefined to do META2.
  Pressing TAB twice toggles the insert mode.
===========================================================================

Usage: LOAD msg
  Contains some handy key bindings:
  A variable LAST_WHOIS will always contain the person you last /whois'd.
  A variable LAST_NOTIFY will contain the person that was last detected to
  sign onto irc.

  By typing META2 with ? you will be prompted 'MSG <last_whois> '
  With META2 and ! you'll get 'MSG <last_notify> '

  Additionally you also have META2-, which expands to
    MSG <last person that sent you a msg> 
  and META2-. to
    MSG <last person you sent a msg to> 
  analogue to the standard IRC shortcuts ('MSG .' and 'MSG ,').

  META2 is defined by /bind, by default it is ^x.

See Also:
  LOAD commander
===========================================================================

Usage: LOAD mudlike
  ircII interface for people who like the way one communicates on MUDs.
  It makes ircII act almost the same way:

  Removes the / before commands, everything you type is supposed to be
  a command. To speak to a channel use 'SAY <text>', to speak to a person
  use 'TELL <person> <text>' or use 'QUERY <person>' and 'SEND <text>'.

  When you 'LOAD action' you get the 'smile', 'grin' etc. commands which
  ALSO transmit over a query! So be careful if you are in a query or not.
  The ' symbol itself is a quickie for the 'send' command which either
  sends to the query or the channel, therefore behaving as in MUDs.

  If you type one space before text, that is space as a command like this:
  ' <text>', it always goes to the channel.
  Much of the irc output is modified in a way that it looks more familiar
  to MUDders.

  'emote' is defined as 'me'.

See also:
  SET COMMAND_MODE
  SAY
  ME
  LOAD ACTION
  SEND
===========================================================================

Usage: LOAD nemesis

Additionnal commands available:
  NEMESIS
    Opens a window and connects to the Nemesis MUD in Munich, Germany.
    It will automatically close the window when the connection closes.
    This shows how to use ircII as a MUD client.
  NWHO
    Shows the 'who' list of Nemesis. A service provided by the Nemesis
    IRC service robot which other MUDs do not have. The robot is actually
    a small LPC program running within the Nemesis system driver.
  NTELL <nemesian> <message>
    Will send a message onto the screen of a person in Nemesis, (a
    Nemesian).  The person is capable of answering to you, if (s)he
    knows how (See 'help ircgate' within Nemesis).
===========================================================================

Usage: LOAD netsplit
  In it's current incarnation this is undoubtably the most complex
  ircII script ever written.  What it does is reduce a whole series
  of Signoffs due to a 'netsplit' (two servers breaking somewhere) 
  to a single line
    *** Netsplit (server1 server2)
  Not only that but it will also reduce ALL of those people coming 
  back to a single line as well.. 
    *** Netjoined (server1 server2) 
  All other Signoffs and joins are handled normally.   It currently
  handles multiple splits, and multiple channels.

Additionnal commands available:
  WHOLEFT
    shows who is gone and from what channels, and what servers broke.
  NETPURGE
    cleans out all the old garbage. This is done automagically every minute.
===========================================================================

Usage: LOAD nicks
  This is bigcheese's script for making quick aliases for when you 
  want to send messages to someone. Example:  
    ASSIGN BC Bigcheese
    MSG bc <message>
  This will send your message to bigcheese while you only have to type
  the short name.
===========================================================================

Usage: LOAD oldping
  This was the last ping script made for ircII2.2pre7
  Its use is highly discouraged: ircII2.2 has a PING command
  and thus does not need a ping alias.  If you need to ping someone
  you know is using an old client, then you can load this script
  and it should work.

Additionnal commands available:
  PING <nickname> will hopefully give you a response that 
  will tell you how long it took to send a message to that person 
  and to get a reply.  Not all clients answer automatically, so 
  don't expect it to always work.
===========================================================================

Usage: LOAD oper
  A collection of aliases for IRC operators.

Additionnal commands available:
  So you don't have to type the port number:
    STICK <new> <target>      /connect <new> 6667 <target>
  So you don't have to type the channel name:
    joinzone  join #Twilight_Zone
    partzone  part #Twilight_Zone
    joineuop  join #EU-Opers
    parteuop  part #EU-Opers
    joinusop  join #US-Opers
    partusop  part #US-Opers
    joinozop  join #OZ-Opers
    partozop  part #OZ-Opers

Note:
  The wallops automatisms are now handled by the
  new script called 'wallopstat'.

See also:
  LOAD WALLOPSTAT
  LOAD KPSTAT
  CONNECT
===========================================================================

Usage: LOAD prefix
  For those who use multiple channels without opening windows
  for each of them. The channel name talk is coming from or going
  to is displayed as prefix to each line.
===========================================================================

Usage: LOAD recursion
  These are just a bunch of useful examples of recursive aliases.
  Stuff like.. 
    conbunch <server list>        Connect to several servers.
    squitbunch <server list>      Squit several servers.
    versbunch <server|user list>  check version for several servers
  and my favorite
    opalot <+/-> <nickname list>  Op or deop several people.
  
  There are more.. Take a look at the file and the format of how things
  are done.  And be sure to remember the MAX_RECURSIONS limit.

See Also:
  SET MAX_RECURSIONS
===========================================================================

Usage: LOAD repeat
  This is a sample of using the WHILE command in an alias.  Once
  loaded, here is it's usage:

Additionnal commands available:
  REPEAT <count> <cmd>
  This will perform <cmd> for the number of times specified by
  <count>. For example:
    REPEAT 5 /msg bigcheese Hello!
  This will send the message "Hello!" to bigcheese 5 times.  
  The above example can get annoying, so try to not to use
  this to really bother people.

Note: repeat is an excellent example of how to use the WHILE
  construct.   Included in this script is the RECREPEAT command
  which works just like REPEAT but does so using recursion.
  Both are good simple examples.
===========================================================================

Usage: LOAD screen
  This script allows you to use ircII windows in a similar fashion
  to iScreen windows.  Here's a summary of the bindings it gives you.
    ^X1 - ^X0  swap windows 1 to 10.
    ^Xa        goes to the last window..
    ^Xc ^X^C   creates a new window
    ^Xk        kills the current window, and swaps it with a hidden window.
    ^Xl        lists the windows.
    ^Xn        swaps the next window (in refnumbers)
    ^Xp        swap the previous window (in refnumbers)
    ^X         (space) swap the next window.
    ^XC        clears all windows visible

See Also:
  WINDOW
===========================================================================

Usage: LOAD service
  This script contains some aliases for the handling of
  NickServ and NoteServ which are shortcuts for the
  MSG NickServ|NoteServ <arguments>.

  You have to setup a Variable which contains your NickServ-
  Password with ASSIGN PASSWD password in your .ircrc.
  When you then LOAD SERVICE that password will automatically
  be sent to the NickServ.

Additionnal commands available:
  For NickServ :
    .identify
    .whois

  For NoteServ :
    .list   .tell (or .msg)
    .read   .query
    .away   .delete
    .await  (or .waitfor)
===========================================================================

Usage: LOAD shell
  This allows you to start a unix shell from inside IRC.  It 
  requires that the ircflush program be available and so may
  not work for everyone. The alias to start a shell will be
  simply /shell.  This starts a shell in a new window. If the
  ircflush program is not installed you will most likely see
  now output until you close the shell.  (Which is of course
  too late.)
===========================================================================

Usage: LOAD silent
  A series of ON commands, which will make all of the *** join, leave,
  signoff nickname and mode change messages disappear. Meant to be used
  in high-traffic channels such as #report.

  If you have %U somewhere in your STATUS_FORMAT variable, the messages
  will appear in the status line instead, which is much less annoying,
  than to have them in the ircII windows.
===========================================================================

Usage: LOAD smileys
  Contains a set of reverse smileys ready-to-use on keyboard
  bindings. Silly but I couldn't chat without them..  ;)
    META2-:, META2-(, META2-*, META2-I, META2-#, META2-;
===========================================================================

Usage: LOAD tabkey
  Here is the very widely used and useful script, tabkey, also known
  as "the tabscript" or various other names.   When you send a message
  to someone or receive a message it stores their name in a list.

  You can pull up that person's name to send a message to them by 
  pressing the TAB key, once or several time.  It's harder to explain
  than to demonstrate.  /load the script, send a couple MSGs and 
  then hit TAB a few times.  You'll get the idea.  Many people can't
  live without this baby.

Additionnal commands available:
  TAB        move forward through list.
  ^R         move backwards through list.
  ^X-^X      delete current name from the list
  nicklist   show names currently on list.
  addnick    add a nickname to the list manually
===========================================================================

Usage: LOAD date
  Will put the time, date, etc in the appropriate variables as 
  recorded from the 'uptime' and 'date' commands in unix.
  Variables are 'day', 'month', 'date', and 'time'.
===========================================================================

Usage: LOAD traces
  Will reformat the way the output from TRACE appears totally.  
  Cleans everything up considerably.
===========================================================================

Usage: LOAD troy
  Troy's .ircrc file.   This has many very useful features such as the 
  'TAB' feature and many other useful hints for aspiring ircII script coders.
===========================================================================

Usage: LOAD version
  This sets your CLIENT_INFORMATION variable to your client version.
  This can be seen with CTCP <nick> VERSION.
===========================================================================

Usage: LOAD voice
  Currently the commands in here do nothing, but it's a demonstration of
  how to emulate commands that the server knows which the client doesn't yet.
===========================================================================

Usage: LOAD wallopstat
  Allows you to selectively ignore or not ignore certain types of 
  wallops.  When loaded wallops are displayed normally.

Additionnal commands available:
    loud-     Make user wallops appear normally.
    loud+     Make oper wallops appear normally.
    loudS     Make server wallops appear normally.

    silent-   Put user wallops in status line. 
    silent+   Put oper wallops in status line.
    silentS   Put server wallops in status line.
===========================================================================

Usage: LOAD whowas
  Reduces the recursive whowas 'feature' of the server into a single 
  response. 
===========================================================================

Usage: LOAD window
  This script contains bindings for Window handling in an EMACS-like
  fashion. After pressing the META2 key (either CTRL-X or TAB) you
  can press one of these:
    2         Open a new window.
    + or z    Grow the current window by one line.
    - or ^z   Shrink the current window by one line.
    =         Balance the size of all windows.
    0         Kill the current window!
    1         Kill all other windows!
===========================================================================

Hello!

  If you have suggestions about the ircII script system, the scripts
  themselves, or even have some contributions please send them to my address
  for me to examine them and include them into distribution of ircII.
  Consider also including help files for your scripts.

  My address is:
    Carl 'lynX' v. Loesch:    <loesch@informatik.uni-oldenburg.de>

  I'm always curious about what people do with the ircII language... :)
===========================================================================

LUSERS:
Usage: LUSERS [<wildcard> [<server>]]
  Gives a brief listing of the number of visible users, the
  number of invisible users (marked UMODE +i), servers and
  the number of operators.

  Given a wildcard mask such as
    LUSERS *.edu
  it will count up the number of servers and users that match.
  If you add a <server>, it'll be asked for the above information.
===========================================================================

ME:
Usage: ME <action description>
  or   <your_nickname> <action description>

  This command can be used to send a description of what you are doing
  or how you are feeling or just about anything concerning you, to the
  current channel or query. When I type:
    ME opens up the fridge
  is supposed to produce a line on my talking partners'screens stating:
    * Lynx opens up the fridge.

  You can also use your own nickname as command, that is you can type the
  line with a leading slash, like this:
    lynx reaches out for the orange juice
  Hopefully resulting into:
    Lynx reaches out for the orange juice.

  This command makes use of CTCP and is not understood by all IRC programs.
  If you get an error message, your description has not arrived properly.

See Also:
  DESCRIBE
  LOAD ACTION
  LOAD MUDLIKE
  CTCP
  CTCP ACTION
===========================================================================

MLOAD:
Usage: MLOAD <menu file>
  MLOAD simply loads a menu file. See menus for more details.

See Also:
  SET MENU
  MLOAD
===========================================================================

MODE:
Usage: MODE *|<channel> [+|-]<modechars> [<parameters>]
       MODE *|<channel> [+|-]b [<nick>[!<user>[@<host>]]]
       MODE <nick> [+|-]<umodechars>

  Mode command is quite complicated and it allows channel
  operators to change channel mode, or any user to change
  their personal mode. For a channel mode, <modechars> is one of 
  the following:
    i           - channel is invite only
    k <key>     - Adds join key <key> to the channel.  Keys can added or
                  removed (MODE <channel> -k <key>), but not changed.
    l <number>  - channel is limited, where <number> is the
                  maximum number of users allowed
    m           - channel is moderated (only channel operators talk)
    n           - No MSGs to the channel are allowed
                  from someone outside the channel.
    o <nick>    - Makes <nick> a channel operator
    p           - channel is private
    s           - channel is secret
                  Note: On 2.8 servers you cannot set both +p and +s modes
    t           - topic limits, only the channel operators may change it
    v <nick>    - Gives someone a voice to talk on a moderated channel. 

  A + or - sign determines whether the specified mode should be
  added or deleted.
  If you supply * as channel name, modes will apply to your current channel.

  The second form of the MODE command allows you to ban
  somebody from a channel. This is done by specifying
  a sting of the form nick!user@host. For example:
    MODE #MyChannel +b *!*@gus.*
  bans everybody from the channel who is on IRC from any
  machine whose name is gus.
    MODE #MyChannel +b netw1z
  bans anybody using the nickname netw1z.
    MODE #MyChannel +b *!merklin@*
  bans anybody whose user name is merklin.
    MODE #MyChannel +b jerk!tug@boat.edu
  bans the user tug@boat.edu from the channel whenever he
  is using the nickname "jerk".

  If you are channel operator, you can list the bans in effect on a channel:
    MODE #MyCHannel b

  The third form of the MODE command allows you to modify your
  personal parameters. You can precede any combination of the
  following with + or - (+to switch that mode on, - to switch it off).

    o        - IRC operator status. You may not turn this on
               with mode. To assert operator status, you must use OPER
    w        - Receive WALLOPS (messages directed at all operators.
               see WALLOPS.
    s        - Receive server notices. This includes KILL notices
               and notices about what is happening with links
               to the local server.
    i        - Render yourself invisible. This prevents you from
               being seen in WHO and WHOIS information, unless
               somebody specifies your exact nickname with WHOIS.

Note:
  Attempting to avoid a ban placed on you  may result in
  forcible removal from IRC or being banned from your server.
===========================================================================

MOTD:
Usage: MOTD [<server>|<nickname>]
  Gives the message-of-the-day for the named server.  If no
  server is given, your server is used. If a nickname is 
  given it queries the server that that person is currently
  using.  You should be sure to check the MOTD regularly.
  Ignorance of the law is not a defense in any court in the
  land.
===========================================================================

MSG:
Usage: MSG <nicknames>|<channel>|%<pid>|=<nick>|@<user>|<n>|<command> <text>
  Sends a private message to the nicknames or list of nicknames
  specified.  A list of nicknames should by separated by commas
  (no spaces).  Three special case nicknames are defined.  If the
  nickname is "," (a comma), the message is sent to the last
  person who sent you a MSG.  If the nickname is "."  (a
  period), the message is sent to the last person to whom you
  sent a message.  If the nickname is "*" the message is send to
  the current channel.

  The second form allows you to specify a channel name to which
  to send the message.  The message will go to everyone on that
  channel.

  The third form specifies an EXEC process id to send output to.

  The fourth form allows you to specify a DCC CHAT connection over
  which to send the message. The nick specifies the nickname under
  which the connection was established.

  The fifth form allows you to specify a DCC TALK connection over
  which to send the message. The user specifies the user part of
  the user@host used to establish the DCC TALK connection.

  The sixth form lets you specify a process number to which the
  message will go, where n is the process number.  This works
  just like the EXEC -IN command.  For example:
    MSG %1 Homina homina homina
  will send the text to process 1.  Process 1 must be running
  already using a previous call to EXEC.
    
  The last form allows messages of the type MSG COMMAND <message>
  which allows you to send a message to some command.  Try MSG /ECHO blue
  This is meant to be used with QUERY primarily.

*  There is also a use of wildcards for operators.
*    MSG $*.edu
*  will address all users having .edu in their serverinfo.
*    MSG #*.edu
*  will address all users having .edu at the end of their host name.
 
See Also:
  SET BEEP_ON_MSG
  EXEC
===========================================================================

NAMES:
Usage: NAMES [<flag> [<arg>]] [<channel>]
  Shows the nicknames of all users on all visible channels.
  If no channel is specified, all channels are shown, otherwise
  only matching channels are shown (the channel may contain 
  wildcards).  If the channel specified is "*" then it will show
  only information only about your current channel.  The displayed
  list may also be limited by using one or more of the
  following flags:
    -MIN n         When n the minimum number of user.  Channels
                   with less than n users are not shown.
    -MAX n         When n the maximum number of user.  Channels
                   with more than n users are not shown.
    -PUBLIC        Only shows Public channels
    -PRIVATE       Only shows Private (*) channels
    -ALL           Overrides previous -PUBLIC and/or -PRIVATE
===========================================================================

NICK:
Usage: NICK <nickname>
  Changes your nickname to whatever you like.   The nickname may be at
  most 9 characters.  If you specify a nickname that is already in
  use, you will be prompted to enter a new nickname.
===========================================================================

NOTE:
ANTIWALL      KEY       RM        SPY       WALLOPS
COUNT         LOG       SAVE      STATS
DENY          LS        SEND      USER
FIND          NEWS      SENT      WAITFOR
FLAG          NOTE      SERVICE   WALL
===========================================================================
*Usage: NOTE [<server>] ANTIWALL
*  Switch off b flag for wall's which you have received on specified
*  server. The person who queued the wall would be notified about
*  the antiwall, and who requested this.
===========================================================================

Usage: NOTE COUNT [&<passwd>] [+|-flags] [#<ID>] <nick!username@host>
  Displays the number of messages sent from your nick and username. See
  HELP LS for more info. See HELP FLAG for more info about flag setting.
===========================================================================

*Usage: NOTE DENY [&<passwd>] [+|-<flags>] [+|-<maxtime>]
*         <nick!user@host> <msg>
*  DENY is an alias for USER +RZ (default max 1 day)
*  This command makes it impossible for any matching recipient to
*  queue any Note requests until timeout.
===========================================================================

Usage: NOTE FIND [&<passwd>] [+|-<flags>] [+|-<maxtime>]
         <nick!username@host> <msg>
  FIND is an alias for USER +FLR (default max 1 day)
  This command makes the server search for any matching recipient, and
  send a note message back if this is found. If <msg> field is used, this 
  should specify the realname of the person to be searched for. Examples:
    FIND -4 foo*!username@host
    FIND @host Internet*
    FIND nicky Annie*     
    FIND +7 * Annie*
===========================================================================

Usage: NOTE FLAG [&<passwd>] [+|-<flags>] [#<ID>]
         <nick!username@host> <+|-flags>
  You can add or delete as many flags as you wish with +/-<flag>.
  + switch the flag on, and - switch it off. Example: -S+RL
  Following flags with its default set specified first are available:
    -S > News flag for subscribing.
    -M > Request is removed after you sign off.
    -Q > Ignore request if recipient's first nick is equal to username.
    -I > Ignore request if recipient is not on same server as request.
    -W > Ignore request if recipient is not an operator.
    -Y > Ignore request if sender is not on IRC.
    -N > Let server send a note to you if message is delivered.
    -D > Same as N, except you only get a message (no queued note to you).
    -R > Repeat processing the request until timeout.
    -F > Let server send note info for matching recipient(s). Any message
         part specify what to match with the realname of the recipient. 
    -L > Same as F, except you only get a message (no queued note to you).
    -C > Make sender's nicks be valid in all cases username@host is valid.
    -V > Make sender's "nick*" be valid in all cases username@host is valid.
    -X > Let server display if recipient signs on/off IRC or change
         nickname. Any message specified is returned to sender.
    -A > Show what server matching user is on using X flag.
    -J > Show what channel matching user is on using X flag.
    -U > Do not display nick-change using X flag.
    -E > Ignore request if nick, name and host matches the message text
         starting with any number of this format: 'nick!name@host nick!... '
*    -B > Send a message to every account who match the nick!user@host 
*         This creates a received list with flag H set. (see LS +h)
*    -T > Send a message not all nicks on same accounts too using B flag.
*    -K > Give keys to unlock privileged flags by setting that flags on.
*         The recipient does also get privileges to queue unlimited 
*         numer of requests, list privileged flags and see all stats.
*    -Z > Make it impossible for recipient to queue anything at all.
  Other flags which are only displayed but can't be set by user:
    -O > Request is queued by an operator.
    -G > Notice message is generated by server.
-    -B > Broadcasting message.
*    -H > Flag list for who's received Broadcast message (B flag).
-  Notice: Message is not sent to recipient using F, L, R or X flag.
-  Using this flags, no message needs to be specified.
*  Notice: Message is not sent to recip. using F, L, R, X, K, Z or H
*  flag (except if B flag is set for R). For this flags, no msg. needed.

  Examples:
    FLAG * +cj     : Switch on c and j flag for all requests.
    FLAG +x * +c   : Switch on c flag for all req. which have x flag.
    FLAG nick -c+j : Switch off c flag and which on j flag for nick
===========================================================================

*Usage: NOTE KEY [&<passwd>] [+|-<flags>] [+|-<maxtime>] <nick!user@host>
*  KEY is an alias for USER +KR (default max 1 day)
*  This command is for allowing no-opers to use oper-options by specifying
*  the flag to unlock. Be careful with this option!
*  Example: KEY +365 +s * would make it possible for everybody to use s flag.
===========================================================================

Usage: NOTE LOG [&<passwd>] [+|-<flags>] [#<ID>] <nick!username@host>
  Displays how long time since matching person was on IRC. This works 
  only after use of NOTE SPY. The log is protected to be seen for other
  users than the person who queued the SPY request. To get short
  output, do not specify any arguments. Example:
    LOG      : Print short log of all
    LOG *    : Print long log including real names of all
    LOG nick : Print long log for user nick.
===========================================================================

Usage: NOTE LS [&<passwd>] [+|-<flags>] [#<ID>]
         <nick!username@host> [<date>]
  Displays requests you have queued. No arguments would show you
  all requests without the message field.
  Use flags for matching all messages which have the specified flags set
  on or off. See HELP NOTE FLAG for more info about flag settings. Time 
  can be specified on the form day.month.year or only day, or day/month, 
  and separated with one of the three '.,/' characters. You can also 
  specify -n for n days ago. Examples: 1.jan-90, 1/1.90, 3, 3/5, 3.may.
  If only '-' and no number is specified max time is set to all days.
  The time specified is always the local time on your system. Example:
    LS !user    would show you all requests to username@*
    LS +x       would show all your SPY requests.
    LS #300     would show you only request #300.
===========================================================================

Usage: NOTE NEWS [&<passwd>] [+|-<flags>] [+|-<maxtime>]
         <group!username@host>
  NEWS with no message is an alias for USER +RS (default max 60 days)
  This command is for subscribing on a specified newsgroup from any
  user(s) or host(s). Wildcards may be used anywhere. Example:
    NEWS irc.note       : Subscribe on irc.note
*    NEWS irc.note@*.no  : Send to group irc.note, but only for
*                          users at host *.no
*    NEWS irc.note       : Send to all for group irc.note
*    NEWS Users@*.edu Hi : Send Hi to all users using note in your
*                          server located at host *.edu.
   (Advanced users may use User +rs <...> <filter> where filter is a 
   string which must matches with field in received news message)
-  Only opers can send news as default.
*  To send news add message and use same format as subscribing, except 
*  that username field must matches with subscribed group as alt.irc!*.irc - 
*  everybody subscribing on a*.irc or *.irc or alt.irc... would get the news.
*  A speciall case is the group Users which everybody using note in the server
*  are member of.
===========================================================================

Usage:
  NOTE USER [&passwd] [+-flags] [+-maxtime] <nick!username@host> <msg>
-   or  SEND|SPY|FIND|WAITFOR|NEWS <same as USER args.>
*   or  SEND|SPY|FIND|WAITFOR|WALL|WALLOPS|DENY|NEWS|KEY <see USER args.>
  NOTE LS|COUNT|RM|LOG [&pwd][+-flags][#ID] <nick!user@host> [date]
  NOTE FLAG [&passwd] [+-flags] [#ID] <nick!username@host> <+-flags>
*  NOTE SENT [NAME|COUNT|USERS] <f.nick!f.name@host> <date> [RM]
-  NOTE STATS [MSM|MSW|MUM|MUW|MST|MSF|USED]
-  NOTE SENT [NAME|COUNT]
*  NOTE STATS [MSM|MSW|MUM|MUW|MST|MSF|USED|RESET] [value]
*  NOTE SAVE

  The Note system have two main functions:
  1. Let you send one line messages to irc users which 
     they will get when they next sign on to irc.
     Example: NOTE SEND <nick> Hi, this is a note to you.
  2. Let you spy on people, to see when they sign on or off,
     change nick name or join channels.
     Example: NOTE SPY +100 <nick>  (spy on nick for 100 days)

  You may fill in none or any of the arguments listed above, including
  * or ? at any place, as nick@*.edu, !username, ni?k!username etc...
  Other usefull features may be NOTE WAIT <nick>, making nick and
  you get a message when you both are on at the same time.
 
  Note was developed 1990 by jarle@stud.cs.uit.no (Wizible on IRC).
===========================================================================

Usage: NOTE RM [&<passwd>] [+|-<flags>] [#<ID>] <nick!username@host>
  Deletes any messages sent from your nick and username which matches
  with nick and username@host. Use flags for matching all messages which
  have the specified flags set on or off. See HELP FLAG for more info
  about flag settings, and HELP LS for info about time.
===========================================================================

*Usage: NOTE SAVE
*  SAVE saves all messages with the save flag set. Notice that the
*  messages are automatically saved (see HELP STATS). Each time server is
*  restarted, the save file is read and messages are restored. If no users
*  are connected to this server when saving, the ID number for each
*  message is renumbered.
===========================================================================

Usage: NOTE SEND [&<passwd>] [+|-<flags>] [+|-<maxtime>]
         <nick!username@host> <msg>
  SEND is an alias for USER +D (default max 60 days)
  This command is for sending a message to recipient, and let the server
  send a note + a notice to sender if this is on IRC - if message is sent.
    SEND foobar Hello, this is a test.
    SEND +7 !username@*.edu Hello again!
===========================================================================

-Usage: NOTE SENT [NAME|COUNT]
*Usage: NOTE SENT [NAME|COUNT|USERS] <f.nick!f.name@host> <date> [RM]
  Displays host and time for messages which are queued without specifying
  any password. If no option is specified SENT displays host/time for
  messages sent from your nick and username.
  NAME displays host/time for messages sent from your username
  COUNT displays number of messages sent from your username
*  USERS Displays the number of messages in [], and names for all users
*  who have queued any message which matches with spec. nick/name/host.
*  RM means that the server removes the messages from the specified user.
===========================================================================

*Usage: NOTE SERVICE <nick> <note command>
*  Useful in robots. Note will take the requests as if from <nick>
===========================================================================

Usage: NOTE SPY [&<passwd>] [+|-<flags>] [+|-<maxtime>]
         <nick!username@host> [msg]
  SPY is an alias for USER +RX (default 1 max day)
  SPY makes the server tell you if any matching recipient sign(s)
  on/off IRC or change nick name. No message needs to be specified.
  However, if a message is specified this is returned to sender including
  with the message about recipient. Message could for example be one or
  more Ctrl-G characters to activate the bell on senders machine.
  As an alternative for using C flag, <msg> field could start with
  any number of nicks on this format: %nick1 %nick2... %nickn, with
  no space between % and the nick name you use. Spy messages would be
  valid for any of the nicks specified.
  SPY with no argument would tell you what users you have spy on who are 
  currently on IRC. The system logs last time the last matching person was 
  on IRC for each SPY request is queued in the server. See NOTE LOG for this.
  You may use flag +A to see what server matching user is on, 
  and/or +J flag to see what channel. (Read HELP NOTE USER for more). Example:
    SPY foobar!username@host <ctrl-G>
    SPY +10 foobar
    SPY +aj &secret * <ctrl-G>
    SPY +365 +e !user nick!*@* <ctrl-G>
    SPY % +7 foo!user
    SPY +5 nicky %mynick %meenick
===========================================================================

-Usage: NOTE STATS [MSM|MSW|MUM|MUW|MST|MSF|USED]
*Usage: NOTE STATS [MSM|MSW|MUM|MUW|MST|MSF|USED|RESET] [value]
  STATS with no option displays the values of the following variables:
    MSM: Max number of server messages.
    MSW: Max number of server messages with username-wildcards.
    MUM: Max number of user messages.
    MUW: Max number of user messages with username-wildcards.
    MST: Max server time.
    MSF: Note save frequency (checks for save only when an user register)
  Notice that 'dynamic' mark after MSM means that if there are more
  messages in the server than MSM, the current number of messages are
  displayed instead of MSM.
  Only one of this variables are displayed if specified.
*  You can change any of the stats by specifying new value after it.
*  RESET sets the stats to the same values which is set when starting the
*  server daemon if no note file exist. Notice that this stats are saved
*  in same file as the other messages.
===========================================================================

Usage: NOTE USER [&<passwd>] [+|-<flags>] [+|-<maxtime>]
         <nick!username@host> <msg>
  With USER you can queue a message in the server, and when the recipient
  signs on/off IRC, change nick or join any channel, note checks for
  valid messages. This works even if the sender is not on IRC. See HELP
  FLAGS for more info. 
  Password can be up to ten characters long. You may specify password 
  using the &, % or $ character. & is equal to to $, except working much
  better cause client use $ for other things...
  The % character works like &, except it makes the queuing silent. It
  makess also sense to use this without any following password.
  If any request queued is equal to any previous except time and maxtime,
  only maxtime is changed as specified. You then get "Joined" instead of
  "Queued". 
  HELP FLAGS for info about flag settings. Username can be specified
  without @host. Do not use wildcards in username if you know what it
  is, even if it's possible. Max time before the server automatically
  remove the message from the queue, is specified with hours with a
  '-' character first, or days if a '+' character is specified, as
  -5 hours, or +10 days. Default maxtime is 7 days.
  Note: The received message is *directly* displayed on the screen,
  without the need for a read or remove request.
    NOTE USER &secret +WN +10 Wizible!jarlek@ifi.uio.no Howdy!
  is an example of a message sent only to the specified recipient if
  this person is an operator, and after receiving the message, the server
  sends a note message back to sender to inform about the delivery.
    NOTE USER +XR -5 Anybody <ctrl-G>
  is an example which makes the server to tell when Anybody signs
  on/off irc, change nick etc. This process repeats for 5 hours.
    NOTE USER +FL @*.edu *account*
  is an example which makes the server send a message back if any real-
  name of any user matches *account*. Message is sent back as note from
  server, or directly as a notice if sender is on IRC at this time.
===========================================================================

Usage: NOTE WAITFOR [&<pwd>] [+|-<flags>] [+|-<maxtime>]
         <nick!username@host> [<msg>]
  WAITFOR is an alias for USER +YD (default max 1 day)
  Default message is [Waiting]
  This command is for telling the recipient if this appears on IRC that
  you are waiting for him/her and notice that this got that message. Example:
    WAITFOR foobar
    WAITFOR -2 foobar!username@*
    WAITFOR foobar Waiting for you until pm3:00..
===========================================================================

*Usage: NOTE WALL [&<passwd>] [+|-<flags>] [+|-<maxtime>]
*         <nick!user@host> <msg>
*  WALL is an alias for USER +BR (default max 1 day)
*  This command is for sending a message once to every matching user
*  on IRC. Be careful using this command. WALL creates a list of 
*  persons received the message (and should not have it once more time)
*  with H flag set. This list can be displayed using ls +h from the
*  nick and username@host which the WALL request is queued from.
*  Removing the headers (H) before WALL request is removed would cause
*  the message to be sent once more to what users specified in list.
*  WALL +7 @*.edu Do not do this! - Makes it clear for all users using 
*  IRC on host @*.edu the next 7 days how stupid it is to send such WALL's ;) 
===========================================================================

*Usage: NOTE WALLOPS [&<passwd>] [+|-<flags>] [+|-<maxtime>]
*         <nick!user@host> <msg>
*  WALLOPS is an alias for USER +BRW (default max 1 day)
*  This command is same as WALL, except only opers could receive it.
===========================================================================

NOTICE:
Usage: NOTICE <nickname>|<channel> <text of message>
  Sends a private message to the nicknames or list of nicknames
  specified.  Unlike MSG, no automated response messages (such as
  generated by IGNORE or an automaton) will be sent in response
  to a NOTICE.  Other than that, it's just like a MSG.

See Also:
  MSG for a description of parameters and switches.
===========================================================================

NOTIFY:
Usage: NOTIFY [[-]<nickname> [[-]<nickname> ...]]
  Use of this command lets you mark certain nicknames such that
  you will be warned when they signon or off of IRC.  When
  someone on your notify-list signs on, you will see a message
    *** Signon by <nickname> detected
  Likewise, when they signoff, you will see
    *** Signoff by <nickname> detected
  Someone will be shown as signed off if they change nicknames as well,
  so keep this in mind.

  You can modify how the signon and signoff messages are
  displayed using the ON NOTIFY_SIGNON and ON NOTIFY_SIGNOFF
  commands.

  Specifying a - before a nickname will remove notification
  checking for that nickname.  If no parameters are specified,
  the current status of each user on your notify list is
  displayed.  If you specify a + without any additional
  parameters:
    NOTIFY +
  you will be shown a list of only those people on your
  notification list who are currently on irc.
===========================================================================

ON:
ACTION          EXEC_PROMPT   MSG             PUBLIC_OTHER     TOPIC
CHANNEL_NICK    FLOOD         MSG_GROUP       RAW_IRC          WALL
CHANNEL_SIGNOFF HELP          NAMES           SEND_ACTION      WALLOP
CONNECT         HOOK          NICKNAME        SEND_DCC_CHAT    WHO
CTCP            IDLE          NOTE            SEND_MSG         WINDOW
CTCP_REPLY      INPUT         NOTICE          SEND_NOTICE      WINDOW_KILL
DCC_CHAT        INVITE        NOTIFY_SIGNOFF  SEND_PUBLIC      numeric
DCC_RAW         JOIN          NOTIFY_SIGNON   SEND_TALK        serial_numbers
DISCONNECT      LEAVE         ON              SERVER_NOTICE
EXEC            LIST          PUBLIC          SIGNOFF
EXEC_ERRORS     MAIL          PUBLIC_MSG      TALK
EXEC_EXIT       MODE          PUBLIC_NOTICE   TIMER
===========================================================================
Usage: ON [#|+|-|^|&|@]ACTION [-|^]<paramters> <action>
  This is activated whenever you receive an ACTION from someone.
  The parameters for the action are as follows:
    $0    nickname of person who sent the ACTION
    $1    to whom (nickname or channel) the ACTION was sent
    $2-   The message
===========================================================================

Usage: ON [#|+|-|^|&|@]CHANNEL_NICK [-|^]"<channel> [<nick>]" [action]
  This is activated whenever someone on a channel you are on
  changes their nickname. The parameters for this function are:
    $0  The channel from which that person has changed nick
    $1  Original nickname for that person
    $2  New nickname for that person
===========================================================================

Usage: ON [#|+|-|^|&|@]CHANNEL_SIGNOFF [-|^]"<channel> [<nick>]" [action]
  This is activated whenever someone on a channel you are on
  leaves irc.  Normally, the display would show:
    *** Signoff: <nickname>
  but, of course, you can change this.  If <nick> is your own
  nickname, then the action will be taken when you exit
  from irc.  The parameters are as follows:
    $0  The channel from which the person signed off
    $1  Nickname of person who left irc
    $2- Text of Signoff message. 
===========================================================================

Usage: ON [#|+|-|^|&|@]CONNECT [-|^]<server> [action]
  This is activated whenever you receive a connect to a server.
  The parameters for the action are as follows:
    $0    The name of the server you connected to.
===========================================================================

Usage: ON [#|+|-|^|&|@]CTCP [-|^]<parameters> [action]
  This event is activated whenever someone sends a client-to-client
  protocol (CTCP) request.  Certain CTCP types are have predefined
  actions that you can't override with the ^, but you can use the
  to create your own CTCP protocols.  The parameters are:
        $0      nick of person who send CTCP
        $1      who the ctcp was to (either your nick or a channel)
        $2      The CTCP command word
        $3-     Any additional arguments
  For example, if you want to set up a new ctcp function called 
  CHEESE, you  would do:
    ON -CTCP "* * CHEESE" CTCP $0 $2 Say Cheese!
  Using the /CTCP in an ON CTCP automatically sends the proper 
  reply format.  If someone no send you a:
    CTCP <yournick> CHEESE
  you will see:
    *** CTCP CHEESE from <theirnick>:
  and they will see:
    *** CTCP REPLY CHEESE from <yournick>: Say Cheese!
  
See Also:
  CTCP
  ON CTCP_REPLY
===========================================================================

Usage: ON [#|+|-|^|&|@]CTCP_REPLY [-|^]<parameters> [action]
  This event is activated when you receive a reply from a CTCP
  request that you made (with the CTCP command).  For example,
  if you did:
    CTCP BigCheese VERSION
  you would receive a:
    *** CTCP REPLY VERSION from BigCheese: IRCII 2.1beta2 Unix
  from BigCheese.  However, if you had:
    ON ^CTCP_REPLY "* VERSION" /echo $0 is using $2-
  and did the CTCP show above, you would get something like:
    BigCheese is using IRCII 2.1beta2 Unix
  The parameters are:
    $0   nick of person who sent the reply
    $1   The CTCP command being replied to
    $2-  The reply itself (depends on $1)
  Note: You may NOT use the CTCP command in an ON CTCP_REPLY.  
  It simply will report an error message to you and not work.  
  It is illegal to do this and it is not supported.
===========================================================================

Usage: ON [#|+|-|^|&|@]DCC_CHAT [-|^]<paramters> [action]
  This is activated whenever you receive a DMSG from someone.
  The parameters for the action are as follows:
    $0    nickname of person who sent the DMSG
    $1-   The message

  Warning: As DMSG is outside the IRC protocol, it allows you to send
  a DMSG from an ON DCC_CHAT. This has the potential to create loops.
  If you intend to send a DMSG from DCC_CHAT you are responsible for
  ensuring that it will not create a loop.
===========================================================================

Usage: ON [#|+|-|^|&|@]DCC_RAW [-|^]<paramters> [action]
  This is activated whenever you receive a raw message from 
  a tcp connection established with $CONNECT().
  The parameters for the action are as follows:
    $0    file descriptor for the connection.
    $1    host name in connection
    $2    code as listed below
    $3-   data or port number depending on code. 

  Incoming messages can be intercepted with ON DCC_RAW,
  which has the following formats:

          fd host D data
          fd host C
          fd host N port
          fd host E port

  The D message indicated incoming data.
  The C message indicates that the socket has been closed.
  The N message indicates that a socket listening on the
  specified port has accepted a connection. fd in this case
  is the file descriptor for the new connection.
  The E message is generated when a CONNECT() results in a
  successful connection.

  Conventions to be used for the socket access:

          Scripts using sockets should never use the
          serial number 0 in their hooks. As their first
          act before using the DCC_RAW hooks, they should
          set:

          ON ^DCC_RAW * #

          To ensure that all raw DCC sockets produce no
          output.

          A new set of hooks should be created for each
          active socket at a chosen serial number. One
          must always exist to detect the close message,
          and as its last act must remove all the hooks
          for that file descriptor.

See Also:
  DCC RAW
  ALIAS FUNCTIONS
===========================================================================

Usage: ON [#|+|-|^|&|@]DISCONNECT [-|^]<parameters> [action]
  This is activated whenever you are disconnected from an
  irc server and IRCII's automatic reconnection techniques
  can't get you reconnected.  This would be any situation
  which you would see
    *** Use /SERVER to connect to a server
  Parameters:
    $0  Last server you were connected to
===========================================================================

Usage: ON [#|+|-|^|&|@]EXEC [-|^]<paramters> [action]
  This is activate whenever an EXEC'd process produces output
  to its standard output channel.  The process number is the
  number assigned by EXEC to the process (see HELP EXEC).  The
  parameters to this function are:
    $0   The process number that activated the ON
    If the EXEC was called with EXEC -name <process name>
    then $0 matches this name instead. This is very useful
    for keeping the processes separated out.
    $1- The line of output to stdout
===========================================================================

Usage: ON [#|+|-|^|&|@]EXEC_ERRORS [-|^]<parameters> [action]
  This is activate whenever an EXEC'd process produces output
  to its standard error channel.  The process number is the
  number assigned by EXEC to the process (see HELP EXEC).  The
  parameters to this function are:
    $0  The process number that activated the ON
    This may also use the process name.  (See ON EXEC)
    $1- The line of output to stderr
===========================================================================

Usage: ON [#|+|-|^|&|@]EXEC_EXIT [-|^]<parameters> [action]
  This is activated when any EXEC'd process exits.  The parameters
  are:
    $0   Process number or logical name (if assigned)
    $1   Signal that killed the process (or 0 if it exited normally)
    $2   Exit code for process (non-zero only if $1 is 0)
===========================================================================

Usage: ON [#|+|-|^|&|@]EXEC_PROMPT [-|^]<parameters> [action]
  This is activated whenever an EXEC'd process displays a 
  "prompt".  A "prompt" is defined as any line of output from
  a process that doesn't end in a carriage return - line feed.
  The parameters are:
    $0   process number or logical name (if assigned)
    $1   The prompt string
===========================================================================

Usage: ON [#|+|-|^|&|@]FLOOD [-|^]<parameters> [action]
  The FLOOD type is activated whenever someone sends a lot of 
  information very rapidly to you, your channel, or the system at 
  large (ie: a wallop).  Usually, this is caused when someone dumps
  a file to your channel or to you.  The parameters for this are:
    $0   The nick of the flooder
    $1   The type of flooding being done 
    $2-  The content of the flooding message

  General use for ON FLOOD is as follows:
    ON ^FLOOD *
  This will automatically prevent flooding messages from being 
  displayed and automatically disable itself when the flooding
  has stopped.

  If you use services like IRCIIHelp or NickServ, these can appear to
  IRCII as floods, but if you add to following ON lines:
    ON FLOOD ^IRCIIHelp
    ON FLOOD ^NickServ
  These will not be treated as floods and will let their messages through.

  Warning:  There are occasions where ON FLOOD can be inadvertantly 
  activated (such as after a net-burp, or after you have ^Z'd for a
  while).  Therefore, I strongly advise against using KILL or even
  KICK as the action taken by an ON FLOOD.  

See Also:
  SET FLOOD_AFTER
  SET FLOOD_RATE
  SET FLOOD_USERS
  SET FLOOD_WARNING
===========================================================================

Usage: ON [#|+|-|^|&|@]HELP [-|^]<parameters> [action]
  ON HELP is activated for each line of the HELP command 
  that is displayed.  There is probably no other use 
  for this except by IRCIIHelp.  So ignore it.
===========================================================================

Usage: ON [#|+|-|^]HOOK [-|^]<any pattern> [action]
  This is activated whenever you receive a HOOK.  HOOKs are generated
  by the user for one purpose, which is to activate ON HOOK.
  The parameters for the action are as follows:
   $0   First word of text
   $1   Second word of text..
   $2-  Rest of pattern.   Can use whatever you like.
  Basically if you have an ON HOOK pattern   and you send a HOOK command
  that matches the pattern it will be activated.  This is useful for
  testing ON patterns, and sending commands from within scripts and 
  aliases which can be either ignored or acted upon (ON HOOK).

See Also:
  ON
  HOOK
===========================================================================

Usage: ON [#|+|-|^|&|@]IDLE [-|^]<parameters> [action]
  This is activated when IRCII has been idle for a period of
  time.  Idleness is in minutes from the last keystroke.
  Parameters:
        $0       minutes idletime

  So, ON IDLE 5 /ECHO FINISHED will print out "FINISHED"
  after a period of 5 minutes without any key pressed.
===========================================================================

Usage: ON [#|+|-|^|&|@]INPUT [-|^]<parameters> [action]
  This is activated whenever you send a line of input to either
  a channel or a query user.  This means that if you type in a
  message and hit return, ON INPUT can be activated.
  ON INPUT can catch and process any input line.

Note: The fact that you can capture any line and suppress further
  normal processing means you can completely disable the client
  by accident or on purpose.  Don't use this function if you don't
  know exactly what you are trying to do.
  Parameters are:
    $0   Text of line
  If you use ^ to suppress the processing of the line, you can 
  do your own pre-processing and send the line back to the client 
  with a call to SENDLINE.
  Note $[1]0 is the first character of the first word of the line.
  Also, the $T var can show you who or what you're talking to at
  any given moment.

See Also:
  SET INPUT_PROTECTION
  ALIAS special
===========================================================================

Usage: ON [#|+|-|^|&|@]INVITE [-|^]<parameters> [action]
  This is activated whenever you receive an INVITE.  The
  parameters for the action are as follows:
    $0    nickname of person who invited you
    $1    the channel to which you are being invited
===========================================================================

Usage: ON [#|+|-|^|&|@]JOIN [-|^]<parameters> [action]
  This is activated whenever someone joins a channel you are on.  
  The parameters for the action are as follows:
    $0    nickname of person who joined the channel
    $1    the channel which was joined
===========================================================================

Usage: ON [#|+|-|^|&|@]LEAVE [-|^]<parameters> [action]
  This is activated whenever someone leaves a channel you are on.  
  The parameters for the action are as follows:
    $0    nickname of person who left the channel
    $1    the channel which which was left
===========================================================================

Usage: ON [#|+|-|^|&|@]LIST [-|^]<parameters> [action]
  When LIST is activated any outputline will be modified
  by [action].
  For example:
    ON LIST "* 5 *" /ECHO NUMBER OF USERS: 5
  
  The parameters are as follows:
    $0    channel name
    $1    number of users on channel
    $2-   topic of channel
===========================================================================

Usage: ON [#|+|-|^|&|@]MAIL [-|^]<count> [action]
  This is activated whenever you receive new mail (non-irc mail)
  or when you start up irc and you have mail.  You can use this
  to replace the standard "*** You have new mail" banner with
  anything you like.  The parameters for this function are:
    $0  The number of new mail messages
    $1  Total number of mail messages
  On startup, new mail messages will be all messages found.
  After that, for example if you had 2 messages and a new
  message came in, new messages would be 1.  Here are a few
  examples of how to use this:
    ON ^MAIL 1 /echo *** You have $0 new mail message, total of $1
    ON ^MAIL * /echo *** You have $0 new mail messages, total of $1
  These will display the number of new messages that arrive.
  Here is another example:
    ON ^MAIL * /comment
  This will disable the display of any message when you have
  mail.  Setting the MAIL variable to OFF will also have this
  effect, but this will also disable the total mail messages
  count in the status line.
===========================================================================

Usage: ON [#|+|-|^|&|@]MODE_CHANGE [-|^]<parameters> [action]
  This is activated whenever someone on a channel you are on
  changes the mode for that channel (see HELP MODE).  The 
  parameters for this function are:
    $0  The nickname of the person who changed the mode
    $1  The channel on which the mode was changed
    $2- The new mode settings for that channel
===========================================================================

Usage: ON [#|+|-|^|&|@]MSG [-|^]<parameters> [action]
  This is activated whenever you receive a MSG from someone.
  The parameters for the action are as follows:
    $0    nickname of person who sent the MSG
    $1-   The message

  Warning: If you attempt to send a MSG from within a MSG
  action, it will be automatically converted to a NOTICE, as
  this will prevent MSG loops from being sent between two or
  more users.  Also, you will not be permitted to send either
  MSGs or NOTICEs from within a NOTICE action.  The irc protocol
  states that NOTICEs may not generate automatic replies so this 
  will prevent loops of automatic messages from flooding the net.
===========================================================================

Usage: ON [#|+|-|^|&|@]MSG_GROUP [-|^]<parameters> [action]
  This is activated whenever you receive a message sent to a
  "group" of people, such as a message from an operator to 
  everyone on a given server.  
  Parameters:
        $0      Sender
        $1      Group being sent to
        $2-     Text of message
===========================================================================

Usage: ON [#|+|-|^|&|@]NAMES [-|^]<parameters> [action]
  When NAMES is activated any outputline will be modified
  by [action].
  For example:
    ON NAMES * /echo $0 $1-

  The parameters are as follows:
    $0    name of the channel
    $1    all users on this channel
===========================================================================

Usage: ON [#|+|-|^|&|@]NICKNAME [-|^]<parameters> [action]
  This is activated whenever someone on a channel you are on
  changes their nickname. The parameters for this function are:
    $0   Original nickname for that person
    $1   New nickname for that person
===========================================================================

Usage: ON [#|+|-|^|&|@]NOTE [-|^]<parameters> [action]
  This is activated whenever you receive an irc NOTE.
  The parameters for the action are as follows:
    $0    nickname of person who sent the note
    $1    The user@hostname of the person who sent the note
    $2    The note flags (see HELP NOTE FLAGS)
    $3-7  The time the note was queued.
    $8    The server from which the note was queued
    $9-   The message itself
===========================================================================

Usage: ON [#|+|-|^|&|@]NOTICE [-|^]<parameters> [action]
  This is activated whenever you receive a NOTICE from someone.
  The parameters for the action are as follows:
    $0    nickname of person who sent the NOTICE
    $1-   The message

  Warning: If you attempt to send a MSG from within a MSG
  action, it will be automatically converted to a NOTICE, as
  this will prevent MSG loops from being sent between two or
  more users.  Also, you will not be permitted to send either
  MSGs or NOTICEs from within a NOTICE action.  The irc protocol
  states that NOTICEs may not generate automatic replies so this 
  will prevent loops of automatic messages from flooding the net.
===========================================================================

Usage: ON [#|+|-|^|&|@]NOTIFY_SIGNOFF [-|^]<parameters> [action]
  This is activated when someone on your notify list (see
  NOTIFY) signs off of irc.  The parameters to the action are:
    $0  Nickname of person who signed off
===========================================================================

Usage: ON [#|+|-|^|&|@]NOTIFY_SIGNON [-|^]<parameters> [action]
  This is activated when someone on your notify list (see
  NOTIFY) signs onto irc.  The parameters to the action are:
    $0  Nickname of person who signed on
===========================================================================

Usage: ON [#|+|-|^|&|@]<event> [serial] [-|^]<match> [action]
  The ON command lets you set up actions which will occur when
  certains events happen.  For example, you can create
  "personalized" away messages for different individuals,
  periodic actions that occur at specific times, just to name
  a few.

  Note that using ON JOIN and ON LEAVE to automatically greet
  people entering or leaving your channel is extremely poor
  etiquette. See /HELP ETIQUETTE.

ON [mode]<event> [-|^]<match> [action]
ON [mode]#<event> <serial number> [-|^]<match> [action]

  There are seven modes for each event.  I've shown the # mode
  as a separate line because it requires a serial number.
  Different modes are specified by preceeding the event with
  one of the following characters:
    +           Make event very noisy.  It will display
                everything it does.
    -           Make event quiet.  It will not display any of
                it's actions.
    ^           Make event silent.  Just like - above except it
                inhibits the normal event display as well.  The
                only command that will cause output in this mode
                is the ECHO command.  This can be used to redefine 
                how event messages look.
    &           Make the /ON local to only your own server.  e.g.
                  /on -&msg * echo One of mine
                Will echo "One of mine" ONLY when someone from my own
                current server sends me a message.  If nothing matches
                in this list, then it will resort to the default ONs.
                Of if there was an /ON ^msg * echo :$0: $1- then it 
                it will use that for anyone not on your server.
    @           This is like & except that it is exclusive to your
                server.  It will NOT look at the default ONs if 
                there is no match for your own server.
    #           Allows you to assign a serial number to the specific
                <event> such that you can have multiple ON's trigger
                of one <event>.  Further discussion of this below.
                Note this is a pound sign NOT a number. The serial
                number comes right after the <event>.
  If no character is specified, you will be warned upon activation 
  of an event (this is somewhere between the + and - modes).

  The <match> parameter may be a single word, or a list of words 
  surrounded by double quotes (").  The <match> determines 
  specifically which events of the given <event> will cause 
  the action to take place.  The <match> may contain wildcards,
  and the specifics of the <match> parameter are dependant on
  the <event> type.  
  
  If the <match> is preceeded by a -, that entry will be
  removed from the action list.  For example:
    ON PUBLIC -BigCheese
    ON INVITE  -"* +Har"
  The first will remove "BigCheese" from the PUBLIC list, the second will
  remove -"* +Har" from the INVITE list.
  You can remove all entries from a given event list by doing
  the following:
    ON <event> -
  For example:
    ON MSG -
  removes all entries in the ON MSG list.

  If the <match> is preceeded by a ^, then no action will be taken
  for a match for that event (this is used when you wish
  to exclude a nickname or list of nicknames from a larger
  wildcard match, see HELP ON FLOOD for an example).  

  Added two new wildcards to the pattern matching system.
  '%' matches any sequence of characters except a space.
  '?' matches any single character.
  e.g.  ON ^msg "bob % % blue" whatever
  would match a message from bob with two words and then the word
  'blue'.
 
  The [action] parameter is that action that will occur when the
  specified event occurs which matches the given <match>.
  The action parameter is parsed by the command parse in exactly
  the same way as an IRCII alias is parsed, using the same inline
  variable expansions (See ALIAS).  Also, depending on the
  event that is activated, there will be certain values passed
  as arguments to the action, just as if they were arguments to
  an alias.  You may use the $0, $1, $2... etc variables to
  expand out these arguments.  The arguments passed for each
  event are described in the individual help files for each event.

  Here are some examples:
    ON -MSG *cheese* /NOTICE $0 No Cheese Messages Please!
  Whenver a MSG is received from anyone with a nickname with
  cheese in it, a NOTICE will be sent out to that user.  This
  action will generate no noticeable effect to you (it is marked
  as "quiet").

    ON MSG ^BigCheese
  If used with the first example above, this will prevent the
  action from being taken when a message is sent from BigCheese.

  Here is an example of how to redefine the way a
  message looks:
    ON ^MSG * /ECHO :$0: $1-
  All MSGs received from now on will look:

  :BigCheese: Hello!
  The same can be done with the other event types.

IMPORTANT IMPORTANT: A full discussion of serial numbers is
  given in HELP ON serial_numbers as there is too 
  much to place directly in this help file. Please read this one
  as it will help prevent collisions between different scripts.

  More examples are given for the individual event types.

See Also:
  ON serial_numbers
  ircII programming
  ALIAS
  expressions  (Special Cases is of particular relevance)
===========================================================================

Usage: ON [#|+|-|^|&|@]PUBLIC [-|^]<parameters> [action]
  This is activated whenever you receive a message from someone
  on a channel which is also one of your current channels.
  The parameters for the action are as follows:
    $0    nickname of person who sent the message
    $1    channel sent to
    $2-   the message

  Listen to what the phonemaster says ;)
  <phone> public_msg is for a message from someone NOT on the channel
  <phone> public_other is for a message on a channel that doesn't belong to
          a window...
  <phone> public is for a message on a channel that belongs to a window!

See also:
  ON PUBLIC_OTHER
  ON PUBLIC_MSG
===========================================================================

Usage: ON [#|+|-|^|&|@]PUBLIC_MSG [-|^]<parameters> [action]
  This is activated whenever you receive a message to your channel
  from someone not on that channel.
  The parameters for the action are as follows:
    $0    nickname of person who sent the message
    $1    the channel to which the message was sent
    $2-   the message
===========================================================================

Usage: ON [#|+|-|^|&|@]PUBLIC_NOTICE [-|^]<parameters> [action]
  This is activated whenever you receive a NOTICE to your channel
  from someone not on that channel.
  The parameters for the action are as follows:
    $0    nickname of person who sent the NOTICE
    $1    the channel to which the NOTICE was sent
    $2-   the message
===========================================================================

Usage: ON [#|+|-|^|&|@]PUBLIC_OTHER [-|^]<parameters> [action]
  This is activated whenever you receive a message from someone
  on a channel that you are also on which is not one of your
  current channels.
  The parameters for the action are as follows:
    $0    nickname of person who joined the channel
    $1    name of channel message was sent to
    $2-   the message
===========================================================================

Usage: ON [#|+|-|^|&|@]RAW_IRC [-|^]<parameters> [action]
  This is activated whenever a message is received from a server which is
  not understood by IRCII. Under normal circumstances this will never
  happen, however if used in conjunction with /QUOTE, this ON function
  can be used to test new features being added to a server. This will
  normally be used in conjunction with /ALIAS

IMPORTANT NOTE: ON RAW_IRC can and will seriously impede the operation of the
  client if not used correctly.  If you use ON ^RAW_IRC to suppress a 
  message then the client will ignore it internally as well.  Various
  internal databases will be corrupted and such.  Be careful.

See Also:
  ALIAS
  QUOTE
===========================================================================

Usage: ON [#|+|-|^|&|@]ACTION [-|^]<parameters> <action>
  This is activated whenever you send an action, with ME
  DESCRIBE or CTCP ACTION.
  The parameters for the action are as follows:
    $0    nickname or channel name to which the action was sent
    $1-   The message
===========================================================================

Usage: ON [#|+|-|^|&|@]SEND_DCC_CHAT [-|^]<parameters> [action]
  This is activated whenever you send a DMSG to someone else.
  The parameters for the action are as follows:
    $0    nickname of person to whom you sent the DMSG
    $1-   The message itself
===========================================================================

Usage: ON [#|+|-|^|&|@]SEND_MSG [-|^]<parameters> [action]
  This is activated whenever you send a MSG to someone else.
  The parameters for the action are as follows:
    $0    nickname of person to whom you sent the MSG
    $1-   The message itself
===========================================================================

Usage: ON [#|+|-|^|&|@]SEND_NOTICE [-|^]<parameters> [action]
  This is activated whenever you send a NOTICE to someone else.
  The parameters for the action are as follows:
    $0    nickname of person to whom you sent the NOTICE
    $1-   The message itself
===========================================================================

Usage: ON [#|+|-|^|&|@]SEND_PUBLIC [-|^]<parameters> [action]
  This is activated whenever you send a message to a channel you
  are on.
  The parameters for the action are as follows:
    $0    Name of the channel to which the message is going
    $1-   The message itself
===========================================================================

Usage: ON [#|+|-|^|&|@]SEND_TALK [-|^]<user[@host]> [action]
  This is activated whenever you send a TALK MSG to someone else.
  The parameters for the action are as follows:
    $0    user[@host] of person to whom you sent the DMSG
    $1-   The message itself
===========================================================================

Usage: ON [#|+|-|^|&|@]SERVER_NOTICE [-|^]<parameters> [action]
  This is activated whenever you receive a message from the server
  as a NOTICE. This is basically anything beginning with "***" which
  is sent to you by the server, and the MOTD.

  The parameters for the action are as follows:
    $0    The name of the server which sent you the message
    $1    The first word of the text sent - probably "***" or "MOTD"
    $2-   The message
===========================================================================

Usage: ON [#|+|-|^|&|@]SIGNOFF [-|^]<parameters> [action]
  This is activated whenever someone on a channel you are on
  leaves irc.  Normally, the display would show:
    *** Signoff: <nickname> (<reason>)
  but, of course, you can change this.  If <nick> is your own
  nickname, then the action will be taken when you exit
  from irc.  The parameters are as follows:
    $0  Nickname of person who left irc
    $1- Reason for the sign-off.
===========================================================================

Usage: ON [#|+|-|^|&|@]TALK [-|^]<user> [action]
  This is activated whenever you receive a TALK message from someone.
  The parameters for the action are as follows:
    $0    user name of person who sent the TALK message
    $1-   The message
===========================================================================

Usage: ON [#|+|-|^|&|@]TIMER [-|^]<time> [action]
  This is activated whenever the real-time clock is equal to the
  time specification you gave it.  The time specifications should
  be one of two forms:
    HH:MM[AM|PM]   where 1<=HH<=12 and 0<=MM<=59
    HH:MM          where 0<=HH<=23 and 0<=MM<=59
  which form you use depends on the current setting of
  CLOCK_24HOUR.  Time specification may include wildcards as
  well.  The matching of the real-time clock and the time
  specification is a pure textual match.  Of course, wildcards
  may be used in the time specification.
  The parameters for the action are as follows:
    $0    The time (format depends on CLOCK_24HOUR variable)

See Also:
  SET CLOCK_24HOUR
===========================================================================

Usage: ON [#|+|-|^|&|@]TOPIC [-|^]"<nickname> channel" [action]
  This is activated whenever someone changes the topic    
    $0    nickname of person who changed the topic
    $1    The channel on which the topic was changed
    $2-   The new topic
===========================================================================

Usage: ON [#|+|-|^|&|@]WALL [-|^]<parameters> [action]
  This is activated whenever you receive a WALL (a global
  message from an irc operator).

Note:
  WALL is dead.. Don't even bother.
===========================================================================

Usage: ON [#|+|-|^|&|@]WALLOP [-|^]<parameters> [action]
  This is activated whenever you receive a WALLOP (a message 
  sent to all operators on irc).
  The parameters for the action are as follows:
        $0      Sender
        $1      + if sender is an oper, - if sender is a normal user, 
                S if sender is a server
        $2-     text of message
===========================================================================

Usage: ON [#|+|-|^|&|@]WHO [-|^]<parameters> [action]
  This is activated whenever the reply of a /WHO comes in.
  The parameters for the action are as follows:
    $0    The channel the user is on, or 'Channel' for the /who header line.
    $1    Nickname.
    $2    Status. (Here, Gone, *Operator, [ @ChannelOperator ])
    $3    Username (login name)
    $4    Host (host machine)
    $5-   Full Name or other User Data.

See Also:
  ON WHO
===========================================================================

Usage: ON [#|+|-|^|&|@]WINDOW [-|^]<parameters> [action]
  This is activated whenever text is sent to a matching window.
  This can be used to echo information from one window to a
  channel.  WARNING!!!  If you aren't careful you can get into some
  infinite sending loops!  Use with care!
  Parameters:
    $0   Refnum or name of window
    $1-  text of line sent to window
===========================================================================

Usage: ON [#|+|-|^|&|@]WINDOW_KILL [-|^]<parameters> [action]
  Whenever a window is killed (checked out by parameter * or number
  for the window (see HELP WINDOW)), action is done.
  The parameters are:
    $0    Refnum or name of the window
===========================================================================

Usage: ON [#|+|-|^|&|@]<numeric> [-|^]<parameters> [action]
  This is activated whenever a numeric message of that number arrives.
  The legal range of values for <numeric> are from 001 to 999.
  Numeric messages are special replies send by the server to the client
  in the raw irc protocol.  They are useful to intercept if you are 
  writing a service using ircII.  For more details about what numbers
  represent what messages from the server, please see the irc server
  source code.  
  The parameters for the action are as follows:
    $0    name of the server who sent the message
    $1    number of numeric message
    $2-   parameters (depends on the numeric message)

See Also:
  SET SHOW_NUMERIC
===========================================================================

How to use SERIAL NUMBERS
  This describes the use of serial numbers in ON functions, 
  and is a direct extension of the basic ON help file.

  It is now possible to have more than one ON hook executed for
  each event triggering a hook. This has been done by adding a
  new serial number concept to the ON command. Each ON hook has
  a serial number attached. Serial numbers can be any number
  from -maxint to maxint, with the default being 0.

  When an event triggers a hook, IRCII now goes through the ON
  hooks added for that event, and for each serial number used
  by ON hooks in that hook type, finds the best match out of those
  ON hooks which have that serial number and executes that ON
  hook. The hooks are executed in order of serial number. Thus
  if you set up the following set of MSG hooks.

          ON #^MSG -666 * echo Message coming:
          ON ^MSG * echo Message from $0: $1-
          ON #^MSG 666 * echo I got one, I got one!
          ON #^MSG 666 WiZ echo WiZ hath spoken

  will cause the following to appear when you receive a message:

          Message coming:
          Message from nick: text
          I got one, I got one!

  And the following if you receive a message from WiZ:

          Message coming:
          Message from WiZ: text
          WiZ hath spoken

  The default serial number is 0, and the serial numbers are always
  executed in order, starting with the lowest, and ending with the
  highest.

  Although the '^' modifier can be used with any serial number,
  it will only suppress the default action if used with serial
  number 0. Thus if the only message hook you have is:

          ON #^MSG -666 * echo Incoming:

  You will see the following when you receive a message:

          Incoming:
          *nick* text

  It is advisable to place any ON hooks which do not suppress the
  default action in a serial number other than 0. In particular,
  TIMER hooks, which are generally not intended to exclude other
  TIMER hooks, should be placed at different serial numbers wherever
  possible, and never on 0 (since 0 is the most likely place to
  get a clash if anybody does use it).

See Also:
  ON
===========================================================================

OPER:
Usage: OPER [<nickname> [<password>]]
  Gives you operator priviledges if the correct nickname and
  password are given.  If password is not given, you will be
  prompted for one.  If no nickname is given, your current
  nickname will be used.

See Also:
  DEOP
  MODE
===========================================================================

PARSEKEY:
Usage: PARSEKEY <key function>
  The argument is one of the key functions, and the effect is the
  same as would be if you pressed a key bound to that function.
  These are the same functions as specififed when using BIND.  E.g.
    PARSEKEY ERASE_TO_BEG_OF_LINE   will execute that function
  just as though the key bound to that function had been pressed.

See Also:
  BIND
===========================================================================

PART:
See LEAVE for more information about PART.
===========================================================================

PING:
Usage: PING <nickname>
  This command will send a CTCP PING <current time> to the given
  nickname or nicknames.  The remote client will bounce the time
  back and that is compared with the new current time.  The
  difference in the two times, is how long it takes for a message
  to get to that person and get back.  This should give you some
  idea of how slow or fast the network is.  Do not use with too
  long a list of nicknames or server flood control will kick in
  and the return times will be inaccurate.

See Also:
  CTCP
===========================================================================

QUERY:
Usage: QUERY [<nicknames>|%n|/<command>]
  Starts a private conversation with <nicknames>.  All text you
  type that would normally be sent to your channel now goes to
  <nicknames> in the form of MSGs.  To cancel a private
  conversation, use QUERY with no arguments.  The %n arguments
  allows you to send the query text to a process number n.  The
  process must have already been started using a previous call
  to EXEC.  It's also possible to query someone on a
  DCC connection with  QUERY =nickname.
  Another form has been added which allows you to send messages to
  the specified command with the format QUERY /COMMAND
  and everything you type will be parsed by that /command.  Can be
  an alias or anything you like. Note that when querying a command,
  you may need to use XECHO -WINDOW to ensure output goes to the 
  right place.
  If "*" is given as a nickname the output is sent to the current
  channel.

See Also:
  EXEC
  DCC QUERY
===========================================================================

QUIT:
Usage: QUIT [<reason>]
  Quits your IRC session. If a reason is supplied, it is displayed
  to other people on your channels.
  BYE, EXIT and SIGNOFF are identical.
===========================================================================

QUOTE:
Usage: QUOTE <server command>
  Send a command directly to the server.  No parsing is done by
  the client.
===========================================================================

REDIRECT:
Usage: REDIRECT <nick|channel|process|=nick> <cmd>
  This will send the output from the given command to the
  specified nickname, channel, or started process.  For 
  example: 
    REDIRECT #Har /WHOIS bigcheese
  This sends the result of "WHOIS bigcheese" to channel #Har.  
  There is an implicit WAIT built into the REDIRECT command.
  This means that all output will be redirected until the
  given command has finished executing.  This can have some
  unpredictable results, so use it with caution.
  If you want to redirect output to a DCC CHAT connection
  then specify the last form REDIRECT =nick command.
  If the nickname|channel is given as the char "*" output will be
  redirected to the current channel.
===========================================================================

REHASH:
Usage: REHASH
  Forces the server to re-read its configuration file.
===========================================================================

RESTART:
Usage: RESTART
  Causes your server to restart itself, or more correctly, to start up
  the binary with the path you have defined in the ircd's config.h.
===========================================================================

SAVE:
Usage: SAVE [<filename>]
  This will save all of the settings of IRCII to a file.  It
  saves all of the Key Bindings, Variables, and Aliases (in that
  order) in a format such that they can be loaded into IRCII
  using the LOAD command or the -l switch.  If no filename is
  given, the your default .ircrc file will be used (unless
  changed with the -l switch).

See Also:
  LOAD
  ircII command_line_args
===========================================================================

SAY:
Usage: SAY <text>
  This command is to permit aliases, binds, scripts and similar to send
  a message to the current channel as if it were typed. This is equivalent
  to typing '/ <text>'.

See Also:
  SEND
  ircII programming
===========================================================================

SEND:
Usage: SEND <text>
  This command is to permit aliases, binds, scripts and similar to send
  a message to the current channel or query as if it were typed.

See Also:
  SAY
  ircII programming
===========================================================================

SENDLINE:
Usage: SENDLINE <line of text>
  SENDLINE will send a line to the client EXACTLY as though you had
  typed it at the command line.  However, unlike TYPE it is not
  displayed in the command line.  All alias expansion or command
  processing is done after it's sent as it normally would be when you 
  send a line with RETURN.  It can be used with ON ^INPUT
  if you're extremely careful.

See Also:
  ON INPUT
  SET INPUT_PROTECTION
===========================================================================

SERVER:
Usage: SERVER [<name of server>|<number in server_list> [<port>]]
       SERVER [+|-]
       SERVER -DELETE <number in server_list>
  Switches your primary server to the server specified at the
  specified port number.   If no port number is given, the default
  port number is used.   Your channel and AWAY status will remain
  unchanged.   Occasionally, you can switch servers faster than the
  irc   network can send out the information that you have left a
  server.  So don't be surprised if it says your nickname is in 
  use...  just wait a moment and set it with NICK.  IRCII
  maintains an internal list of servers you have connected to.
  To see that list, use SERVER with no arguments.  You may also
  specify one of the servers in the server list by its number in
  the list, by issuing:
    SERVER <number in list>
  Likewise, you can automatically switch to the next or previous
  server in the server list by doing:
    SERVER + 
  or 
    SERVER - 
  to switch to the next and previous server in the list,
  respectively.  
  Also, you can set a particular server to be associated with a
  particular IRCII window.  To do this, set the current window to the
  window you wish to use and do:
    SERVER +servername
  In this case, servername may again be a name, IP address, or number
  of a server in your server list.
  This will connect you to the given server as a secondary server in
  that window.  Doing a /SERVER with no parameters will show you your
  primary server.  If you kill the last window associated with a
  server, the connection to that server will close.  If you kill the
  last window associated with your primary server, a new open server
  will be chosen as the primary server.  If there are open servers you
  will not be allowed to close the connection to your primary server.
  The following will also close a connection to a specific server:
    SERVER -servername
  When you create new windows, they will use as their associated
  server whatever was the server for the current window when the new
  window was created.  You can therefore have more than one window for
  any server, but still only one primary server.

  Every time you switch to a new server, it gets
  added to the server list automatically.  To set up initial
  servers in the server list, you can specify them on the command
  line as such:
    irc <nickname> server1 server2 server3
  Each host may have it's own port number and password specified
  on the command line as well:
    irc <nickname> server1:6667 server2:7000:blah server3::foo
  In this case, server1 will use port 6667, server2 will use port
  7000 with password blah, and server3 will use the default port
  number with password foo.  The -p switch on the command line
  allows you to specify the default port number.  Also, if no
  password is specified and one is needed to connect, you will be
  prompted to enter a password before you can connect.  You can
  also specify the default server list in the IRCSERVER
  environment variable using the same format as above.

Available flags:
  -DELETE <number in servers list>
    Allows you to remove servers from the internal server list.

See Also:
  ircII server_lists
  ircII command_line_args
  ircII environment_vars
===========================================================================

SET:
ALWAYS_SPLIT_BIGGEST     HISTORY                  SHOW_END_OF_MSGS
AUTO_UNMARK_AWAY         HISTORY_FILE             SHOW_NUMERICS
AUTO_WHOWAS              HOLD_MODE                SHOW_STATUS_ALL
BEEP                     HOLD_MODE_MAX            SHOW_WHO_HOPCOUNT
BEEP_MAX                 INDENT                   STATUS_AWAY
BEEP_ON_MSG              INPUT_ALIASES            STATUS_CHANNEL
BEEP_WHEN_AWAY           INPUT_PROMPT             STATUS_CHANOP
BOLD_VIDEO               INPUT_PROTECTION         STATUS_CLOCK
CHANNEL_NAME_WIDTH       INSERT_MODE              STATUS_DQUERY
CLIENT_INFORMATION       INVERSE_VIDEO            STATUS_FORMAT
CLOCK                    LASTLOG                  STATUS_HOLD
CLOCK_24HOUR             LASTLOG_LEVEL            STATUS_HOLD_LINES
CLOCK_ALARM              LOAD_PATH                STATUS_INSERT
CMDCHARS                 LOG                      STATUS_MAIL
COMMAND_MODE             LOGFILE                  STATUS_MODE
CONTINUED_LINE           MAIL                     STATUS_NOTIFY
DCC_BLOCK_SIZE           MAX_RECURSIONS           STATUS_OPER
DEBUG                    MENU                     STATUS_OVERWRITE
DISPLAY                  MINIMUM_SERVERS          STATUS_QUERY
EIGHT_BIT_CHARACTERS     MINIMUM_USERS            STATUS_SERVER
ENCRYPT_PROGRAM          NOTIFY_LEVEL             STATUS_UMODE
EXEC_PROTECTION          NOTIFY_ON_TERMINATION    STATUS_USER
FLOOD_AFTER              NOVICE                   STATUS_WINDOW
FLOOD_RATE               NO_CTCP_FLOOD            SUPPRESS_SERVER_MOTD
FLOOD_USERS              PAUSE_AFTER_MOTD         TAB_MAX
FLOOD_WARNING            SCROLL                   TRANSLATION
FULL_STATUS_LINE         SCROLL_LINES             UNDERLINE_VIDEO
HELP_PAGER               SEND_IGNORE_MSG          USER_INFORMATION
HELP_PATH                SET                      USER_WALLOPS
HELP_PROMPT              SHELL                    USE_OLD_MSG
HELP_SERVICE             SHELL_FLAGS              VERBOSE_CTCP
HELP_WINDOW              SHELL_LIMIT              WARN_OF_IGNORES
HIDE_PRIVATE_CHANNELS    SHOW_AWAY_ONCE           XTERM_OPTIONS
HIGHLIGHT_CHAR           SHOW_CHANNEL_NAMES
===========================================================================
Usage: SET ALWAYS_SPLIT_BIGGEST [ON|OFF|TOGGLE]
  If ON, all new windows displayed will split in half the largest
  visible window to make room for themselves.  If OFF, the 
  current window is always split unless it is too small, then the
  largest is split.
===========================================================================

Usage: SET AUTO_UNMARK_AWAY [ON|OFF|TOGGLE]
  When ON, you will automatically be unmarked as being away (as
  if you had issued an AWAY with no arguments) if you send a
  message to a channel or send a private message.  When OFF, your
  away status will remain unchanged until you issue the AWAY
  command with no arguments.
===========================================================================

Usage: SET AUTO_WHOWAS [ON|OFF|TOGGLE]
  If set to ON, this will automatically generate a 
    WHOWAS <nickname>
  for any nick command that results in 
    *** <nickname>: No such nickname
  If OFF, you will not be bothered with WHOWASs. 
===========================================================================

Usage: SET BEEP [ON|OFF|TOGGLE]
  Turns ON or OFF the audibleness of ^G's when received.  If ON,
  ^Gs should beep the terminal.  When OFF, ^G's will be treated
  as other control characters and show up as G in the display.
  The setting of BEEP does not affect the beeps
  generated by the BEEP_ON_MSG variable and the BEEP_WHEN_AWAY
  variable.

See Also:
  SET BEEP_ON_MSG
  SET BEEP_WHEN_AWAY
===========================================================================

Usage: SET BEEP_MAX [<number of beeps>]
  This allows you to limit the maximum number of beeps you will hear
  for any given messages.  For example, if you set BEEP_MAX to 3,
  and someone sends a message with more than 10 beeps in it, you
  will only hear the first three.  Setting BEEP_MAX to 0 means
  you will hear all beeps in a message.
===========================================================================

Usage: SET BEEP_ON_MSG [ALL|NONE|[-]<level> [-] <level> ...]
  This variable lets you specify certain types of messages
  which will cause an audible beep when you receive one.
  The possible message levels are:
    PUBLIC          Channel conversation only
    MSG             MSGs only
    NOTICE          NOTICEs only
    WALL            WALLs only
    WALLOP          WALLOPs only
    NOTE            NOTE only
    CRAP            Is not used.
  See SET LASTLOG_LEVEL for more on these levels
===========================================================================

Usage: SET BEEP_WHEN_AWAY [<value>] 
  This sets the number of beeps that you will hear when you
  receive a message while you are AWAY.  Setting the value to 0
  will not put a limit on the number of beeps.
===========================================================================

Usage: SET BOLD_VIDEO [ON|OFF|TOGGLE]
  When OFF, bold video sent to your display by using the ^B
  character will not show up in bold.  This can effect the
  status line but not the input line.
===========================================================================

Usage: SET CHANNEL_NAME_WIDTH <value>
  Lets you adjust the amount of space used to display channel
  names in the LIST and NAMES output and in the status line of
  IRCII.  If CHANNEL_NAME_WIDTH is set to 0, no channel width
  formatting is performed and channel names are displayed at
  full width.
===========================================================================

Usage: SET CLIENT_INFORMATION <Text of message>
  This message will be displayed any time someone does a
  CTCP VERSION on your nickname.

See Also:
  CTCP VERSION
===========================================================================

Usage: SET CLOCK [ON|OFF|TOGGLE]
  Turns ON or OFF the status line clock.  The clock can be set to
  show 24 hour time as well as 12 hour time (See HELP SET
  CLOCK_24HOUR).  You can also set an alarm to warn you of the
  time (See HELP SET CLOCK_ALARM).
===========================================================================

Usage: SET CLOCK_24HOUR [ON|OFF|TOGGLE]
  When ON, the status line clock will be displayed in 24 hour
  format.  When OFF, the status line clock will be displayed in
  12 hour format with either AM or PM after it.
===========================================================================

Usage: SET CLOCK_ALARM [<time>|OFF]
  Sets an alarm clock that will beep and send you a message when
  the time arrives.  The time format may be either 12 hour format
  (with AM or PM) or 24 hour format.  The CLOCK does not have to
  be ON for the alarm to function.
===========================================================================

Usage: SET CMDCHARS <character set>
  Sets the set of characters which may be used to specify a 
  command to IRCII.  You can specify as many characters as you
  wish to be command characters.
===========================================================================

Usage: SET COMMAND_MODE [ON|OFF|TOGGLE]
  This switch was designed for those who are used to MUDs and computer
  freaks who like command oriented environments. It will disable the
  command character! Every input of yours will be expected to be a command.
  If you want to send something to your current channel or query, you'll
  have to type "send <text>" or "'<text>".
  "say <text>" will always send to the channel even if you're in a query.
  With ":<text>" you get the same effect as with "me <text>".

  The "'" and ":" abbreviations are introduced for MUD compatibility and
  are only available in COMMAND_MODE.

See Also:
  SAY
  SEND
  LOAD ACTION
  LOAD MUD
  ME
===========================================================================

Usage: SET CONTINUED_LINE <some text>
  This allows you to change the text which is displayed when a
  line is greater than than width of the screen.  By default,
  this text is a +, and each line greater than the screens width
  will have this prepended to all lines after the first.   You
  may use CONTINUED_LINE in conjunction with INDENT, or you may
  disable the CONTINUED_LINE character by setting it to <EMPTY>.

See Also:
  SET INDENT
===========================================================================

Usage: SET DCC_BLOCK_SIZE <size in bytes>
  Controls the size of blocks sent when sending files 
  using DCC SEND.

  The default is normally 512. Increasing this number
  increases network efficiency. Decreasing this number
  slows down the transfer, but also decreases the chances
  of the transfer being aborted over bad links.
===========================================================================

Usage: SET DEBUG <debug level>
  The DEBUG variable enables three types of debugging
  output dependant on the settings of various bits.
    bit  value     purpose
     0     1    Display all commands executed
     1     2    Display all alias substitutions made
     2     4    Display all function calls and return values
  DEBUG 3 will show all command executed and all alias expansions.
  DEBUG 7 will show EVERYTHING.  It is pretty messy so you might
  want to set HOLD_MODE on when you use this.
  Keep in mind that FLUSH will flush pending client output as
  well, in case you get more than you bargained for.
===========================================================================

Usage: SET DISPLAY [ON|OFF|TOGGLE]
  Turns ON or OFF all output.  When DISPLAY is off ECHO can still
  produce a message on your screen.
  DISPLAY is set OFF by default in scripts now, including the .ircrc
  file.  It is automatically turned back on when the script is done
  loading.
===========================================================================

Usage: SET EIGHT_BIT_CHARACTERS [ON|OFF|TOGGLE]
  Allows you, if set, to input 8 bit characters.
  (such as the Swedish character set)

Notes:
  On SUN machines, you will have to use `stty pass8' and not
  `stty cs8' to be able to use this properly.

  By default, M-b M-d M-f M-h and M-^? (del) are bound to the 
  corresponding emacs keys.

See also:
  SET TRANSLATION
  DIGRAPH
===========================================================================

Usage: SET ENCRYPT_PROGRAM <encryption program path>
  Sets the program used to encrypt and decrypt messages.  The
  program selected must take an encryption key as the first
  command line argument to work with IRCII.
===========================================================================

Usage: SET EXEC_PROTECTION [ON|OFF|TOGGLE]
  If you saw a warning message telling you to read this, beware!
  If  anyone on irc told you that typing "ON ^MSG * $1-" or 
  "ON ^MSG <nick> $1-" would speed speed things up or otherwise
  make life better for you, they are lying.  The above commands 
  allow people to send you MSGs and have them executed as commands
  by your IRCII.  This can be a major security problem, since the
  person who told you to do this can then execute any command you 
  could, including EXEC commands.  This would give them control over
  your account while you are on irc.

  Anyway, if you did see this warning, it could be that someone is
  trying to abuse your account.  But, don't worry, the EXEC command
  that it warned you about was not executed.  If you are unsure about
  what is going on, please contact your local irc operator for help.
  
  If you know what you're doing, you can set EXEC_PROTECTION to OFF
  and EXEC will be allowed within ON commands.  Only do this if 
  you are sure you understand what is going on.
===========================================================================

Usage: SET FLOOD_AFTER <number of messages>
  Used in conjunction with ON FLOOD, this lets you specify the
  number of flooding messages you will see before ON FLOOD
  is activated.  

See Also:
  ON FLOOD
  SET FLOOD_RATE
  SET FLOOD_USERS
===========================================================================

Usage: SET FLOOD_RATE <messages per second>
  FLOOD_RATE can be set to the number of messages per second you 
  wish to  activate flooding. If messages from a user outpace 
  FLOOD_RATE for  FLOOD_AFTER number of messages, ON FLOOD is
  activated.  If FLOOD_RATE is larger then FLOOD_AFTER, then you 
  will end up seeing at least FLOOD_RATE messages before flood 
  activation (If FLOOD_RATE is 5 and FLOOD_AFTER is 3 then you must 
  receive at least 5 messages before the flood rate can be 5
  messages per second).

See Also:
  ON FLOOD
  SET FLOOD_AFTER
  SET FLOOD_USERS
===========================================================================

Usage: SET FLOOD_USERS <number of users to monitor>
  FLOOD_USERS sets the maximum number of users you can have 
  flood protection from at one time.  If this number is too large, 
  you may see performance degradations and the flood protection 
  might not work as well as it should.  

See Also:
  ON FLOOD
  SET FLOOD_RATE
  SET FLOOD_AFTER
===========================================================================

Usage: SET FLOOD_WARNING [ON|OFF|TOGGLE]
  If ON, you will see a warning when flood protection 
  is activated.  This is used in conjuction with:
    ON ^FLOOD *
  which otherwise will simply cut off flooding messages
  without a warning to you.  

See Also:
  ON FLOOD
===========================================================================

Usage: SET FULL_STATUS_LINE [ON|OFF|TOGGLE]
  When ON, IRCII will always draw it's status line to fill the 
  entire width of the screen.  When OFF, the status line will
  only be as long as it needs to be to accommodate the displayed
  information.
===========================================================================

Usage: SET HELP_PAGER [ON|OFF|TOGGLE]
  When set to OFF, the HELP function will not use it's built
  in paging mechanism but will use the normal window paging
  (hold mode).  If ON, then help uses it's own pager.
  Note: Note that if you have to use the help from a help service
  such as Help_US or help_AU then the setting of the HELP_PAGER 
  variable is irrelevant.  Use HOLD_MODE on instead to slow down 
  the output.

See Also:
  SET HOLD_MODE
===========================================================================

Usage: SET HELP_PATH <Path to help files>
  This path points to the location of the directory containing
  the help files. e.g.
    SET HELP_PATH /usr/local/lib/irc/help
  If no help directory is found then the client will query
  the service pointed to by HELP_SERVICE for help.

See Also:
  SET HELP_SERVICE
  HELP
===========================================================================

Usage: SET HELP_PROMPT [ON|OFF|TOGGLE]
  If SET nothing different happens, but if set OFF, then ircII will
  not prompt for more help after showing a file.
===========================================================================

Usage: SET HELP_SERVICE <Name of ircII HELP service>
  When the HELP command is issued it first searches the
  current HELP_PATH for help files.  If they are not found it
  sends a message to the service specificed in HELP_SERVICE
  An example setting is.
    SET HELP_SERVICE help_US
  which would make the client query the United States ircII help 
  service.  Keep in mind that having local help files is always
  faster and generally guarantees better service.
  
See Also:
  SET HELP_SERVICE
  HELP
===========================================================================

Usage: SET HELP_WINDOW [ON|OFF|TOGGLE]
  This will cause the HELP function to create a new window for
  displaying help.  If OFF, the current window will be used.
===========================================================================

Usage: SET HIDE_PRIVATE_CHANNELS [ON|OFF|TOGGLE]
  When ON, this will suppress display in your status line of channels 
  whose mode is +s (secret) or +p (private).  When OFF, channels
  are shown as usual in the status line.
===========================================================================

Usage: SET HIGHLIGHT_CHAR [BOLD|INVERSE|UNDERLINE]
  When the + option of IGNORE is used it highlights messages
  from the specific user.  The setting of this variable
  determines how the name is to be highlighted.

See Also:
  IGNORE
===========================================================================

Usage: SET HISTORY <value>
  Sets the size of the command history circular buffer.  Setting
  HISTORY to zero disables the command history functions unless you
  have HISTORY_FILE set.  You must disable HISTORY_FILE to completely
  turn off command history.

See Also:
  SET HISTORY_FILE
===========================================================================

Usage: SET HISTORY_FILE <path for history file>
  If HISTORY_FILE is set, then the command history is saved in
  this file rather than in memory.  The advantage to this is
  that the size of this file is limited by your disk space and
  doesn't increase the memory usage of IRCII.  The disadvantage
  is that history access might be slower (or it might not).  To
  disable the HISTORY_FILE, set it to <EMPTY>.  To completely
  disable the command history functions, you must also set
  HISTORY to 0.

See Also:
  SET HISTORY
===========================================================================

Usage: SET HOLD_MODE [ON|OFF|TOGGLE]
  When ON, IRCII will pause at the end of each page of output.
  Output will continue when the TOGGLE_STOP_SCREEN function is
  activated (bound, by default, to ctrl-S) or when the
  SEND_LINE function is activated (bound, by default, to the
  Return or Enter key).

Note:
  If using multiple windows the HOLD_MODE value refers to
  default setting for new windows.   To effect the hold mode
  of individual windows refer to WIN HOLD_MODE

See Also:
  SET STATUS_HOLD
  WIN HOLD_MODE
===========================================================================

Usage: SET HOLD_MODE_MAX <number of lines>
  This specifies the maximum number of lines that will be held
  in HOLD_MODE before the display is automatically restarted.
  If HOLD_MODE_MAX is 0, the number of lines held in HOLD_MODE
  is unlimited.
===========================================================================

Usage: SET INDENT [ON|OFF|TOGGLE]
  Setting INDENT to ON will cause lines of text that are longer
  than the screen width to be indented so that all lines after
  the first start underneath the second word in the first line.
  That's a long sentence, but that's what it does.  If you also
  have CONTINUED_LINE set, this will pad the CONTINUED_LINE
  characters out to the second word in the first line, unless
  CONTINUED_LINE is longer.  CONTINUED_LINE will not be
  truncated.  To disable the CONTINUED_LINE, set it to <EMPTY>.
  INDENT will never indent beyond 1/3 the width of the screen.

See Also:
  SET CONTINUED_LINE
===========================================================================

Usage: SET INPUT_ALIASES [ON|OFF|TOGGLE]
  Turns ON or OFF the expanding of aliases in the inputline, 
  If you set INPUT_ALIASES ON and type: ECHO $S
  you will see your server name echoed to your window.  If it is
  OFF, you will see $S echoed to your window. INPUT_ALIASES now 
  has no effect on expansions in the .ircrc and loaded files.  To 
  Make a line expand when a file is loaded, use EVAL <command>.

  Note also, that when INPUT_ALIASES is ON, text within (..) and {..}
  are not expanded.  If you want them to be expanded then quote the 
  leading ( or {.  e.g.   \(  \{ 

  Additionally, You can return to full alias substitution
  within ${...} by enclosing the substitution text in
  [...]. Thus  if $0 == test, and $bear == black
          ${[$0]} expands to "test"
          ${[$bear]} expands to "black"
          ${bear} also expands to "black"
          ${ bear == [black] }  expands to "1",
          ${ [$0] == [test] } expands to "1"
          ${ [$0] == [black] } expands to "0"
          ${ [$0](this) } expands to the return value of $test(this)
  
Note:
  If you do turn on INPUT_ALIASES in the .ircrc then the argument
  expandos ($*, $0, $1, $3-4, etc) will expand to the command line 
  arguments passed to IRCII on startup.
===========================================================================

Usage: SET INPUT_PROMPT <input prompt string>
  Allows you to change the prompt that will be displayed in the
  input line before any text you type.  Normally, there is no
  prompt, but you can specify any string.  To turn off a prompt,
  use /set -INPUT_PROMPT. Using the special variable $T is
  useful as in INPUT_PROMPT as it shows what the current 
  destination is for any input, such as a channelname or nickname
  if you are using query.

See Also:
  ALIAS Special
===========================================================================

Usage: SET INPUT_PROTECTION [ON|OFF|TOGGLE]
  When set this variable will prevent you from using the ON INPUT
  functionality.  ON INPUT is extremely dangerous in that it can
  easily disable or throw the client into a loop.  Be sure you
  know what you're doing if you decide to use this function.

See Also:
  ON INPUT
  SENDLINE
===========================================================================

Usage: SET INSERT_MODE [ON|OFF|TOGGLE]
  Turns ON or OFF insert mode.  While on, characters typed are
  inserted into already existing text.  When off, new characters
  overwrite existing ones.  Whichever key is bound to the function
  TOGGLE_INSERT_MODE will toggle this setting on and off. The TAB 
  key (or ^I) is the default binding.

See Also:
  BIND TOGGLE_INSERT_MODE
===========================================================================

Usage: SET INVERSE_VIDEO [ON|OFF|TOGGLE]
  When OFF, inverse video sent to your display by using the ^V
  character will not show up in inverse.  This can effect the
  status line but not the input line.
===========================================================================

Usage: SET LASTLOG <value>
  Sets the size of the lastlog buffer (See HELP LASTLOG).  This
  buffer keeps an in memory record of messages sent and received.
  If LASTLOG is set to 0, the lastlog function is disabled.
===========================================================================

Usage: SET LASTLOG_LEVEL [ALL|NONE|[-]<level> [-]<level> ...]
  The setting of this variable determines which types of
  messages are stored in the lastlog.  If ALL is specified,
  everything that shows up on the screen is saved in the
  lastlog, except DCC mesages, which have to be explicitely
  set.  eg, to get everything, use

    /SET LASTLOG_LEVEL DCC,ALL

  .  If NONE is specified, nothing is saved in the
  lastlog.  The <level> specification can be one of the
  following: 
    PUBLIC          Channel conversation
    MSGS            Private messages
    NOTICES         NOTICEs
    WALLS           WALLs
    WALLOPS         WALLOPs
    NOTE            NOTEs
    OPNOTES         Operator notifications
    SNOTES          Server notices
    ACTIONS         In and outgoing CTCP ACTION lines
    USERLOG1        Reserved for the user
    USERLOG2        Reserved for the user
    USERLOG3        Reserved for the user
    USERLOG4        Reserved for the user
    DCC             DCC connections
    CRAP            Anything not covered by the above categories
  You can combine these on a command line to make the lastlog
  save just what you want.  Also, by putting a - before any
  level, you remove that one from the list.  For example, if you
  wish to save everything except NOTEs and all that CRAP, you
  could do:
    SET LASTLOG_LEVEL ALL -NOTE -CRAP
  which is the same as doing:
    SET LASTLOG_LEVEL PUBLIC MSG NOTICE WALL WALLOP OPNOTES ACTIONS SNOTES
===========================================================================

Usage: SET LOAD_PATH <Path to load scripts from>
  This path controls where the client finds scripts and menus.
  A typical example would be.
    SET LOAD_PATH .:~/.irc:/usr/local/lib/irc/script

  Which will first look in the current directory, and then in the 
  system's irc script directory.  This can of course be set to 
  anything you want.  If you want to determine if you have the 
  default scripts, and where they are, use   /WHICH global
  and that should show you the location of the 'global' script 
  file.  The directory it's in is also the location of all the 
  other scripts.

See Also:
  LOAD
  WHICH
  CD
===========================================================================

Usage: SET LOG [ON|OFF|TOGGLE]
  Turns the session log ON or OFF.  While ON, a record of your
  IRC session is recorded to file (see HELP SET LOGFILE).  When
  OFF, no log is made.  This log will contain everything that 
  appears on your screen, no matter what window, in the order it
  comes in.  To log an individual window, use the: 
    WINDOW LOG [ON|OFF|TOGGLE]
  command.

See Also:
  SET LOGFILE
  WINDOW LOG
  WINDOW LOGFILE
===========================================================================

Usage: SET LOGFILE <filename>
  Sets the name of the file to be used for the session log.  New
  session log messages are appended to the end of this file.

See Also:
  SET LOG
  WINDOW LOG
  WINDOW LOGFILE
===========================================================================

Usage: SET MAIL [0|1|2]
  When non zero, you will be informed when you have new mail.  This
  is your real unix mail and not irc-mail.  An indicator will light
  up in your status line and a message will be sent to your screen
  telling you about the new mail. If set to 2, the more significant
  headers from the mail are shown.

See Also:
  ON MAIL_REAL
  SET STATUS_MAIL
===========================================================================

Usage: SET MAX_RECURSIONS <A reasonable limit for alias recursions>
  This will limit the number of times that a particular alias can 
  call itself recursively.  (default is 10)
  To see how recursive aliases work take a look at the RECURSION script.

See Also:
  LOAD RECURSION
===========================================================================

Usage: SET MENU <Name of menu>
  Will set the MENU variable to the name of a menu which has
  been loaded with the MLOAD command.  When MENU is set, the 
  new menu will appear on the screen.  The key bound to
  ENTER_MENU is used to get into the menu. (default ^R)

See Also: 
  MLOAD
  BIND ENTER_MENU
===========================================================================

Usage: SET MINIMUM_SERVERS <number of servers>
  When connecting to a server, this variable is checked versus
  the number of servers currently connected to the ircnet.  If
  the number of servers is less than the setting of
  MINIMUM_SERVERS, you will automatically be disconnected from
  that server and IRCII will attempt to connect to the next
  server in you server list (as though you had done SERVER +).
  This is useful if the net is fragmented to keep you on a more
  populated portion of the net.  This will be rechecked if you
  issue a LUSERS.  This will only affect your primary server. 
  Secondary servers are not checked vs this variable.

See Also:
  SET MINIMUM_USERS
  SERVER
  LUSERS
  ircII server_list
===========================================================================

Usage: SET MINIMUM_USERS <number of users>
  When connecting to a server, this variable is checked versus
  the number of users currently connected to the ircnet.  If
  the number of users is less than the setting of
  MINIMUM_USERS, you will automatically be disconnected from
  that server and IRCII will attempt to connect to the next
  server in you server list (as though you had some SERVER +).
  This is useful if the net is fragmented to keep you on a more
  populated portion of the net.  This will be rechecked if you
  issue a LUSERS.  This only affects your primary server.
  Secondary servers are not affected by this variable.

See Also:
  SET MINIMUM_SERVERS
  SERVER
  LUSERS
  ircII server_list
===========================================================================

Usage: SET NOTIFY_LEVEL [ALL|NONE|[-]<level> [-]<level> ...]
  The setting of this variable determines which the default
  notify_level for windows. See SET LASTLOG_LEVEL for explanation
  of available flags.

See also:
  WINDOW
  WINDOW NOTIFY_LEVEL
===========================================================================

Usage: SET NOTIFY_ON_TERMINATION [ON|OFF|TOGGLE]
  When ON, all EXEC'ed processes will inform you when they exit.
  You will be told which process is exiting and the reason it
  exited.  If termination was normal, you will receive the exit
  status code.  If termination was by signal, you will be told
  which signal.  If OFF, you will not be informed when processes
  exit.
===========================================================================

Usage: SET NOVICE [ON|OFF|TOGGLE]
  The NOVICE variable causes IRCII to disallow certain actions by the
  user (such as ON commands) and to show a request to read the NEWUSER
  help file on startup. It is set to ON by default, and should normally
  be turned off in your .ircrc file. Additionally, it enforces an
  automatic LEAVE before JOIN so that novice users are not confused
  by multiple channels.

See Also:
  ON
  NEWUSER
===========================================================================

Usage: SET NO_CTCP_FLOOD [ON|OFF|TOGGLE]
  When ON, your client will only send out one CTCP reply every 2 seconds,
  and ignore any other CTCP requests it gets in the meantime.
  When OFF, it will process CTCP replies properly, ie
    ^AFINGER blah^A^AVERSION^A
  will work.
===========================================================================

Usage: SET PAUSE_AFTER_MOTD [ON|OFF|TOGGLE]
  When ON, this will cause IRCII to wait for a keystroke after
  the local IRCII motd is displayed then clear the screen and
  continue.  If OFF, the local motd will be displayed,
  immediately followed by the server banners and motds.  If
  there is no local IRCII motd, this variable has no effect.
  PAUSE_AFTER_MOTD only works for the IRCII motds and *not* for
  server motds.
===========================================================================

Usage: SET SCROLL [ON|OFF|TOGGLE]
  Turns ON or OFF screen scrolling.  While OFF, when the cursor
  reaches the bottom of the screen, it jumps to the top and
  overwrites its way back down.  This mode is recommended for
  *extremely* dumb terminals.  When ON, the screen will scroll
  old information off the top.
===========================================================================

Usage: SET SCROLL_LINES [<number of screen lines to scroll>]
  This allows you to set the number of lines the screen will
  scroll each time the cursor reaches the bottom of the screen.
  If SCROLL_LINES is set to 0, the SCROLL is turned OFF as well,
  and must be turned back on before scrolling can be resumed.
  The maximum number of lines that may be scrolled is the size of
  the display (the number of lines on the screen minus 2).
  Negative numbers are automatically changed to positive.
===========================================================================

Usage: SET SEND_IGNORE_MSG [ON|OFF|TOGGLE]
  When OFF, prevents the sending of "You are being ignored"
  messages when you IGNORE someone.  When ON, these messages are
  sent when then IGNORE is initiated for PRIVATE or ALL messages.
===========================================================================

Usage: SET [-][<variable name> [<value>]]
  Sets a specified variable to a given value.  If SET is used
  with no parameters, all variables and their current settings
  are listed.  If SET is used with a variable name and no value,
  that variables current setting is listed.  If a - preceeds
  a variable whose value is a string of text, it sets that
  variable to nothing.

See also:
  HELP SET ? for a list of all variables
===========================================================================

Usage: SET SHELL <shell path>
  Sets the name of the shell to be used by the EXEC command.
  Normally, this would be a standard csh or sh, but you can make
  it anything you like.  

See Also: 
  SET SHELL_FLAGS
  SET SHELL_LIMIT
  EXEC
===========================================================================

Usage: SET SHELL_FLAGS <flags>
  Sets any additional flags that the shell (set with SET SHELL)
  might need. For most shells the -c flag is needed.  This tells
  the shell to take the command line as a command to be parsed
  rather than a filename.  The flag -f is also added sometimes, and
  with csh and tcsh this means to ignore the .cshrc file when a 
  command is executed.  This means aliases will not be available but
  the command will execute faster.
===========================================================================

Usage: SET SHELL_LIMIT <value>
  Sets the maximum number of lines of output from any EXEC'd
  process.  This is useful to prevent yourself from accidentally
  starting a process with EXEC that spits out soooo much output
  that everything you know and love grinds to a halt.  Setting
  it to 0 puts no limit on the number of output lines from a
  process.
===========================================================================

Usage: SET SHOW_AWAY_ONCE [ON|OFF|TOGGLE]
  This will show you someone's away message only once even if you
  send them many messages.  
===========================================================================

Usage: SET SHOW_CHANNEL_NAMES [ON|OFF|TOGGLE]
  When ON, this will show the names of all the users on a channel when 
  you join it.  When OFF, no names will be displayed.
===========================================================================

Usage: SET SHOW_END_OF_MSGS [ON|OFF|TOGGLE]
  When ON, tells IRC II to display the "End of list" messages for
  the NAMES, LIST, LINKS, and other commands.
  When OFF, no "End of list" messages are displayed.
===========================================================================

Usage: SET SHOW_NUMERICS [ON|OFF|TOGGLE]
  If ON, then any numeric protocol messages from the server will
  have their corresponding number shown on the line.
===========================================================================

Usage: SET SHOW_STATUS_ALL [ON|OFF|TOGGLE]
  When set, it shows everything in every (visible) status line.
  When not set, it only show things that (I think) are relevant
  to that window, and are not the same as the current window.
  Things like nickname, usermode, are only shown on one window,
  if connected to only one server.
===========================================================================

Usage: SET SHOW_WHO_HOPCOUNT [ON|OFF|TOGGLE]
  When ON, this will show the number of IRC-server hops between you
  and another user in any WHO output.
===========================================================================

Usage: SET STATUS_AWAY <Status line text when in away>
  The contents of STATUS_AWAY are replaced in the STATUS_FORMAT
  variable for any occurrence of %A while you are away.  If you
  are not away, %A is replaced by nothing.
===========================================================================

Usage: SET STATUS_CHANNEL <Status line text for display of channel>
  The contents of STATUS_CHANNEL are replaced in the
  STATUS_FORMAT variable for any occurence of %C.
  This variable may contain any text, plus it may contain
  a single occurence of %C, which is replaced by the name or
  the number of the channel you are currently on.
===========================================================================

Usage: SET STATUS_CHANOP <text of display for status line operator mode>
  The value of STATUS_CHANOP is replaced in the STATUS_FORMAT
  variable for any occurence of %@ if you have chanop status.
  If you are not a chanop, %@ is replaced with nothing.
===========================================================================

Usage: SET STATUS_CLOCK <text of display for status line clock>
  The value of STATUS_CLOCK is replaced in the STATUS_FORMAT
  variable for any occurrence of %T if CLOCK is ON.  If CLOCK is
  OFF, nothing is displayed for %T in STATUS_FORMAT.  Also, the
  STATUS_CLOCK variable may contain one occurrence of %T which
  will be replaced with the current time of day in the string.
===========================================================================

Usage: SET STATUS_DQUERY <Status line text when DCC querying>
  This variable is replaced in the STATUS_FORMAT for occurrences of
  %Q when you are DCC querying someone.  This variable may contain
  any text, plus it may contain a single occurrence of %D, which
  is replaced by the name of the user you are DCC querying.  For
  example, you can set STATUS_DQUERY to "DQuerying %D", where %D
  is replaced by a the DCC query nickname.
===========================================================================

Usage: SET STATUS_FORMAT <format description for status line>
  Setting the variable allows you to alter the appearance of the
  status line.  Certain special characters are recognized in
  this format line and replaced with various bits of status line
  information.  Each of these special characters is preceeded by
  a '%'.  Here is a list of these characters:
       N          Your current nickname.
       C          Your current channel.
       R          Current window refnum or name.
       W          Value of STATUS_WINDOW variable. *
       +          Value of STATUS_MODE variable. *
       Q          Value of STATUS_QUERY variable. *
       I          Value of STATUS_INSERT variable. *
       S          Value of STATUS_SERVER variable. *
       F          Value of STATUS_NOTIFY variable. *
       O          Value of STATUS_OVERWRITE variables. *
       A          Value of STATUS_AWAY variable. *
       T          Value of STATUS_CLOCK variable. *
       U          Value of STATUS_USER variable. *
       X Y Z      Value of STATUS_USER1,2,3 variables. *
       H          Value of STATUS_HOLD variable. *
       *          Value of STATUS_OPER variable. *
       @          Value of STATUS_CHANOP variable. *
       M          Value of STATUS_MAIL variable. *
       #          Value of STATUS_UMODE variable.
       B          Value of STATUS_HOLD_LINES variable. *
       V          Current IRCII version
       >          Makes anything beyond it right justified.
       %          Replaced by %

  Those marked with * are only displayed in the status line when
  certain conditions are met.  Please get help on the variables
  mentioned above for specifics about each one.

  For example, the standard default IRCII status line format
  looks like this:

  %T[%R] %*%@%N %S%H%Q%A%C%+%I%O%M%U %W
  which when expanded for the nickname Dae on the channel #blue
  [1] @Dae on #blue (+tn) * type /help for help 

  The window number %R is 1
  The nickname %N is Dae   and Dae is a channel op %@  @
  Dae is on channel %C #blue
  The mode %+ calls up the contents of the STATUS_MODE variable
      and displays the channel modes, (+ps)
  The end of the status_format $U expands to the contents of
      STATUS_USER which contains.. "* type /help for help"
  
  Everything else is ignored unless it's needed.
 
  You can now include text modification characters
  (^B, ^V, ^_ and ^O) in STATUS_FORMAT. If you change
  the format at the start of STATUS_FORMAT, you will
  have to do it again after any %C or %U, as these
  both reset it to reverse video.

See Also:  
  SET STATUS_AWAY
  SET STATUS_CHANNEL
  SET STATUS_CHANOP
  SET STATUS_CLOCK
  SET STATUS_DQUERY
  SET STATUS_FORMAT
  SET STATUS_HOLD
  SET STATUS_HOLD_LINES
  SET STATUS_INSERT
  SET STATUS_MAIL
  SET STATUS_MODE
  SET STATUS_NOTIFY
  SET STATUS_OPER
  SET STATUS_OVERWRITE
  SET STATUS_QUERY
  SET STATUS_SERVER
  SET STATUS_UMODE
  SET STATUS_USER
  SET STATUS_WINDOW
  SET CLOCK
===========================================================================

Usage: SET STATUS_HOLD <text of display for status line hold mode>
  The value of STATUS_HOLD is replaced in the STATUS_FORMAT
  variable for any occurence of %H if the display is current on
  hold (See SET HOLD_MODE).  If the display is not on hold, %H
  is replaced with nothing.
===========================================================================

Usage: SET STATUS_HOLD_LINES <text of message for status line>
  The value of STATUS_HOLD_MODE is replaced in the STATUS_FORMAT
  variable for any occurence of %B if the display is current on 
  hold.  This shows the number of lines currently being held in
  the buffer. If the display is not being help, it is replaced 
  with nothing.
===========================================================================

Usage: SET STATUS_INSERT <Status line text when in insert mode>
  The content of STATUS_INSERT are replaced in the STATUS_FORMAT
  variable for any occurence of %I while INSERT_MODE is ON.  If
  INSERT_MODE is OFF, nothing is displayed for %I.
===========================================================================

Usage: SET STATUS_MAIL <Status line text when you have mail>
  The contents of STATUS_MAIL are replaced in the STATUS_FORMAT
  variable for any occurence of %M while you get new mail.  The
  STATUS_MAIL may contain occurences of %M which will be replaced
  by the total number of mail messages you have.  If you have
  no mail, %M is replaced by nothing in the STATUS_FORMAT.
===========================================================================

Usage: SET STATUS_MODE <text displayed for channel mode>
  The value of STATUS_MODE is replaced in the STATUS_FORMAT
  variable for an occurence of %+ if the window's current
  channel has any of the mode settings active.  The STATUS_MODE
  variable may contain one occurence of %+ which will be
  replaced with the current channel mode (if applicable).
===========================================================================

Usage: SET STATUS_NOTIFY <Status line text>
  The contents of STATUS_NOTIFY are replaced in the STATUS_FORMAT
  variable for any occurence of %F when there has been activity in
  a hidden window. STATUS_NOTIFY may contain occurences of %F which
  will be replaced by the list of windows in which there has been
  activity. If there has been no activity in hidden windows, %F
  is replaced by nothing in the STATUS_FORMAT.
===========================================================================

Usage: SET STATUS_OPER <text of display for status line operator mode>
  The value of STATUS_OPER is replaced in the STATUS_FORMAT
  variable for any occurence of %* if you have operator status.
  If you are not an operator, %* is replaced with nothing.
===========================================================================

Usage: SET STATUS_OVERWRITE <Status line text when in overwrite mode>
  The content of STATUS_OVERWRITE are replaced in the STATUS_FORMAT
  variable for any occurence of %O while INSERT_MODE is OFF.  If
  INSERT_MODE is ON, nothing is displayed for %O.
===========================================================================

Usage: SET STATUS_QUERY <Status line text when querying>
  This variable is replaced in the STATUS_FORMAT for occurrences of
  %Q when you are querying someone.  This variable may contain
  any text, plus it may contain a single occurence of %Q, which
  is replaced by the name of the user you are querying.  For
  example, you can set STATUS_QUERY to "Querying %Q", where %Q
  is replaced by a the query nickname.
===========================================================================

Usage: SET STATUS_SERVER <Status line text for display of server>
  The value of STATUS_SERVER is replaced in the STATUS_FORMAT
  variable for any occurence of %S.
  This variable may contain any text, plus it may contain
  a single occurence of %S , which is replaced by the server
  you are currently on.
===========================================================================

Usage: SET STATUS_UMODE <text displayed for user mode>
  The value of STATUS_UMODE is replaced in the STATUS_FORMAT
  variable for an occurence of %# if the window's current
  nickname has any of the mode settings active.  The STATUS_UMODE
  variable may contain one occurence of %# which will be
  replaced with the current user mode.
===========================================================================

Usage: SET STATUS_USER <text of status line user information>
  The value of STATUS_USER is replaced in the STATUS_FORMAT
  variable for any occurence of %U. If STATUS_USER is set to 
  <EMPTY>, nothing will be replaced for %U.
  Additionally 3 more variables STATUS_USER1, STATUS_USER2,
  and STATUS_USER3 exist and they correspond to the occurences
  of %X, %Y, and %Z
===========================================================================

Usage: SET STATUS_WINDOW <text displayed in current window status line>
  The value of STATUS_WINDOW is replaced in the STATUS_FORMAT
  variable for an occurence of %W if the window is the current
  window.  If the window is not the current window (or if there
  is only one window visible), then %W is replaced with nothing.
===========================================================================

Usage: SET SUPPRESS_SERVER_MOTD [ON|OFF|TOGGLE]
  This will prevent you from seeing the motd from the server when you
  connect to a server.  This is not to be confused with the IRCII motd
  which your installation may or may not have.  You will still see the
  server motd if you use the /MOTD command.
===========================================================================

Usage: SET TAB_MAX [<number of tabs>]
  This allows you to limit the maximum number of tabs you will hear
  for any given messages.  For example, if you set TAB_MAX to 3,
  and someone sends a message with more than 10 tabs in it, you
  will only see the first three tabs.  Setting TAB_MAX to 0 means
  you will see all tabs in a message.
===========================================================================

Usage: SET TRANSLATION <character translation table>
  The TRANSLATION variable defines a character translation
  table.  By default, ircII assumes that all text processed
  over the network is in the ISO 8859/1 map, also known as
  Latin-1.  This is identical to standard ASCII, except that
  it is extended with additional characters in the range
  128-255.  Many environments by default use the Latin-1 map,
  such as X Windows, MS Windows, AmigaDOS, and modern ANSI
  terminals including Digital VT200, VT300, VT400 series and
  MS-Kermit.  However, many older environments use non-standard
  extensions to ASCII, and yet others use 7-bit national
  replacement sets.

  Some available settings for the TRANSLATION variable:

  8-bit sets:
    LATIN_1             ISO 8859/1.  Default.
    HP_MCS              Hewlett Packard Extended Roman 8.
    MACINTOSH           Apple Macintosh computers and boat
                        anchors.
    CP437               Old IBM PC, compatibles and Atari ST.
    CP850               New IBM PC compatibles and IBM PS/2.
    DEC_MCS             DEC Multinational Character Set.
                        VAX/VMS.  VT320's and other 8-bit
                        Digital terminals use this set by
                        default, but I recommend changing to
                        Latin-1 in the terminal Set-Up.
    DG_MCS              Data General Multinational Character Set.
    NEXT                NeXT.

  7-bit sets:
    ASCII               ANSI ASCII, ISO Reg. 006.  For American
                        terminals in 7-bit environments.  Use
                        this one if everything else fails.
    DANISH              Norwegian/Danish.
    DUTCH               Dutch.
    FINNISH             Finnish.
    FRENCH              ISO French, ISO Reg. 025.
    FRENCH_CANADIAN     French in Canada.
    GERMAN              ISO German, ISO Reg. 021.
    IRV                 International Reference Version, ISO
                        Reg. 002.  For use pedantic in ISO 646
                        environments.
    ITALIAN             ISO Italian, ISO Reg. 015.
    JIS                 JIS ASCII, ISO Reg. 014.  Japanese
                        ASCII hybrid.
    NORWEGIAN_1         ISO Norwegian, Version 1, ISO Reg. 060.
    NORWEGIAN_2         ISO Norwegian, Version 2, ISO Reg. 061.
    PORTUGUESE          ISO Portuguese, ISO Reg. 016.
    PORTUGUESE_COM      Portuguese on Digital terminals.
    SPANISH             ISO Spanish, ISO Reg. 017.
    SPANISH_COM         Spanish.  Digital.
    SWEDISH             ISO Swedish, ISO Reg. 010.
    SWEDISH_NAMES       ISO Swedish for Names, ISO Reg. 011.
    SWEDISH_NAMES_COM   Swedish.  Digital, Hewlett Packard.
    SWISS               Swiss.
    UNITED_KINGDOM      ISO United Kingdom, ISO Reg. 004.
    UNITED_KINGDOM_COM  United Kingdom on DEC and HP terminals.

  Please forward your problems, bugs, home-made maps,
  documentation on other sets, etc... to me, Tomten on IRC
  or by E-Mail tomten@solace.hsh.se.

See Also:
  DIGRAPH
  BIND ENTER_DIGRAPH
===========================================================================

Usage: SET UNDERLINE_VIDEO [ON|OFF|TOGGLE]
  When OFF, underline video sent to your display by using the ^_
  character will not show up in underline.  This can effect the
  status line but not the input line.
===========================================================================

Usage: SET USER_INFORMATION <Text of message>
  This message will be displayed any time someone does a
  CTCP USERINFO on your nickname.
  It is set to "<None Supplied>" be default.
===========================================================================

Usage: SET USER_WALLOPS [ON|OFF|TOGGLE]
  This variable filters incoming user wallops out,
  if you set it to OFF.
===========================================================================

Usage: SET USE_OLD_MSG [ON|OFF|TOGGLE]
  This will tell the client to use a VERY VERY old syntax for
  sending messages to channels which is no longer supported.
  It went out with 2.6 servers I believe.
===========================================================================

Usage: SET VERBOSE_CTCP [ON|OFF|TOGGLE]
  When this is set ON, you will see any CTCP queries
  anyone sends to your client.
===========================================================================

Usage: SET WARN_OF_IGNORES [ON|OFF|TOGGLE]
  Turns OFF or ON warning messages that occur when you try to
  send a message to a nickname that you are ignoring.  When ON,
  you get a warning each time you attempt this.  When OFF, you
  get no warning.
===========================================================================

Usage: SET XTERM_OPTIONS <options>
  Sets the options that are passed to xterm, when using
  WINDOW CREATE

Note:
  -geom switches are already generated by ircII, so these will be ignored.

See also:
  WINDOW CREATE
===========================================================================

SIGNOFF:
See QUIT for more information about SIGNOFF.
===========================================================================

SLEEP:
Usage: SLEEP <number of seconds>
  This suspends IRCII for the number of seconds given.  NOTHING happens
  during this time.  This is really only useful for automatons.
  Maybe not even then. Try the TIMER command instead.

See Also:
  TIMER
===========================================================================

SQUIT:
Usage: SQUIT <servername>
  Sends a server quit to the named server.
  This is an operator command and unfortunately if it is 
  messed up, it can effect MANY people so it's best that
  one knows EXACTLY what they are doing when they squit
  a server.  A common mistake is to use a server mask 
  like if you are on some.server.edu and you typed 
    SQUIT ircserver.*
  expecting to break off ircserver.iastate.edu it instead it finds 
  ircserver.et.tudelft.nl and squits it from it's uplink.
  IF you're going to use a hostmask then make sure that 
  you supply enough of the name to keep from messing up
  the net.  There are more pitfalls, but you should read 
  the docs in the ircd source for those.

Note:
  SQUIT SHOULD NEVER EVER BE USED FOR A PERSONAL VENDETA
  It simply hurts the users.
===========================================================================

STATS:
Usage: STATS [c|h|k|i|l|m|u|y] [<server>]
  Shows some irc server usage statistics.
  c - Shows C and N lines for a given server.  These are 
      the names of the servers that are allowed to connect.
  h - Shows H and L lines for a given server (Hubs and Leaves).
  k - Show K lines for a server.  This shows who is not 
      allowed to connect and possibly at what time they are
      not allowed to connect.
  i - Shows I lines. This is who CAN connect to a server.
  l - Shows information about amount of information passed
      to servers and users.
  m - Shows a count for the number of times the various 
      commands have been used since the server was booted.
  o - Shows the list of authorized operators on the server.
  u - Shows the uptime for a server
  y - Shows Y lines, which lists the various connection 
      classes for a given server.
===========================================================================

SUMMON:
Usage: SUMMON <userid>[@<server>]
  Summons a user to irc.  The user currently must be logged into
  the server machine for this to function.
  Most irc servers do not have this feature, so don't be 
  surprised if it doesn't work.
===========================================================================

TIME:
See DATE for more information about TIME.
===========================================================================

TIMER:
Usage: TIMER [-refnum <num>] [-delete <num>] <seconds> [<command>]
  Waits for the given number of seconds and then executes the
  command.  This is done without hindering normal operation of
  the client.  Any number of TIMERs can be set at once, and
  all will activate at the appropriate time.
    TIMER with arguments will list pending TIMERs.
    TIMER -refnum <num>
  will assign a specific number to that action allowing you
  to delete it later if necessary with
    TIMER -delete <num>
  If no refnum is specified, one is automatically assigned.
===========================================================================

TOPIC:
Usage: TOPIC [<channel>] [<topic for channel>]
  Changes the topic for the named channel.
  You have to be on the channel to change the topic and if
  the channel mode is +t then only a channel-operator can change
  the topic.
===========================================================================

TRACE:
Usage: TRACE [<server>]
  Without a specified server it shows the current connections on
  the local server.  If you specify a remote server it will show
  all servers between your current server and that remote server
  as well as the connections on that remote server.
===========================================================================

TYPE:
Usage: TYPE <keystrokes>
  The TYPE command simulates keyboard keystrokes.  You can
  include control characters as well as normal characters and
  they will respond as they would as if typed at the keyboard.
  A control key is specified by a ^ before the letter.  For
  example:
    TYPE Testing^B^B^B go^E
  will type the word "Testing", move the cursor left three
  spaces, then type " go" and move the cursor to the end of the
  line,  leaving "Test going" on the input line.  This will
  probably happen too fast to see.  

See also:
  XTYPE
===========================================================================

USERHOST:
Usage: USERHOST <nickname> [-cmd <command>]
  If only USERHOST nickname is supplied the server will be queried
  for information about that person.  It will return something in
  the format:
    *** Daemon is frechett@spot.Colorado.EDU (Is an IRC operator)
  If -cmd command   is added then it will parse the returned line
  just as though it were an ON or an ALIAS.
  Parameters are:
    $0  nickname
    $1  '+' if server operator, '-' otherwise
    $2  '+' if marked away, '-' if here
    $3  username
    $4  hostname

Note:  Something you may run into if you use this command within an
  ALIAS or ON is the following.  Take the following example.
    alias bonk userhost $0 -cmd echo \($$*\)
  When bonk is called, $0 is expanded to a nickname, and $$* changes to
  $* to be used by userhost -cmd.  However, since the entire expression
  is parsed twice, the \'s are eaten the first time leaving ($*) which
  will never expand.  Thsu to make the above alias work, it has to be:
    alias bonk userhost $0 -cmd echo \\\($$*\\\)
  On the first pass it becomes   userhost nick -cmd echo \($*\)
  and on the second pass when the -cmd part is executed it
  expands and executes   echo (contents of $*)
  This is NOT a special case or a bug.  It is just an added level of
  processing...

See Also:
  expressions  (under Special Cases at the end)
===========================================================================

USERS:
Usage: USERS [<server>]
  Shows the users logged into the machine where the specified
  server is running.  If no server is given, the current server
  is used.  Many servers do not have this feature enabled.
===========================================================================

VERSION:
Usage: VERSION [<server>]
  Shows the IRCII version number and the version number of the
  server specified.  If no server name is specifed, the version
  of your current server is shown.
===========================================================================

WAIT:
Usage: WAIT [%process] [-cmd <command> <do_command>]
  There are several forms of this command.  The first, and best is:
    WAIT -CMD command

  WAIT causes the command to be executed when server output
  that hasn't yet arrived, finally arrives.  This allows you to
  take a specific action immediately after receiving output from 
  the server, or client.

  For example, the following alias:
    ALIAS BACKWARDS wait -cmd echo hello there;echo hi there
  will actually display "hi there" before "hello there", because
  the "hello there" echo is not executed until a WAIT token is
  received from the server.  If for instance you wanted to make
  sure to execute some command after the completion of a TRACE
  of your server, the format would be.
    TRACE
    WAIT -CMD command
  Note: This doesn't work for commands that depend on another server to 
  send you information. TRACE <remote server> for instance.

  The second form of the command is:
    WAIT -CMD %process command
  Where %process is a valid running processes id or name.  This is
  used to cause IRCII to execute the command after the process has
  exited.  If the given process doesn't exist, return is immediate.
  Here is an example of it's use:
    alias uptime {
      exec -name uptime uptime
      wait %uptime -cmd echo The time is $uptime
    }
    alias dotime uptime
    on ^exec uptime assign uptime $1
  When dotime is called, a request will be sent to get the uptime.
  The ON EXEC will catch the time and assign it to the variable 
  'uptime' at the same time that the alias is at the 'wait %uptime'
  stage, when the process exits, WAIT will continue and execute 
  echo The time is $uptime, where '$uptime' has been set already.

  If you are echoing output to the screen from within the WAIT -CMD
  form, it is probably a good idea to record the current window
  and use XECHO -WINDOW to ensure that output goes where it should.

  The last form of WAIT is no longer recommended.  It can be 
  used in the form of
    WAIT
  or
    WAIT %process

  This suspends he client until the server has finished output, and 
  has innumerable problems, among them being:

  - If one WAIT is executed while another is pending,
    both will be registered as satisfied when the first
    returns. A warning is now issued when this happens.

  - If you are in a prompted input sequence (such as oper
    password, confirmation prompts, and $".." input),
    results can be unpredictable.

  - It is not consistant with the message driven programming
    model which exists in ircII.

  With multi window enhancements the problems with WAIT become even
  more prohibitive, unless used in the -CMD form.
===========================================================================

WALLOPS:
Usage: WALLOPS <message>
  Sends a message to all operators currently on irc.  
  This command has deteriorated to the point that it 
  is no longer useful, and most OPERATORS have removed 
  it from the server all together.  A classic example
  of a good idea abused till it's worthless.
===========================================================================

WHICH:
Usage: WHICH <script name>

  WHICH will attempt to find a given script name in your 
  LOAD_PATH. E.g. WHICH global might return:
    /usr/local/lib/irc/script/global

See Also:
  SET LOAD_PATH
  CD
===========================================================================

WHILE:
Usage: WHILE <boolean> { <cmd> }
  This will execute the given cmd while the given boolean returns
  true.  The boolean has the same format as for the IF command, except
  that it is re-evaluated at each loop interation.  The same is true
  for cmd.  It is re-evaluated at each loop interation.
  Example (in script format):
    alias repeat
    {
      @ rep = 0;
      while (rep < [$0])
      {
        $1-
        @ rep = rep + 1
      }
      assign -rep
    }

  This can be used as follows:
    /repeat 10 /msg bigcheese This repeats 10 times
  The repeat alias breaks down into three parts.

    @ rep = 0 
    while (rep < [$0]) {$1-;@ rep = rep + 1}
    assign -rep

  The first is to initialize rep to 0 and the last part is to remove
  rep when done.  The first is just like ASSIGN rep 0
  The WHILE portion is described below:
  The boolean for the while loop is (rep < [$0]).
  This is what is then used at each loop interation.  At the
  first iteration this will be ( 0<10 ),  at the next ( 1<10 ), and so on.
  The cmd part of this looks like {$1-;@ rep = rep + 1}
  When the alias is first parsed, the stuff inside {..} is not expanded but
  is simply executed at each loop interation.  It expands to
    'msg bigcheese This repeats 10 times.;@ rep = rep + 1'
  It sends the MSG to BigCheese and then it increments rep by 1.  
  (See HELP @ for more information about this assignment) 

  The command part while is exactly like the syntax in IF
  and FOREACH.

See Also:
  IF
  FOREACH
  @
  expressions
===========================================================================

WHO:
Usage: WHO [-switch [<arg>]] [<wildcard expression>]
  Gives a listing of the users on irc.  If no flags are
  specified, the wildcard expression you supply will 
  match any field returned by WHO.  However, if the wildcard
  expression is "*" (an asterisk), the users on the current
  channel are shown.  Note that WHO * will fail if you 
  are not on a channel.  If the expression is 0, all users on 
  irc are shown.  The following switches are also recognized 
  and used to limit the listing:
    -OPERATORS            - lists only operators
    -LUSERS               - lists only non operators
    -CHOPS                - lists only channel operators
    -NAME <username>      - lists only people with matching 
                            user-ids
    -FILE <filename>      - lists only people listed in the
                            file
    -HOST                 - Lists users from the specified host.
    -SERVER               - Lists users from the specified server.
    -HERE                 - Lists only those marked as here.
    -AWAY                 - Lists only those marked away.
    -NICK                 - Match only the given nickname

  The switches may be abbreviated unambiguously.  All matching of
  usernames, hostnames, and servernames may contain wildcards (*).
  Wildcards in the form "*.edu" are also correctly recognized
  by the IRC server (so there's no need for ircII to do that).
===========================================================================

WHOIS:
Usage: WHOIS <nickname>
       WHOIS <nick1>,<nick2> [...]
       WHOIS <server> <nickname>[,<nick2>...]
  Shows more detailed information about the nickname specified.
  This info includes the users name, host, server, "real" name,
  and away message.  As you can see in the second line you can
  use WHOIS on multiple nicknames. The third line demonstrates
  how you can send the WHOIS request to a distant server. If
  you WHOIS a person on his server you will receive extra info
  about his idle time.
    WHOIS nickname nickname
  where the two nicknames are the same will query the user's server
  about his information just like the WHOIS <server> <nickname> form.

See Also:
  WHOWAS
===========================================================================

WHOWAS:
Usage: WHOWAS <nickname> [<count>]
  Shows information about who used the given nickname last, even
  if no one is currently using it.  If <count> is specificed,
  then only the last <count> entries are shown.
===========================================================================

WINDOW:
ADD            GROW            LIST            POP             SHRINK
BACK           HIDE            LOG             PREVIOUS        STACK
BALANCE        HIDE_OTHERS     LOGFILE         PROMPT          SWAP
CHANNEL        HOLD_MODE       MOVE            PUSH            WINDOW
CREATE         KILL            NAME            REFNUM        
DELETE         KILL_OTHERS     NEW             SCROLL        
FORWARD        LASTLOG_LEVEL   NOTIFY          SERVER        
GOTO           LEVEL           NOTIFY_LEVEL    SHOW          
===========================================================================
Usage: WINDOW ADD <n>  
  Adds <n> to window namelist, where <n> is either a nick or channel 
  name.  All communication with <n> will go to that window.  Also, <n>
  may be a comma separated list (no spaces).
===========================================================================

Usage: WINDOW BACK
  Set the current window to the previous current window
  swapping the current window with the new one if it was
  hidden.
===========================================================================

Usage: WINDOW BALANCE
  Causes all windows to resize so they are as close as possible to 
  evenly sized.
===========================================================================

Usage: WINDOW CHANNEL <c>  
  Directs all conversation with channel <c> to the current window. 
  If you are not current on channel <c>, you will join it. If you 
  are on channel <c> it will be diverted to the current window, 
  possibly removing channel <c> from another window.
===========================================================================

Usage: WINDOW CREATE
  Creates a new ircII window by either opening a new 'screen' window
  or 'xterm' window depending on the environment.  'screen' is a 
  popular program which allows multiple windows to be recalled under
  unix and displayed one at a time on even a vt100 terminal.
  The X environment is a graphical interface for high resolution
  monitors usually attached to UNIX machines.

  Currently, all xterms must be the same size as each other.

  See also:
    WINDOW DELETE
===========================================================================

Usage: WINDOW DELETE
  Destroys a screen or xterm ircII window, depending on the environment.
  You can't WINDOW DELETE the main screen (the one ircII
  was started in).

See Also:
  WINDOW CREATE
  WINDOW KILL
===========================================================================

Usage: WINDOW FORWARD
  Set the current window to the next numbered window swapping the
  current window with the new one if it was hidden.
===========================================================================

Usage: WINDOW GOTO <n>
  Set the current window to the n'th window visible on the screen. 
  They are numbered from the 1 being the topmost window.
===========================================================================

Usage: WINDOW GROW <n> 
  Increases the size of the current window by n lines.
===========================================================================

Usage: WINDOW HIDE
  Make the current window "hidden".  It still exists in every way 
  except it takes up no space on the screen.
===========================================================================

Usage: WINDOW HIDE_OTHERS  
  This hides all visible windows but the current window.
===========================================================================

Usage: WINDOW HOLD_MODE [ON|OFF|TOGGLE]
  This controls hold mode for the current window.
  The settings of the system variable HOLD_MODE is used as 
  default for new windows created.  If more than one window 
  exists, then executing a SET HOLD_MODE will change the 
  settings for the current window only. 
===========================================================================

Usage: WINDOW KILL
  Removes the current window.  This does not remove you from any 
  channel you were on in that window.
===========================================================================

Usage: WINDOW KILL_OTHERS  
  This kills all visible windows but the current window.
===========================================================================

Usage: WINDOW LASTLOG_LEVEL <l>  
  Where <l> is the same as for LEVEL, this controls what types of 
  messages displayed in the current window should be saved to the 
  windows lastlog.

See Also:
  SET LASTLOG_LEVEL for a complete description of the LEVEL parameters.
===========================================================================

Usage: WINDOW LEVEL <l>
  Where <l> is a comma separated list of one of the following: 
  CRAP, PUBLIC, MSG, NOTICE, WALL, WALLOP, NOTE, ALL, or NONE.  
  This controls what types of messages will go to the current 
  window.

  No information is ever lost.  Anything that doesn't otherwise
  have a specific window to go to (because it is a window's
  current channel or QUERY user) will either go to the current
  window, or the window whose LEVEL setting contains an
  appropriate type for that message. By default, the first
  window created has a LEVEL of NONE, meaning that no messages
  will go to that window unless otherwise specified.

  Output from NAMES, LIST, WHO... fall under the CRAP category
  for LEVEL. If you want, for example, these messages to always go
  to the current window, you can type this:
    WINDOW LEVEL CRAP
  Now, all "crap" will remain in this window, while all private messages,
  walls, wallops, mail, and notices will go to your current window.
  
See Also:
  SET LASTLOG_LEVEL for a full description of the LEVEL parameters.
===========================================================================

Usage: WINDOW LIST 
  Show a list of all windows in the following format...
    *** Ref  Nick      Name  Channel    Query     Server     Level
    *** 1    Daemon    <Non  #twilight_ <None>    ucsu.color NONE
===========================================================================

Usage: WINDOW LOG [ON|OFF|TOGGLE]
  This turns on logging for the current window only.
  If no logfile name has been set with WINDOW LOGFILE,
  the logfile name is created from the current setting of the LOGFILE
  variable and the name of the window channel, query user, or simply
  the word "Window" with the windows internal reference number added
  to the end.  For example, if LOGFILE is set to "IrcLog", and you are
  on channel "#Har", the log file for the window will be "IrcLog.#Har".  

See Also:
  WINDOW LOGFILE
  SET LOG
  SET LOGFILE
===========================================================================

Usage: WINDOW LOGFILE [<filename>]
  Sets the name of the file to be used for the log of this window.
  New window logs are appended to the end of this file.

  Nothing is appended to this name, if you use WINDOW LOG.
  If you don't set a logfile for the window, and call WINDOW LOG,
  ircII creates a name for you.

See Also:
  WINDOW LOG
  SET LOG
  SET LOGFILE
===========================================================================

Usage: WINDOW MOVE <n>  
  Moves the current window n positions on the screen.  Eg, MOVE 1 
  will move the current window down 1 on the screen.  Window 
  proportions are maintained using MOVE.
===========================================================================

Usage: WINDOW NAME <name>
  Sets a <name> for the window, which may now be used in place of
  the refnum assigned by ircII.
===========================================================================

Usage: WINDOW NEW
  Creates a new window by splitting either current window, or the 
  largest window on the screen. 

See Also:
  SET ALWAYS_SPLIT_BIGGEST.
===========================================================================

Usage: WINDOW NOTIFY
  Toggles notification for the current window when it is 
  invisible. If set to ON, the first text written to the window 
  after it is hidden will cause a line to be displayed in the 
  current window at that time.
===========================================================================

Usage: WINDOW NOTIFY_LEVEL <l>  
  Where <l> is the same as for LEVEL, this controls what types of 
  messages trigger STATUS_NOTIFY.

See also:
  SET LASTLOG_LEVEL for a complete description of the LEVEL parameters.
  SET NOTIFY_LEVEL
  SET STATUS_NOTIFY
  WINDOW
  WINDOW HIDE
  WINDOW SWAP
  WINDOW SHOW
===========================================================================

Usage: WINDOW POP 
  Pops the top window off the window stack making it the current 
  window.  If it is hidden, then makes it visible first.
===========================================================================

Usage: WINDOW PREVIOUS
  Set the current window to the last numbered window
  swapping the current window with the new window if
  it was hidden.
===========================================================================

Usage: WINDOW PROMPT <s>
  Sets the input prompt for the window. It will replace $T as the 
  window target when used in the INPUT_PROMPT variable. The 
  window prompt is set automatically when EXEC detects a 
  prompt from a process.
===========================================================================

Usage: WINDOW PUSH
  Push the current window onto the window stack.
===========================================================================

Usage: WINDOW REFNUM <r> 
  Change the current window to the window with refnum <r>.
===========================================================================

Usage: WINDOW SCROLL [ON|OFF|TOGGLE]
  This controls scrolling for the current window.
  The settings of the system variable SCROLL is used as are 
  used as default for new windows created.  If more than one 
  window exists, then executing a SET SCROLL will change 
  the settings for the current window only. 
===========================================================================

Usage: SERVER <server>:<portnumber>:<password>:<nickname>
  This allows you to specify a different server to connect to for 
  the current window. The <portnumber> and <password> are optional. 
  If you are already connected to the specified server, the window 
  will switch to that server.  Doing a WINDOW with no parameters 
  shows you what server is associated with it.

See Also:
  HELP SERVER 
===========================================================================

Usage: WINDOW SHOW <r> 
  Makes the hidden window with refnum <r> visible again and become
  the current window.
===========================================================================

Usage: WINDOW SHRINK <n>  
  Decreases the size of the current window by <n> lines.
===========================================================================

Usage: WINDOW STACK
  Show all the windows in the window stack.
===========================================================================

Usage: WINDOW SWAP <r>  
  Swaps the current window with the hidden window with refnum <r>.  
  The proportions of the window are maintained.
===========================================================================

Usage: WINDOW [<argument> [<argument> <argument> ...]]
  The WINDOW command lets you manipulate multiple "windows" in
  ircII.  Windows are horizontally divided sections of the
  screen in which different bits of irc information can be
  displayed.  WINDOW lets you create, manipulate, and remove
  such windows.  The <argument> parameters to WINDOW are described
  in full detail in their own sections.
  
  The "current window" is denoted by "^^^^^^^^^^" in the status
  line for that window. You can switch the current window by
  activating the key functions PREVIOUS_WINDOW or NEXT_WINDOW.
  These are bound, by default, to ^Xp and ^Xn, respectively.
  
  Each window can have the conversation of a channel going to
  it, which can be specified by either using WINDOW CHANNEL <c>
  or by executing the JOIN or CHANNEL commands in a window.
  Each window can also have its own QUERY user.  When QUERYing
  someone in a window, all conversation with that person is
  directed to that window.
  
  If you have JOIN or WINDOW CHANNEL commands in a script, like
  your .ircrc file, you will need to do a WAIT after each JOIN
  or WINDOW CHANNEL.

See Also:
  WAIT
  WINDOW LEVEL
===========================================================================

XECHO:
Usage: XECHO [<flags>] <text>
  XECHO is like ECHO, except that it takes flag arguments.

Available flags:
  -LEVEL <level>  displays the message with the specified lastlog
                  level. This is useful to change the window some
                  messages are displayed in. This is the only way
                  to generate a message with the USERLOG1-4 lastlog
                  levels.
  -WINDOW <winname> displays the text in the named window, if it can. 
                  If the window doesn't exist, then the -WINDOW flag
                  is ignored.
See Also:
  ECHO
  ON
  SET DISPLAY
  LASTLOG
===========================================================================

XTYPE:
Usage: XTYPE [-LITERAL] <text>
  XTYPE is like TYPE, except that it takes flag arguments.

Available flags:
  -LITERAL   Adds text to the input cursor, like /type does,
             but bindings are ignored.

See also:
  TYPE
===========================================================================

basics:
Irc is a multi-user, multi-channel chatting network.  It allows
people all over the internet to talk to one another in real-time.
Each irc user has a nickname they use.  All communication with
another user is either by nickname or by the channel that they or
you are on.  All IRCII commands begin with a / character.
Anything that does not begin with a / is assumed to be a message
that is sent to everyone on your channel.  Here is a list of
basic commands to help you get started:

    /LIST               Lists all current irc channels, number of
                        users, and topic.
    /NAMES              Shows the nicknames of all users on each
                        channel
    /JOIN <channel>     Join the named channel.  All non-commands
                        you type will now go to everyone on that
                        channel
    /MSG <nick> <msg>   Sends a private message to the specified
                        person.  Only the specified nickname will
                        see this message.
    /NICK               Change your nickname
    /QUIT               Exits irc.
    /HELP <topic>       Gets help on all IRCII commands.
    /WHO <channel>      Shows who is on a given channel,
                        including nickname, user name and host,
                        and realname.
    /WHOIS <nick>       Shows the "true" indentity of someone

These commands should get you started on irc.  Use the /HELP
command to find out more about things on irc, or ask question of
people... most would be happy to help you out.
===========================================================================

commands:
All IRCII commands typed on the command line must begin with one
of the CMDCHAR settings (see SET CMDCHARS).  By default, this 
is set to /.  Thus, any input line whose first character is a 
/ is treated as an IRCII command. For example:

/MSG BigCheese Howdy!

This executes the MSG command, which sends a private message to 
"BigCheese", and that message is "Howdy!"

You can create aliases for commands or redefine what an existing
command does.  This is done with the ALIAS command.  For example:

/ALIAS M /MSG 

NOTE: Command within aliases and other functions do not need the
      CMDCHAR, and thus the above alias could be written as 
      /ALIAS M MSG    as well.
      The exception to this, is the // convention mentioned below.

This example creates a new command, M, which does the same thing
as MSG, you can now do:

/M BigCheese Howdy!

and it will work exactly like MSG.  Suppose however you did this:

/ALIAS MSG //MSG BigCheese

Now, the MSG command will only send messages to BigCheese:

/MSG Howdy!

Note that in the alias, there are two / in front of MSG.  Putting
two of the CMDCHAR in front of a command tells IRCII that you
want to use the original command, and not any alias of it.
Therefore, even if you had the above alias for MSG, you could
still do the following:

//MSG Cheese I can still use the original MSG command.

Furthermore, if you wish you can turn off your display 
(See SET DISPLAY) for the duration of a command.  This is
done by putting a ^ character between the / and the command
word.  For example, if you do:

/^MSG BigCheese Hello

You will not see any visible effect to this command (unless the
nickname BigCheese does not currently exist).

Lastly, if you do the following:

/ /this is a test

Note there is a space after the /.  This form forces the following
text to be sent to your current channel no matter what.  You can
thus send lines that begin with your CMDCHAR.  It can also
be used to force a message to your current channel when you are
using QUERY.
===========================================================================

etiquette:

HOW TO BEHAVE ON IRC

Authors:      Lea Viljanen (LadyBug)  viljanen@kreeta.helsinki.fi
              Ari Husa     (luru)     so-luru@tolsun.oulu.fi 
Modified by:  Troy Rollo   (Troy)     troy@plod.cbme.unsw.oz.au



1) Language

   The most widely understood and spoken language on IRC is English. 
However! As IRC is used in many different countries, English is by
no means the only language. If you want to speak some other language
than English (for example with your friends), go to a separate channel
and set the topic (with /topic) to indicate that. For example
   /topic Finnish only!
would mean that this channel would be reserved for Finnish discussion.
On the other hand, you should check the topic (with /list command) 
before you move to a channel to see if there are any restrictions about 
language.
   On a channel not restricted by /topic, please speak a language
everybody can understand. If you want to do otherwise, change channels
and set the topic accordingly.


2) Hello/Goodbye

   It's not necessary to greet everybody on a channel personally.
Usually one "Hello" or equivalent is enough. And don't expect everybody
to greet you back. On a channel with 20 people that would mean one
screenful of hellos. It's sensible not to greet, in order not to be rude
to the rest of the channel. If you must say hello to somebody you know,
do it with a private /msg. The same applies to goodbyes.

   Also note that using IRCII's /ON facility to automatically say hello
or goodbye to people is extremely poor etiquette. Nobody wants to receive
autogreets. They are not only obviously automatic, but even if you think
you are being polite you are actually sounding insincere and also
interfering with the personal environment of the recipient when using
autogreets. If somebody wants to be autogreeted on joining a channel,
they will autogreet themselves.


3) Discussion

   When you come to a new channel it's advised you to listen
for a while to get an impression of what's discussed. Please feel free
to join in, but do not try to force your topic into the discussion
if that doesn't come naturally.


4) {}|[]\

   IRC has quite a lot of people from Scandinavian countries,
the above characters are letters in their alphabet. This 
has been explained on IRC about a thousand and one times, so
read the following, do not ask it on IRC:

   {     is an A with 2 dots over it
   }     is an A with a small circle above it
   |     is either an O with 2 dots over it or an O with a dash (/) through it
   [, ], and \ are the preceding three letters in upper case.


5) ATTENTION!

   Remember, people on IRC form their opinions about you only by 
your actions, writings and comments on IRC. So think before you type.
===========================================================================

expressions:
  This help file describes expresssions available in ${}, and the
  @, IF, WHILE, and FOREACH commands.

  Variable expressions are used to perform arithmetic, string and
  boolean operations. Their syntax is similar to the syntax of most
  computer languages, and is modelled on C syntax. A simple example
  of this, is that when ${A + 2} is used, and the ASSIGNed variable
  A has the value '3', the result is 5.

  Brackets can be used in these expressions, so (A+2)*3 would give a
  value of (3+2)*3 == 15, whereas A+2*3 would give a value of 9, because
  multiplication is performed before addition.

  The common arithmetic operations (+, -, *, /) are all available.
  Additionally, there is a string concatenation operator (##).
  This treats both sides as strings and pastes them together. Thus
  if A is 3 and B is 7, "A##B" becomes "37", but "A+B" becomes 10.

  You can also assign values to a variable in these expressions
  using the '=' operator. Thus if you have the expression "C = A+B",
  it will assign the value 10 to C. This has a number of affects.
  The most common case is the @ command, where you can enter this expression
  literally:

    @ C = A + B

  The '=' operator returns the value assigned. Thus you can extend
  this to:

    @ D = C = A + B

  Which will assign the value 10 to both C and D. In a $ expression,
  you might want to assign a value to a variable, and display it at the
  same time. Thus you might do the following:

    echo The value of C is now ${C = A+B}

  which would set C to 10 and display "The value of C is now 10".

  Comparison operations also exist. These return 1 if the comparison is
  valid (true) and 0 if it is invalid (false). The comparison operations
  available are:

    == (equal to)
    >  (greater than)
    >= (greater than or equal to)
    <  (less than)
    <= (less than or equal to)
    != (not equal to)

  Thus, the following expressions would result in the following results:
   ( recall A = 3 and B = 7 )

    A == B             FALSE 0
    A == 3             TRUE  1
    A > 3              FALSE 0
    A >= 3             TRUE  1
    A != 3             TRUE  1

  These expressions can be combined with || (OR), && (AND) and ^^ (XOR).
  So (A == 3) || (B==3) would be TRUE, and (A == 2) && (B == 7) would be
  FALSE. You can also negate expressions with ! (NOT), so !(A == 3) would
  be FALSE. These boolean expressions are used primarily in IF and WHILE.

  A string expression is considered to be true if it is non empty. So
  if E has the value "word", then E || ( A > 3) is true, because E has
  a non empty value, and !E is false.

  Functions can also appear in expressions. The arguments to functions
  are evaluated as normal $ type expressions. Thus the following alias:

    alias test echo ${ MID(3 2 $0) + 5) }

  is executed with /test 123456, would give  34 (Two digits from position 3
  in $0) + 5, giving 39. If the function returns another function name, that
  function name can be called with another set of brackets. Thus if you have
  the following set of aliases:

    alias fptr
    {
        if ( [$0] )
            { @ function_return = func1 }
            { @ function_return = func2 }
    }
    alias func1 @ function_return = this is $0
    alias func2 @ function_return = that is $0
    alias check echo ${ fptr($0)($1) }

  then /check 0 1 would print "that is 1", and /check 1 0 would print
  "this is 0".

  Array expressions can also be used in this way. For example:

    assign A.1.1 One One was a racehorse
    assign A.1.2 Two Two was one too
    assign A.2.1 One One won one race
    assign A.2.2 Two Two won one too
    alias rhyme echo ${ A[$0][$1] }

  would cause /rhyme 2 1 to print "One One won one race".

  Function and array expressions can be combined to give a form
  of pointer arithmetic like that seen in C. If a function
  RhymeNum exists as follows:

    alias RhymeNum @ function_return = [A]
  and rhyme is changed to:
    alias rhyme echo ${ RhymeNum()[$0][$1] }

  /rhyme 2 1 still prints "One One won one race". This is because
  RhymeNum returns A, and the expression then becomes A[$0][$1].
  The $0 is expanded to 2, so it becomes A.2[$1], and the $1 is
  expanded to 1, so it becomes A.2.1, which is then substituted as
  a variable for "One One won one race". The reverse is also possible.
  For example, a robot might have the following:

     alias thing.0 @ function_return = laughs his silly head off
     alias thing.1 @ function_return = growls menacingly
     alias thing.2 @ function_return = smiles like a crocodile
     alias thing.3 @ function_return = wails uncontrollably
     alias something SAY WereBot ${ thing[$RANDOM(4)]() }

  Will cause WereBot to say that it's laughing itself silly, growling
  menacingly, smiling like a crocodile or wailing uncontrollably.
  Assuming RANDOM(4) results in a value of 2, This expands to
  thing.2(), which is then considered to be a function and substituted
  to "smiles like a crocodile", the end result being that WereBot will
  say "WereBot smiles like a crocodile".

  Finally, there are occasions when you need to get back to the $
  substitution level. This can be done by enclosing text to be used at
  this level in [..]. For example, [A] substitutes to a literal 'A', 
  whereas A on its own substitutes to 3, and [$0] is needed to get
  argument 0, because 0 on its own is taken to be the number 0.
  Example:

    alias something SAY WereBot ${ [$0][$RANDOM(4)]() }

  will case /something thing to first expand [$0] to thing, giving
  thing[$RANDOM(4)](), and if $RANDOM(4) returns 1, this becomes
  thing.1(), which expands to "growls menacingly", and causes
  WereBot to say "WereBot growls menacingly".


  The following is the parse tree for expressions such as  those

       NU_EXPR = NU_CONJ
       NU_CONJ = NU_CONJ && NU_CONJ    |
                 NU_CONJ || NU_CONJ    |
                 NU_CONJ ^^ NU_CONJ    |
                 NU_ASSN
       NU_ASSN = varexp = NU_ASSN    |
                 NU_COMP
       NU_COMP = NU_COMP == NU_COMP    |
                 NU_COMP != NU_COMP    |
                 NU_COMP >  NU_COMP    |
                 NU_COMP >= NU_COMP    |
                 NU_COMP <  NU_COMP    |
                 NU_COMP <= NU_COMP    |
                 NU_ADD
       NU_ADD  = NU_ADD + NU_ADD       |
                 NU_ADD - NU_ADD       |
                 NU_ADD ## NU_ADD      |
                 NU_MULT
       NU_MULT = NU_MULT * NU_MULT     |
                 NU_MULT / NU_MULT     |
                 NU_UNIT
       NU_UNIT = token NUX_MODIF       |
                 unaryop token         |
               ( NU_EXPR )             |
               [ expression ] NUX_MODIF

       NUX_MODIF = ( expression ) NUX_MODIF |
                   [ expression ] NUX_MODIF

Special cases:
  If a (...) or {...} construct is quoted with \(...\) or \{...\}
  then variable expansion will take place on the first available
  parse run.  However, after parsed, the \'s are eaten. e.g.
    alias bonk echo ($0)        will return "($*)" regardless of
  the argument to the alias.  No expansion takes place.  However, in
    alias bonk echo \($0\)
  expansion takes place as the special meaning of the () is taken
  away by \.  This will return "(arguments to bonk)".
===========================================================================

intro:
Irc is a multi-user, multi-channel chatting network.  It allows
people all over the Internet to talk to one another in real-time.
Each irc user has a nickname they use.  All communication with
other users is either by nickname or by the channel that they or
you are on.  All IRCII commands begin with a / character.
Anything that does not begin with a / is assumed to be a message
that is sent to everyone on your channel.  Here is a list of
basic commands to help you get started:

    /LIST              Lists all current irc channels, number of
                       users, and topic.
    /NAMES             Shows the nicknames of all users on each
                       channel
    /JOIN <channel>    Join the named channel.  All non-commands
                       you type will now go to everyone on that
                       channel
    /MSG <nick> <msg>  Sends a private message to the specified
                       person.  Only the specified nickname will
                       see this message.
    /NICK              Change your nickname
    /QUIT              Exits irc.
    /HELP <topic>      Gets help on all IRCII commands.
    /WHO <channel>     Shows who is on a given channel,
                       including nickname, user name and host,
                       and realname.
    /WHOIS <nick>      Shows the "true" indentity of someone
                       Use this often to make sure you know who 
                       you are talking to, because nicknames are
                       owned so any number of people could
                       use a nickname.

These commands should get you started on irc.  Use the /HELP
command to find out more about things on irc, or ask question of
people... most would be happy to help you out.
===========================================================================

ircII:
COPYRIGHT              ircII                   signals
command_line_args      programming             status_line
environment_vars       server_lists
===========================================================================
IRCII is Copyright (c) 1991 by Michael Sandrof. Versions 2.11 to
2.2pre7 Copyright (c) 1991 by Troy Rollo. Versions 2.2pre8 and
beyond Copyright (C) 1992, 1993 Matthew Green.  You have the
right to copy, compile, and maintain this software.  You also
have the right to make modifications to this code for local use
only.  You have the right to distribute modified versions of the
code as long as you CLEARLY indicate that any problems with the
modified code be reported to you.

One module of the source code, scandir.c is copyright (c) 1983
by the Regents of the University of California.  All rights are
reserved by the University of California.

This software is provided ``as is'' and without any express or
implied warranties, including, without limitation, the implied
warranties of merchantability and fitness for a particular
purpose.
===========================================================================

The command line arguments to IRCII ar as follows:

irc [<nick> [<server list>]] [<switches>]

You may specify a nickname, which will supersede the IRCNICK
environment variable.  The server list will be added to the
server list found in the IRCSERVER variable.  However, the 
servers specified on the command line will appear first in the
server list and be the first to which connections are attempted.
See ircII server_lists for the format of a server list.
See also ircII environment_vars for automatic settings.

The <switches>:
   -c <channel> joins <channel> at startup.  If not specified, you
                start at channel 0.
   -p <port>    default server connection port (usually 6667).
                This default port number can be overriden by
                specifying a port number in the server list (see below) 
                or using the SERVER command (see SERVER).
   -f           your terminal uses flow controls (^S/^Q), so IRCII shouldn't
                You may want to rebind ^Q and ^S so you can still
                use those functions.  ^Q is usually bound to
                QUOTE_CHARACTER, and ^S is usually bound to
                TOGGLE_STOP_SCREEN.  See BIND about this.
   -F           your terminal doesn't use flow control (default).
                Opposite of -f, forces IRCII to take over ^Q/^S.
   -s           Start IRCII without using the server process (ircserv)
                even if it can find it.  This is useful for use with
                irciid and automatons which don't need the
                separate process (since they never ^Z).
   -S           Opposite of -s.  Force ircII to use the (ircserv )
   -d           runs IRCII in "dumb" terminal mode.  IRCII then 
                uses no fancy screen stuff or fancy input editing.
                All output goes to stdout, and all input is read from
                stdin.  Input editing is only done by your tty (if any).
                No IRCII keybinding have any effect in dumb mode.
   -l <file>    loads <file> in place of your .ircrc
   -a           adds default servers and command line servers to server 
                list.  Normally, if you specify servers on the command
                line, the IRCSERVER and default server are not added to the
                server list.  This forces all servers known to be added.
                The order in which servers appear in you server list 
                are as follows:
                   1. command line servers (from left to right)
                   2. IRCSERVER servers (from left to right)
                   3. Default IRCII servers
   -b           runs IRCII in dumb mode but accepts no user input.
                This is useful for automatons written totally under
                IRCII which you wish to run in the background.  IRCII
                will automatically fork into the background with
                this switch (unless -n is used).
   -n           Prevents IRCII from forking into the background with
                either the -b or -e switches..
   -e <process arg list>  runs IRCII by reading stdin from <process> and
                sending stdout to <process>.  All other args are passed 
                to <process>,  so this must be the last switch.  IRCII
                will fork into the background unless -n is used.
   -v           Prints the version and internal version (release date).
===========================================================================

The following environment variables are recognized by IRCII.

IRCNICK   -  Specifies your default irc nickname
IRCNAME   -  Specifies any lunacy you want instead of your real name
IRCSERVER -  Specifies a default server list for IRCII
IRCPATH   -  Specifies a list of directories IRCII should search when
             the LOAD command is used to find IRCII scripts.
             (also see SET LOAD_PATH)
IRCRC     -  Specifies a file to use instead of your $HOME/.ircrc.
TERM      -  Specifies your terminal type
HOME      -  Tells IRCII where your home directory is

IrcII can find other environment variables through alias substitution.
e.g. $HOST will show the HOST envariable, $PATH the PATH envariable.
===========================================================================

IRCII is a termcap based interface to the IRC Network.  All
commands to IRCII begin with a '/' (or whatever your current
CMDCHAR is set to, see HELP SET CMDCHAR).  Any other text you
type on the command line is sent directly to the channel you are
on.

IRCII may be ftp'ed from coombs.anu.edu.au [150.203.76.2]
                                 cs.bu.edu [128.197.2.1] [128.197.10.1]
                              nic.funet.fi [128.214.6.100]
           ftp.informatik.uni-oldenburg.de [134.106.1.9]

Send bug reports, comments, or questions to
   Matthew Green (phone@coombs.anu.edu.au)
or to the IRCII mailing list
   ircII-coders@cbme.unsw.edu.au
or to
   phone or Daemon on IRC
===========================================================================

This is about programming in ircII, because ircII is not a client program,
it's an operating system.. :)  And the language is just as simple as SMAIL
(that is: it is horrendous) but if you want to get into it, here's a little
note for you:

The command character (usually '/') is only necessary when you type commands
interactively, when you program things it is no more needed, it used to be
though. If you want to type to the channel from within an alias, on or
binding, you have to use SAY or SEND.  There is a case where you 
do need to use '/' and that is when you want to make absolutely sure you
send the REAL command instead of an alias.  
Here is a useful example:
alias mode {
     if (([$[1]0] == [#]) || ([$0] == [*]) || ([$0] == N))
         { //mode $* }
         { //mode $C $* }
}

If the first arg is not a channel name or your nickname then the mode is 
assumed to be to your current channel.. e.g. mode +i mode +ps etc..
'//' is used to send a real MODE instead of the alias. This sort of thing
is common.

The ';' has a special meaning in aliases, bindings and ons: It is treated
as command separator, that means you can execute multiple commands in
a row separated by semicolons. The semicolons are not considered separators
when you use them interactively (to be able to type  ;-)) and within an
ircII script file.

You can escape the meaning of ; in an alias with \;.  Try the following.
alias testhook {
    on hook * echo A hook has occured: $*;echo What are you going to do?
}
Then type /testhook followed by /hook blah blah blah
and notice that the message "What are you going to do?" appeared when you
typed the alias instead of when you activated the HOOK.  To avoid this
problem, use the property mentioned above.
alias testhook {
    on hook * echo A hook has occured: $*\;echo What are you going to do?
}
Note that the \ take the special meaning away from the ; until the ON
had been stored.  At which point it is parsed normally.
See: USERHOST for some other notes about using \.

There are now several new forms for aliases and such.  The most common form 
is to enclose multiple commands from an ALIAS, IF, FOREACH, or WHILE statement
inside { }.  This also allows one command to be imbedded within another.
(See IF, for an example of an imbedded IF statement).

For a full working example of imbedded FOREACH loops, see the FOREACH
help.  For a prime example of this in action, take a look at the 'netsplit'
script.

Many things have changed and continue to change.  Usually, the best way to 
get some idea of how things work with any given release is to go take a 
look at the files in the 'script' directory.  You can see where this is
by looking at the contents of the LOAD_PATH variable or using the WHICH
command. (ie. WHICH netsplit)   will show you where the netsplit script
is located on your machine.  Use the help alot.  What you want to know is 
in there and many people get tired of answering the same easy questions.

A couple notes about creating scripts.  It's best if you use a 
consistent and useful naming scheme for the variables used within your
scripts.  For example, if you have a script called 'blue' that
has a bunch of internal variables and aliases then you might make
those variables and aliases have names like.
blue.tmp
blue.cnt 
or  bl.cnt  etc..  This does two things.  
1.  It lessens the chance that your variable names will collide with 
    someone elses
2.  you can type  'assign blue.'   and see every variable associate
    with that script and it's current value.  or 
    'alias blue.' and see all the aliases.

When using ON's, if you have some ON that simple observes an action
taking place and acts upon it, but does not try to suppress or change
the output, then please use serial numbered ONs so that your ONs
don't collide with those in other scripts.  See: HELP ON serial_numbers

Have fun.

See Also:
  USERHOST
  WHILE
  ALIAS
  IF
  ON
  ON serial_numbers
  expressions
===========================================================================

The formats of an ircII server list is as follows:
  servername
  servername:portnum
  servername:portnum:password:nick
  servername::password:nick
The servername is the name of the server, the portnum is the port
number of that server to connect to, and the password is a
connection password for that server.  The first format above
uses the default port number and no password.  The second format
specifies a port number for connection to the specified server
and no password.  The third format specifies both a port number
and password for connection.  The final format uses a password
and the default port number.

And, since we call these "server lists", you may specify as many
of the above formats as you wish.  These may be used on the IRCII
command line (See HELP ircII command_line_args) and in the
IRCSERVER environment variable (see HELP ircII environment_vars).
===========================================================================

ircII behavior can be changed from the unix command prompt using signals:
use 'ps -xc' or 'ps -f' to list your active processes, then locate
the number in the PID column of the line about irc. You can then use:
  unix> kill -USR1 <pid>    to close all DCC connections
                                and terminate all EXEC'ed processes
  unix> kill -KILL <pid>    to close the irc process

You can get more information about the above commands in the unix manual:
  man 1 kill
  man 1 ps
  
See also:
  EXEC
  DCC CLOSE
===========================================================================

The IRCII status line shows some important pieces of information.
It shows your current nickname (with an asterisk next to it if
you have OPER privs), your current channel and QUERY user (if you
are QUERYing anyone), current Insert or Overwrite mode (I or O),
and your AWAY status.

The status line may be customized using certain IRCII variables.
Please see the following for more information on this:
HELP SET
HELP SET STATUS_AWAY
HELP SET STATUS_CHANNEL
HELP SET STATUS_CHANOP
HELP SET STATUS_CLOCK
HELP SET STATUS_FORMAT
HELP SET STATUS_HOLD
HELP SET STATUS_HOLD_LINES
HELP SET STATUS_MODE
HELP SET STATUS_NOTIFY
HELP SET STATUS_OPER
HELP SET STATUS_OVERWRITE
HELP SET STATUS_QUERY
HELP SET STATUS_SERVER
HELP SET STATUS_UMODE
HELP SET STATUS_USER
HELP SET STATUS_USER1
HELP SET STATUS_USER2
HELP SET STATUS_USER3 
HELP SET STATUS_WINDOW 
===========================================================================

menus:
This describes a feature which allows one to create and use
menus in any irc session.  The menus are totally user
configurable and a test menu has been provided at the end
of this help file.
To use this menu, copy it to your home directory calling it
'test', run IRC, and do the following:
  MLOAD test
  SET menu Main Menu

Control-R is bound to ENTER_MENU, and while in the menu
you can use vi-like keys or EMACS-like keys to move
through the options, and either '.' or SPACE to select
an option. The format of the menu file is as follows

A line beginning with a '#' represents a comment.
Blank lines are ignored.
A line beginning with the word "MENU" starts a new menu
and gives it a name.
A line beginning with the word "OPTION" adds a new option
to the menu, gives it a name and describes what it does.
It's possible to have one menu OPTION lead you into a new menu with
  OPTION "Sub Menu" COMMAND set menu Sub Menu
assuming the Sub Menu has been defined like the following Main Menu.

The following is a test menu to show how it it can be used.

# Cut off this line.. and take everything down to the next Cut line ---
# Test menu to see how our menu reader works

MENU Main Menu
    OPTION "This menu" MENU Main Menu
    OPTION "List Channels" COMMAND LIST
    OPTION "Join Channel" COMMAND JOIN $"Join Channel: "
    OPTION "Leave Channel" COMMAND PART *
    OPTION "Change Name" COMMAND NICK $"New NickName: "
    OPTION "Private Message" COMMAND MSG $"Person to send message to: " $"Text of message: "
    OPTION "Say something" COMMAND SAY $"Say: "
    OPTION "Exit Menu" EXIT
    OPTION "Exit IRC" COMMAND if ( [$"Really quit? "] == [y] ) { QUIT }
    OPTION "Kill Menu" COMMAND set -menu

# Cut off this line and take everything up to the previous Cut line ----

See Also:
  SET MENU
  MLOAD
===========================================================================

news:
__________________________________________________________________________
                     ircII 2.2, 2.2.1, 2.2.2 and 2.2.3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        READ THIS    READ THIS    READ THIS    READ THIS    READ THIS
        =============================================================
        The most important difference between this version and older
        ones is that the format for  ON SERVER_NOTICE and
        ON PUBLIC has changed.
        Some scripts won't work anymore  (may have strange effects).

    Also, for 2.2.3, the characters ^B ^V and ^_ mean different
    things - ^B bold, ^_ for underline, and ^V for inverse.
 
Commands that have changed.
        It is now possible to redirect to a DCC CHAT connection with
                REDIRECT =nick
        You can have some command executed on the results of USERHOST with
                USERHOST -CMD command
        You can, and should, use WAIT now with
                WAIT -CMD command
        You can have ircII create new windows (screen or xterm) with
                WINDOW CREATE
        The IF and WHILE commands have changed.
    New in 2.2.2
    ON PUBLIC and ON SERVER_NOTICE have changed.
    IGNORE now has CRAP and CTCP levels.
    SERVER has now -DELETE flag.
    news flags -USER and -NAME for LIST -WIDE

New commands
        WHICH script - returns which script will be loaded with LOAD
        FOREACH - to iterate over a list.
        TIMER seconds command - executes `command' after `seconds' seconds.
        INPUT "prompt" command - executes `command' when input is read from
                the keyboard.
        PING nick - uses CTCP PING to work out how many seconds a remote 
                is from you.
        PARSEKEY key - acts as though a key bound to `key' was pressed.
        SENDLINE line - is the same as typing in the line.
        HOOK line - does an ON HOOK check.
        EVAL line - passes `line' to the inline parser, to be executed.
        CTCP UTC - A time CTCP.
        MLOAD - loads a menu.
    New in 2.2.1
        CTCP ECHO - Similar to CTCP ERRMSG.
        WINDOW LOGFILE - Sets the logfile for that window.
    New in 2.2.2
        XTYPE - Similar to TYPE
    WINDOW NOTIFY_LEVEL

New alias variables:
        $W $V $H $U $~

New SETable variables
        NO_CTCP_FLOOD
        SHOW_STATUS_ALL
        SCROLL_AFTER_DISPLAY.
        STATUS_USER1-3
        MENU
        HIGHLIGHT_CHAR
        HELP_PROMPT
        HELP_SERVICE
        HELP_PATH
        DCC_BLOCK_SIZE
        LOAD_PATH
        DEBUG
        VERBOSE_CTCP
        SCROLL_BACKWARD
        SCROLL_FORWARD
        SCROLL_END
        TRANSLATION
        BOLD_VIDEO
    New in 2.2.1
        SHOW_WHO_HOPCOUNT
    New in 2.2.2
        NOTIFY_LEVEL 
        XTERM_OPTIONS
        EIGHT_BIT_CHARACTERS

    And STATUS_FORMAT has these new variables
        %W %X %Y %B %# %@ %>

New/changed on hook's.
        ON DCC_RAW
        ON HOOK
        ON INPUT
        Several of the numeric ON's have changed.
    New in 2.2.1
        ON SERVER_NOTICE   *****  THIS HAS CHANGED  *****
        ON PUBLIC          *****  THIS HAS CHANGED  *****

New bindable keys.
        ERASE_TO_BEG_OF_LINE
        REFRESH_INPUTLINE
        META3_CHARACTER
        META4_CHARACTER

New functions.
        $ENCODE()
        $DECODE()
        $TDIFF()
        $CONNECT()
        $LISTEN()
        $ISCHANNEL(word)
        $ISCHANOP(nick channel)
        $WORD(number wordlist)
        $WINNUM()
        $WINNAM()
    New in 2.2.2
        $CURPOS()
        $MYCHANNELS(refnum)
        $MYSERVERS()

Other
        You can no longer use \n in a line to separate commands.
        Functions are now access with $name().  $%name() is not supported.
        You can access varibles in structures by using struct[index]
          as well as struct.index.
        You can use { } style braces around aliases.
        You can connected to the server via Unix domain sockets.
        The display defaults to OFF while loading a script.

__________________________________________________________________________
                             ircII 2.1.5g.tom2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Internationalization issues:
  1.  Support for multiple character sets.  See /help SET TRANSLATION.
  2.  Digraph entries.  See /help BIND ENTER_DIGRAPH and /help DIGRAPH.
__________________________________________________________________________
                             ircII 2.1.5      
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> The command /who -h and -s is no more supported.
> Introduced { and } in scripts, see script/finger for an example.
See Also: /help load.
> Behavior of HOLD_MODE has changed, won't hold when you are being active
  in that window. I like it a lot more, it's not so disturbing anymore.
> Away messages are displayed only once, when talking to someone who is away
  unless you /set show_away_once off.
> You don't get disturbed by cryptic but trivial CTCP requests, unless
  you /set verbose_ctcp on.
> Improved handling of process prompts, but INPUT_PROMPT must be set.
> ircII can now load scripts and help files in compressed form.
> All the scripts have been updated and many helpfiles written and
rewritten.  Many bugs have been fixed, support of newer server features
added, this client is already 2.7-capable.

> There have been major changes in the command parser. Commands are not
expected to have a leading / unless entered interactively, if you
experience incompatibilities, you will have to add 'say' and 'send'
wherever you have made aliases that send to the channel or query.
See Also: /help ircII programming for this. Also the ';' has a new
meaning as command separator within ALIAS, BIND and ON. You might have
to \escape it.

> The good news: Scripts are much more readable and understandable, look
a lot less ugly now  :)   COMMAND_MODE gives command-oriented freaks the
chance to use ircII that way. A special script for MUDders has been added
that emulates an Aber/LPMUD-like environment on irc, without having to
type / before "smile" and allowing "'<text>" for "say" etc.

> CTCP ACTION has been implemented which permits you to send descriptions
of actions/'feelings' to other people on channels and even through
queries.  You can use it with /me and the action script.
See Also: 
  LOAD ACTION
===========================================================================

newuser:

            NEW USER INFORMATION FOR IRC

This file contains some caveats for people new to IRC. It is not a
guide to commands for IRC. For a brief guide to commands for new
users, see /HELP INTRO.

See /HELP ETIQUETTE for a guide to good manners on IRC.

IRC is an international network servicing 20 or more countries. There
are over 10,000 registered users, and a similar number of regular
unregistered users. Do not expect everybody to speak English.

The primary means of identification is currently by nickname. This can
be modified with /NICK, and registered with NickServ. (/MSG NickServ HELP
for information on NickServ). Note, however that some nicknames are
duplicated, and since unique nicknames CANNOT BE ENFORCED it is common
to find someone else using a registered nickname.
If you have any doubts about the identity of somebody using
a given nick, use /WHOIS NickName to find out more. This gives detailed
information on the person using the NickName. For example, if you
are getting abusive messages from "Fred", type:

/WHOIS Fred

If the information displayed is not the same as that which you would
expect for Fred, it is probably a case of impersonation.

Recently some users have been tricking others into allowing them to
control their IRC sessions or damaging their files. If somebody asks
you to type a command and you don't know what it does, use
/HELP CommandName to find out more about it first. In particular,
/ON has been used to cause trouble and is now initially disabled
for new users. Additionally, /QUI is short for /QUIT and will
terminate your IRC session. If you see any message asking you to
type /QUI or /QUIT, ignore it.

Some new users have been baffled by "CTCP" messages appearing on
the IRC session. These are messages from other users, asking your
client to perform some service for them. They are generally
generated by somebody typing in a CTCP command. See /HELP CTCP.

If you have not already done so, read the HELP files INTRO and
ETIQUETTE.
===========================================================================

rules:

Definitions:

   IRC-ADMIN - Person who have access to all files concerning ircd.
   IRC-OP    - Person who have privileges given to him by an IRC-ADMIN.
               And who is in charge at HIS server.
   CHAN-OP   - Person who runs a channel and has absolute rights there.
   USER      - Person who is using IRC.

------------------------------------------------------------------------------

            Users Behavior on the Internet Relay Chat system



The Internet Relay Network (IRC) is a system for communicating with other
peoples.

IRC is a free speech system. Users may exchange viewpoints with other
users. But to protect people from abuse there are certain rules that the 
user MUST respect.

If a USER doesn't respect the guidelines/rules stated below, then the
IRC-ADMIN may suspend or reduce the availability for the USER.

These things are prohibited:

   * Using offensive words in channel topics.
    
   * Harassing another user. Harassment is defined as behavior towards 
     another user with the purpose of annoying them. 
     Harassment is a matter of opinion of the IRC-OP.

   * "Dumping" a lot of text to a channel.

   * Annoying another user or a channel with constant beeping. 

   * Any behavior reducing the functionality of IRC.

What kind of action a user is doing to break these rules are up to the 
IRC-OP to decide.

Violation should be straighted out via a civilized conversation between
the IRC-OP and the USER.
If the USER is not on-line then the USER should be notified by EMail.
If the USER wont respect what he's been told then it is up to the IRC-ADMIN 
what to do with the USER.

Many many problems can be avoided all together if the CHAN-OP puts necessary
restrictions on his/her channel or if the USER learns how to use IGNORE.

If someone finds a USER violating these rules he may contact the USER's
IRC-ADMIN.
To find a USERS IRC-ADMIN one may use the /ADMIN <nick-name>.


Ove Ruben R Olsen
IRC-ADMIN for Bergen Edu. College, Norway.

EMail: rubenro@viggo.blh.no
===========================================================================

