Remove generated texinfo from repository
authorclinton <clinton@unknownlamer.org>
Thu, 13 Nov 2008 00:47:39 +0000 (00:47 +0000)
committerclinton <clinton@unknownlamer.org>
Thu, 13 Nov 2008 00:47:39 +0000 (00:47 +0000)
bobot++.info [deleted file]

diff --git a/bobot++.info b/bobot++.info
deleted file mode 100644 (file)
index 5e5ee74..0000000
+++ /dev/null
@@ -1,1801 +0,0 @@
-This is bobot++.info, produced by makeinfo version 4.8 from
-bobot++.texinfo.
-
-   This file documents Bobot++ by Clinton Ebadi and Etienne Bernard
-(The original author who no longer works on the program).
-
-   Copyright 2002,2004,2005 Clinton Ebadi
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts.
-
-\1f
-File: bobot++.info,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)
-
-   This document describes Bobot++ by Clinton Ebadi and Etienne Bernard
-(The original author who no longer works on the program).
-
-   This document applies to version 2.2 of the program named Bobot++.
-
-   Copyright 2002,2004,2005 Clinton Ebadi
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts.
-
-* Menu:
-
-* Introduction::
-* Configuration::
-* Using the Bot::
-* Scripting::
-* Concept Index::
-* Function Index::
-* Variable Index::
-
- --- The Detailed Node Listing ---
-
-Configuration
-
-* Configuration File Placement::
-* Configuration Files::
-
-Configuration Files
-
-* bot.conf::
-* bot.users::
-* bot.init::
-* bot.autoexec::
-* bot.shit::
-
-bot.conf
-
-* server syntax::
-* channel syntax::
-
-Using Bobot++
-
-* Starting the Bot::
-* Concepts::
-* Built-In Commands::
-
-Concepts
-
-* User List::
-* Shit List::
-* Spy List::
-* Levels::
-
-Levels
-
-* User Levels::
-* Protection::
-* Automatic Op::
-* Shit Levels::
-
-Built-In Commands
-
-* Bot Control Commands::
-* Message Commands::
-* Channel Control::
-* Spylist Commands::
-* User List Commands::
-* Server List Commands::
-* Shit List Commands::
-* Channel Info::
-* Scripting Commands::
-* Authentication Commands::
-* Miscellaneous Commands::
-
-Scripting
-
-* Adding New Commands::
-* Hooks::
-* Sending Messages::
-* Misc Scripting Stuff::
-* Scheme Commands::
-* Query Functions::
-
-Hooks
-
-* Creating a Hook::
-* Hook Types::
-
-Hook Types
-
-* Received Message Hooks::
-* Sent Message Hooks::
-* DCC CHAT Hooks::
-* Miscellaneous Hooks::
-
-Sending Messages
-
-* High Level Message Functions::
-* Low Level Message Functions::
-
-Misc. Scripting Stuff
-
-* Scheme Commands::
-* Query Functions::
-
-\1f
-File: bobot++.info,  Node: Introduction,  Next: Configuration,  Prev: Top,  Up: Top
-
-1 Introduction
-**************
-
-Bobot++ is a powerful IRC bot written in C++. It can be used standalone
-as a channel maintenence bot, or extended to do almost anything using
-Scheme scripts.
-
-   FIXME: Fill the intro in more?
-
-\1f
-File: bobot++.info,  Node: Configuration,  Next: Using the Bot,  Prev: Introduction,  Up: Top
-
-2 Configuration
-***************
-
-Bobot++ is easy to configure. See the `examples' directory for an
-example configuration.
-
-   The main configuration file is `bot.conf'. There are several
-auxiliary configuration files (a user list, aliases file, ban list, and
-a script autoexec).
-
-* Menu:
-
-* Configuration File Placement::
-* Configuration Files::
-
-\1f
-File: bobot++.info,  Node: Configuration File Placement,  Next: Configuration Files,  Prev: Configuration,  Up: Configuration
-
-2.1 Configuration File Placement
-================================
-
-Bobot++ will look in `/etc/bobotpp/default/' for its default config if
-none is specified on the command line. Put the configuration files you
-want to be loaded by default in this directory. If you are not root, or
-you want to have your own personal configuration, put it in
-`~/.bobotpp/config/default/'.
-
-\1f
-File: bobot++.info,  Node: Configuration Files,  Prev: Configuration File Placement,  Up: Configuration
-
-2.2 Configuration Files
-=======================
-
-* Menu:
-
-* bot.conf::
-* bot.users::
-* bot.init::
-* bot.autoexec::
-* bot.shit::
-
-\1f
-File: bobot++.info,  Node: bot.conf,  Next: bot.users,  Prev: Configuration Files,  Up: Configuration Files
-
-2.2.1 bot.conf
---------------
-
-`bot.conf' contains key value pairs separated by `='.
-
-   `<key> = <value>'
-
-   Comments are started with a `#' and cause the entire line to be
-ignored. _Note that this only works when the `#' is the first character
-of the line_.
-
-   bot.conf is the main configuration file for a Bobot++. The available
-configuration variables are listed below in the format "VARIABLE
-<default-value>: description"
-
-   A few of the options have more complex syntax, they are documented in
-their own subsections.
-
-* Menu:
-
-* server syntax::
-* channel syntax::
-
-   * MAXNICKLENGTH <9>: The maximum length a valid nickname may be.
-     This should be set before setting the bot's nickname if it will be
-     more than nine characters long. Most IRC servers support nicknames
-     longer than nine characters, but Bobot++ still follows the old spec
-     and defaults to nine.
-
-   * NICKNAME <Bobot>: The nickname of the bot (NICK is an alias for
-     NICKNAME)
-
-   * USERNAME <bobot>: The IRC username of the bot
-
-   * CMDCHAR <!>: The character that prefixes commands given to the bot
-     (COMMAND is an alias for CMDCHAR)
-
-   * IRCNAME <I'm a bobot++!>: The IRC name (or 'real name') of the bot
-     (REALNAME is an alias for IRCNAME)
-
-   * USERLIST <bot.users>: Name of the file where the userlist is stored
-
-   * AUTOEXECFILE <bot.autoexec>: Name of the file containing Scheme
-     code to be executed when the bot starts (only used if the bot is
-     compiled with scripting support)
-
-   * INITFILE <bot.init>: Name of the file containing the default
-     command aliases
-
-   * SHITLIST <bot.shit>: Name of the file where the shitlist (ban
-     list) is stored
-
-   * LOGFILE <$LOGDIR/bot.log>: Location of the bot logfile (set this
-     to `/dev/null' to disable logging).
-
-   * SERVER <None>: This specifies the server to which the bot will
-     connect. Note that this has a special syntax *note server syntax::.
-
-   * CHANNEL <None>: This specifies the channels the bot will join when
-     it starts up. This has a special syntax *note channel syntax::.
-
-
-\1f
-File: bobot++.info,  Node: server syntax,  Next: channel syntax,  Prev: bot.conf,  Up: bot.conf
-
-2.2.1.1 server syntax
-.....................
-
-The server syntax in `bot.conf' allows you to specify an alternate port
-to connect on, and a password to send the server.
-
-   You may use more than one server line; Bobot++ will attempt to
-connect to the first one, and will connect to the next one in the list
-if it fails. The bot will continue cycling through the server list
-until it is able to connect to one. There is a command (`!cycle') to
-make the bot to cycle servers.
-
-   SERVER = SERVER_NAME [PORT [PASSWORD]]
-
-   This will make Bobot++ attempt to connect to SERVER_NAME on port
-PORT with the password PASSWORD. SERVER_NAME should be the address of
-the server. PORT and PASSWORD are optional.
-
-\1f
-File: bobot++.info,  Node: channel syntax,  Prev: server syntax,  Up: bot.conf
-
-2.2.1.2 channel syntax
-......................
-
-The channel syntax in `bot.conf' allows you to specify the initial
-modes the bot should set on a channel, the modes the bot should
-maintain, and a key if the channel needs it.
-
-   You may have any number of channel lines. When Bobot++ starts it will
-attempt to join and gain operator status in every channel listed.
-
-   CHANNEL = NAME:INITIAL_MODES:MODES_TO_KEEP:CHANNEL_KEY
-
-   The bot will join NAME and set the channel modes to INITIAL_MODES
-(e.g. "nt") if it is able to gain operator status. It will then
-maintain MODES_TO_KEEP. If the channel requires a key to enter simply
-set CHANNEL_KEY. Every argument except for NAME is optional.
-
-   A few example lines:
-
-     CHANNEL = #foo:nt:nt:bar
-
-   The bot will join `#foo' with the channel key `bar' and will then
-maintain the modes `nt'.
-
-     CHANNEL = #bar:::
-
-   The bot will join `#bar' and will not set any modes nor will it
-attempt to maintain any modes.
-
-\1f
-File: bobot++.info,  Node: bot.users,  Next: bot.init,  Prev: bot.conf,  Up: Configuration Files
-
-2.2.2 bot.users (User List)
----------------------------
-
-`bot.users' is the default file name of the userlist. It may be changed
-in `bot.conf' via the USERLIST option. *You must add an entry for
-yourself manually.* You will probably want to add other entries using
-the IRC command interface as it is more intuitive than editing the file
-by hand.
-
-   The file contains lines with the format:
-
-   `HOST_MASK:CHANNEL_MASK:LEVEL:PROTECTION:AUTO-OP:EXPIRATION:PASSWORD'
-
-   * HOST_MASK is the host mask (e.g. `*!*username
-     .domain.com') of the user
-
-   * CHANNEL_MASK is a channel mask of the channels that the user has
-     priviliges to use the bot in (e.g. `*' for all channels, `#*' for
-     all non-local channel, `#foo*' for all channels starting with
-     "foo," `#bar' for channel "#bar" only, etc.)
-
-   * LEVEL is the user level of the user (*Note User Levels::).
-
-   * PROTECTION is the protection level of the user (*Note
-     Protection::).
-
-   * AUTO-OP is set to control whether a user is automatically given
-     operator priviliges on channel entry (*Note Automatic Op::).
-
-   * EXPIRATION is the UNIX timestamp of when the user entry becomes
-     invalid. Setting this to -1 will make the entry permanent.
-
-   * PASSWORD is the password the user must supply to the bot to
-     authenticate. This can be set to `*NONE*' to not have a password.
-
-
-\1f
-File: bobot++.info,  Node: bot.init,  Next: bot.autoexec,  Prev: bot.users,  Up: Configuration Files
-
-2.2.3 bot.init (Command Aliases)
---------------------------------
-
-This file stores a list of IRC command aliases. The filename may be
-changed in `bot.conf' via the INITFILE option. You use this file to set
-up aliases for IRC commands, e.g. to make `!a' call `!adduser'. This
-way you can save typing for commonly used commands.
-
-   The format of a line in the file is: ALIAS COMMAND
-
-   This will make ALIAS call COMMAND. e.g. `t topic' will make `!t New
-Topic' set the current channel's topic to "New Topic," just as if you
-had used `!topic New Topic'.
-
-\1f
-File: bobot++.info,  Node: bot.autoexec,  Next: bot.shit,  Prev: bot.init,  Up: Configuration Files
-
-2.2.4 bot.autoexec (Scheme Init File)
--------------------------------------
-
-This file is only used when Bobot++ is compiled with scripting support.
-The name of the autoexec file can be changed in `bot.conf' via the
-AUTOEXECFILE option.
-
-   The contents of this file are evaluated by Guile when the bot
-starts. You can use this to do things like loading a few default
-modules when the bot starts.
-
-\1f
-File: bobot++.info,  Node: bot.shit,  Prev: bot.autoexec,  Up: Configuration Files
-
-2.2.5 bot.shit (Ban/Shit List)
-------------------------------
-
-This file stores the ban list. The name may be changed in `bot.conf'
-via the SHITLIST option. You will most likely want to use the IRC
-command interface to edit this file instead of editing it directly.
-
-   The file contains lines in the form:
-
-   `HOST_MASK:CHANNEL_MASK:LEVEL:EXPIRATION:REASON'
-
-   * HOST_MASK is the host mask (e.g. `*!*username
-     .domain.com') of the user
-
-   * CHANNEL_MASK is a channel mask of the channels that the user is
-     banned on (e.g. `*' for all channels, `#*' for all non-local
-     channel, `#foo*' for all channels starting with "foo," `#bar' for
-     channel "#bar" only, etc.
-
-   * LEVEL is a number specifying if the bot should not allow the user
-     to gain ops, to kick the user upon joining, or to prevent the user
-     from being debanned by other users. *Note Shit Levels:: for
-     information on the available levels.
-
-   * EXPIRATION is the UNIX timestamp of when the shit entry becomes
-     invalid. This may be set to -1 to make it valid forever.
-
-   * REASON is text that is sent to the user when they are kicked or
-     banned from the channel.
-
-
-\1f
-File: bobot++.info,  Node: Using the Bot,  Next: Scripting,  Prev: Configuration,  Up: Top
-
-3 Using Bobot++
-***************
-
-Using Bobot++ is easy. This chapter covers starting the bot, a few
-Bobot++ specific concepts, and using the built-in commands of the bot.
-
-* Menu:
-
-* Starting the Bot::
-* Concepts::
-* Built-In Commands::
-
-\1f
-File: bobot++.info,  Node: Starting the Bot,  Next: Concepts,  Prev: Using the Bot,  Up: Using the Bot
-
-3.1 Starting the Bot
-====================
-
-The bot is usually installed with the binary name `bobotpp'. It accepts
-the following command line arguments.
-
-   * `[--help][-h]' - Shows detailed help and exits
-
-   * `[--version][-v]' - Shows version information and exits
-
-   * `[--no-background][-b]' - Run bobot++ in the foreground
-
-   * `[--config-file file][-f]' - Use file instead of `bot.conf'
-
-   * `[--config-dir dir][-d]' - Use dir as dir to load config file from
-
-   * `[--config dir][-c]' - Search your config path (defaults to
-     `$HOME/.bobotpp/config/' and then `/etc/bobotpp/') for dir and
-     then loads your config data using dir
-
-   * `[--sys-config dir][-s]' - Looks for config in `/etc/bobotpp/dir'.
-     Note that the user dir is still searched first
-
-   * `[--user-config dir][-u]' - Looks for config in
-     `$HOME/.bobotpp/config/dir/'. Note that the system dir is still
-     searched after this if dir is not found.
-
-   * `[--debug][-D]' Makes Bobot++ print debugging info and run in the
-     foreground
-
-   * `[--debug-scripts][-S]' Enables the Guile debugging evaluator for
-     verbose script errors and backtraces while still running the bot
-     in the background.
-
-   The default configuration is read from
-`$HOME/.bobotpp/config/default/' and then `/etc/bobotpp/default/' if
-the user config is not found.
-
-   The bot defaults to running in the background as a daemon.
-
-\1f
-File: bobot++.info,  Node: Concepts,  Next: Built-In Commands,  Prev: Starting the Bot,  Up: Using the Bot
-
-3.2 Concepts
-============
-
-There are a few general concepts that a user of Bobot++ should know
-about.
-
-* Menu:
-
-* User List::
-* Shit List::
-* Spy List::
-* Levels::
-
-\1f
-File: bobot++.info,  Node: User List,  Next: Shit List,  Prev: Concepts,  Up: Concepts
-
-3.2.1 User List
----------------
-
-\1f
-File: bobot++.info,  Node: Shit List,  Next: Spy List,  Prev: User List,  Up: Concepts
-
-3.2.2 Shit List
----------------
-
-\1f
-File: bobot++.info,  Node: Spy List,  Next: Levels,  Prev: Shit List,  Up: Concepts
-
-3.2.3 Spy List
---------------
-
-\1f
-File: bobot++.info,  Node: Levels,  Prev: Spy List,  Up: Concepts
-
-3.2.4 Levels
-------------
-
-* Menu:
-
-* User Levels::
-* Protection::
-* Automatic Op::
-* Shit Levels::
-
-\1f
-File: bobot++.info,  Node: User Levels,  Next: Protection,  Prev: Levels,  Up: Levels
-
-3.2.4.1 User Levels
-...................
-
-There are several user levels available in Bobot++ to provide gradated
-access to commands. `!adduser' and `bot.users' use the numeric code;
-Scheme uses the textual name for the level. By default (if the user is
-not found in the userlist) a user has access to commands with the level
-`bot:user-none'.
-
-  0. `bot:user-none' - No *built-in* commands may be executed _by
-     default_ (commands may be added from Scheme that can be executed
-     by users of level none and the level required to execute a command
-     may be changed from Scheme).
-
-  1. `bot:user-user' - Will be able to execute most commands but not
-     all and cannot use masks on kicks and bans.
-
-  2. `bot:user-trusted' - For built-ins with a default configuration
-     this user has access to the same set of commands as an `user' but
-     may use masks on kicks and bans. Scheme commands may be added
-     which require a user to be of this level.
-
-  3. `bot:user-friend' - In the default configuration a user who is a
-     friend will be able to do everything short of stopping the bot.
-     Again, there may be user added commands that require a higher user
-     level.
-
-  4. `bot:user-master' - This is the highest user level and has access
-     to every feature of the bot.
-
-
-\1f
-File: bobot++.info,  Node: Protection,  Next: Automatic Op,  Prev: User Levels,  Up: Levels
-
-3.2.4.2 Protection
-..................
-
-A user added via Scheme, the `bot.users' file, or `!adduser' may be
-protected from being deoped, kicked, or banned. The user list and IRC
-commands use the numeric codes, Scheme uses the symbolic names.
-
-  0. `bot:protection/none' No protection
-
-  1. `bot:protection/no-ban' No ban. If a user is banned the bot will
-     unban him..
-
-  2. `bot:protection/no-kick' No kick. The user may still be kicked but
-     the bot will kickban the user who kicked the protected user.
-
-  3. `bot:protection/no-deop' No deop. The bot will ensure that the
-     user always maintains operator status.
-
-\1f
-File: bobot++.info,  Node: Automatic Op,  Next: Shit Levels,  Prev: Protection,  Up: Levels
-
-3.2.4.3 Automatic Op
-....................
-
-A user may be automatically given operator status upon entering a
-channel. Scheme uses the symbolic name, the user list (`bot.users') and
-IRC commands use the numeric value.
-
-  0. `bot:aop/no' Do not automatically op the user
-
-  1. `bot:aop/yes' Do automatically op the user
-
-\1f
-File: bobot++.info,  Node: Shit Levels,  Prev: Automatic Op,  Up: Levels
-
-3.2.4.4 Shit Levels
-...................
-
-The shit list and shit list related commands use different levels to
-define how much the bot hates a user. Scheme uses the symbolic names,
-the shit list and IRC commands use the numbers.
-
-  0. `bot:shit/none' The bot doesn't hate the user (this is the normal
-     level)
-
-  1. `bot:shit/no-op' The bot will deop the user any time he gains
-     operator priviliges in the channel
-
-  2. `bot:shit/no-join' The bot will kick and ban the user when he
-     joins the channel
-
-  3. `bot:shit/no-deban' The bot will kick and ban usre when he joins
-     the channel, and will prevent other users from debanning him.
-
-\1f
-File: bobot++.info,  Node: Built-In Commands,  Prev: Concepts,  Up: Using the Bot
-
-3.3 Built-In Commands
-=====================
-
-Bobot++ has many built-in commands that make it useful without
-scripting support. The reference leaves off the command char; remember
-to use whatever you defined the command char to be in `bot.conf'.
-
-   If a command needs the channel name then you must specify the channel
-as the first argument to the command when private messaging the bot a
-command. If, however, you are using the command in a channel you may
-omit the channel argument, and the bot will use the current channel.
-
-* Menu:
-
-* Bot Control Commands::
-* Message Commands::
-* Channel Control::
-* Spylist Commands::
-* User List Commands::
-* Server List Commands::
-* Shit List Commands::
-* Channel Info::
-* Scripting Commands::
-* Authentication Commands::
-* Miscellaneous Commands::
-
-\1f
-File: bobot++.info,  Node: Bot Control Commands,  Next: Message Commands,  Prev: Built-In Commands,  Up: Built-In Commands
-
-3.3.1 Bot Control Commands
---------------------------
-
-These commands are used to control the behaviour of the bot.
-
- -- Command: cycle channel
-     Makes the bot leave and join CHANNEL.
-
- -- Command: die
-     Makes the bot stop immediately.
-
- -- Command: join channel
-     Makes the bot join CHANNEL.
-
- -- Command: nick newnick
-     Makes the bot use nickname NEW-NICK.
-
- -- Command: setfloodrate messages-per-second
-     Sets the flood rate to MESSAGES-PER-SECOND.  The bot will consider
-     users sending more than MESSAGES-PER-SECOND messges in a second to
-     be flooding and will ignore them.
-
- -- Command: setversion version-info
-     Sets the string returned when someone requestions the version info
-     of the bot.
-
-\1f
-File: bobot++.info,  Node: Message Commands,  Next: Channel Control,  Prev: Bot Control Commands,  Up: Built-In Commands
-
-3.3.2 Message Commands
-----------------------
-
-These commands cause the bot to send messages (e.g. sending a message
-to a channel or performing an action). For all commands TARGET may be
-either a user or a channel.
-
- -- Command: action target do
-     Makes the bot to perform the action DO in a message sent to TARGET.
-
- -- Command: do command
-     Sends a raw irc command. COMMAND is the IRC command you wish to
-     send (e.g. `PRIVMSG #foo Hello!').
-
- -- Command: msg target message
- -- Command: say target message
-     Makes the bot say MESSAGE to TARGET.
-
-\1f
-File: bobot++.info,  Node: Channel Control,  Next: Spylist Commands,  Prev: Message Commands,  Up: Built-In Commands
-
-3.3.3 Channel Control
----------------------
-
- -- Command: ban channel mask
-     Bans MASK from CHANNEL. You must be a trusted user to ban using a
-     host mask, but a normal user may ban individual nicks.
-
- -- Command: deban channel mask
-     Debans MASK from CHANNEL. You must be a trusted user to deban with
-     a MASK.
-
- -- Command: deop channel mask
-     Deops MASK on CHANNEL.
-
- -- Command: invite nick channel
-     Invites NICK to CHANNEL.
-
- -- Command: keep channel modes
-     Sets the MODES that the bot will keep for CHANNEL.
-
- -- Command: kick channel mask reason
- -- Command: kickban channel mask reason
-     Kicks MASK out of CHANNEL, because of REASON. `kickban' also bans
-     MASK.You must be a trusted user to use a mask.
-
- -- Command: lock channel
-     Locks topic on CHANNEL
-
- -- Command: mode channel modes
-     Sets mode of CHANNEL to the mode string MODES.
-
- -- Command: op channel nick
-     Ops NICK on CHANNEL
-
- -- Command: part channel
-     Makes the bot leave CHANNEL.
-
- -- Command: tban channel mask time
- -- Command: tkban channel mask time
-     Bans MASK from CHANNEL for TIME seconds. `tkban' also kicks the
-     user. You must be a trusted user to use a mask.
-
- -- Command: topic channel [topic]
-     Sets the topic in CHANNEL to TOPIC. If TOPIC is not supplied the
-     current topic is sent as a notice to the user calling the command.
-
- -- Command: unlock channel
-     Unlocks the topic on CHANNEL
-
-\1f
-File: bobot++.info,  Node: Spylist Commands,  Next: User List Commands,  Prev: Channel Control,  Up: Built-In Commands
-
-3.3.4 Spylist Commands
-----------------------
-
-   * `spylist'    Shows the bot's spylist.
-
-   * `spymessage'    Adds you to the spylist
-
-   * `rspymessage'    Removes you from the spy list.
-
-
-\1f
-File: bobot++.info,  Node: User List Commands,  Next: Server List Commands,  Prev: Spylist Commands,  Up: Built-In Commands
-
-3.3.5 User List Commands
-------------------------
-
- -- Command: adduser mask
-     Adds the user
-
-   `deluser'    Removes NICK or MASK from the userlist.
-
- -- Command: save
-     Saves the userlist.
-
-   `userlist'    Shows the bot's userlist
-
-\1f
-File: bobot++.info,  Node: Server List Commands,  Next: Shit List Commands,  Prev: User List Commands,  Up: Built-In Commands
-
-3.3.6 Server List Commands
---------------------------
-
-   * `addserver'    Adds the server specified by HOST NAME or IP
-     ADDRESS to the server list.
-
-   * `delserver'    Deletes server from server list whose number in the
-     server list is SERVER NUMBER.
-
-   * `nextserver'    Makes the bot connect to the next server in its
-     server list.
-
-   * `reconnect'    Makes the bot reconnect to its current server.
-
-   * `server'    Select the server to connect to. SERVER NUMBER is the
-     number of the server in the serverlist.
-
-   * `serverlist'    Shows the bot's serverlist.
-
-
-\1f
-File: bobot++.info,  Node: Shit List Commands,  Next: Channel Info,  Prev: Server List Commands,  Up: Built-In Commands
-
-3.3.7 Shit List Commands
-------------------------
-
-   * `addshit'
-
-   * `delshit'    Removes NICK or MASK from the shitlist
-
-   * `shitlist'    Shows the bot's shitlist.
-
-
-\1f
-File: bobot++.info,  Node: Channel Info,  Next: Scripting Commands,  Prev: Shit List Commands,  Up: Built-In Commands
-
-3.3.8 Channel Info
-------------------
-
-   * `banlist'
-
-   * `channels'    Prints the channel(s) where the bot is currently.
-
-   * `names'  Yes   Shows the nicknames and status of users on CHANNEL.
-
-   * `stats'  Yes   Gives CHANNEL's statistics.
-
-\1f
-File: bobot++.info,  Node: Scripting Commands,  Next: Authentication Commands,  Prev: Channel Info,  Up: Built-In Commands
-
-3.3.9 Scripting Commands
-------------------------
-
-   * `execute'    *Only available if scripting support is enabled*
-
-   * `load'    Reloads the userlist from disk.
-
-   * `loadscript'    *Only available if scripting support is enabled*
-
-
-\1f
-File: bobot++.info,  Node: Authentication Commands,  Next: Miscellaneous Commands,  Prev: Scripting Commands,  Up: Built-In Commands
-
-3.3.10 Authentication Commands
-------------------------------
-
-   * `ident'    Identifies you on the bot. Note that you should not use
-     this command in public ...
-
-   * `password'    Changes your password on the bot. Use `NONE' as
-     password if you want to clear it. Do not use this command in
-     public!
-
-
-\1f
-File: bobot++.info,  Node: Miscellaneous Commands,  Prev: Authentication Commands,  Up: Built-In Commands
-
-3.3.11 Miscellaneous Commands
------------------------------
-
-   * `alias'    Makes an alias, and adds the function NEW NAME, that
-     will do exactly the same command as OLD NAME.
-
-   * `dcclist'    Gives the list of all DCC Chat connections.
-
-   * `help'
-
-   * `nslookup'    Does a nameserver query about NICK host, HOST or IP
-     ADDRESS.
-
-   * `who'  Yes   Show your level on CHANNEL
-
-   * `whois'  Yes   Shows information about NICK on CHANNEL
-
-
-\1f
-File: bobot++.info,  Node: Scripting,  Next: Concept Index,  Prev: Using the Bot,  Up: Top
-
-4 Scripting
-***********
-
-Bobot++'s most powerful feature is its scripting system. You write
-scripts using Guile Scheme. This manual does not cover how to use Guile
-or how to learn Scheme. *Note Guile Reference Manual: (guile)Top, for
-the Guile reference manual and
-`http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html' for a
-good tutorial on Scheme.
-
-   Note that in previous versions the scripting commands where in the
-form `bot-FUNCTION'. They are now in the form `bot:FUNCTION'. The old
-names are still available, but are deprecated and will be removed in
-Bobot++ 3.0. New commands are only available with the `bot:' prefix.
-The command `perl -pi -e ``s/bot-/bot:/g'' YOUR-FILES' should be enough
-to convert your code to use the new functions.
-
-   *NOTE*: All arguments to functions and hooks called by the bot are
-strings unless otherwise specified.
-
-* Menu:
-
-* Adding New Commands::
-* Hooks::
-* Sending Messages::
-* Misc Scripting Stuff::
-* Scheme Commands::
-* Query Functions::
-
-\1f
-File: bobot++.info,  Node: Adding New Commands,  Next: Hooks,  Prev: Scripting,  Up: Scripting
-
-4.1 Adding New Commands
-=======================
-
-Adding a new command is simple. To register a new command use
-`bot:addcommand'.
-
- -- Function: bot:addcommand name func needs-channel? num-of-args
-          min-level
-     The NAME is a string representing the name of the command being
-     added.  FUNC is a function accepting NUM-OF-ARGS arguments.
-     NEEDS-CHANNEL? is a bool that is true if the function needs the
-     channel name as its first arg, and false otherwise.  NUM-OF-ARGS
-     is the number of args FUNC will take and must be within zero (0)
-     and twenty (20).  MIN-LEVEL is one of the *Note User Levels::.  A
-     user must be at least a MIN-LEVEL user to use the new command.
-     None of the arguments are guaranteed to be passed; if they aren't
-     they are set to the empty string `""'.  An example of a new
-     command would be:
-
-          (define (hello channel name)
-            (if (string=? name "")
-              (bot:say channel "Hello world!")
-              (bot:say channel (string-append "Hello " name "!")))
-
-          (bot:addcommand "hello" hello #t 2 0)
-
-     This will display "Hello World!" if called as `!hello' and "Hello
-     World USER" if called as `!hello USER'.
-
-\1f
-File: bobot++.info,  Node: Hooks,  Next: Sending Messages,  Prev: Adding New Commands,  Up: Scripting
-
-4.2 Hooks
-=========
-
-Hooks are a powerful feature of Bobot++. Hooks are a hybrid of ircII
-and tiny fugue (a MUD bot) hooks with a little bit of extra stuff added
-in. A hook is called when a regular expression is matched against a
-message sent to or by the bot.
-
-   Bobot++ uses different hook types for each IRC message type, and also
-includes a hook for accessing raw irc messages. Hooks are tagged with a
-priority and a flag that specifies whether to call the next hook that
-matches after calling the current one or to stop processing.
-
-   Hooks are processed from the highest to lowest priority, with
-fallthrough hooks of equal priority to non-fallthrough hooks being
-executed first.
-
-* Menu:
-
-* Creating a Hook::
-* Hook Types::
-
-\1f
-File: bobot++.info,  Node: Creating a Hook,  Next: Hook Types,  Prev: Hooks,  Up: Hooks
-
-4.2.1 Creating a Hook
----------------------
-
-To add a new hook you use the function `bot:addhook'.
-
- -- Function: bot:addhook type regex function [pri fall name]
-     TYPE specifies the type of hook (the types of hooks are listed in
-     *Note Hook Types::).
-
-     REGEX is a standard regular expression. If REGEX is matched,
-     FUNCTION will be called.
-
-     FUNCTION will take a different number of args depending on the
-     hook type.
-
-     PRI specifies the priority of the hook--higher priority hooks are
-     executed first. This argument is optional and defaults to `0'.
-
-     FALL is `#t' if the hook is a fallthrough hook and `#f' is the
-     hook is not a fallthrough hook. This arg is also optional and
-     defaults to `#t'.
-
-     NAME is the optional name of the hook that defaults to
-     `"DEFAULT"'. If you set the name then you can have more than one
-     hook that matches the same regexp, as long as they have the same
-     name. E.g. in a log script you could have the regexps for the log
-     function all be `".*"' and set their names to `"log"' to avoid a
-     conflict with other hooks.
-
-\1f
-File: bobot++.info,  Node: Hook Types,  Prev: Creating a Hook,  Up: Hooks
-
-4.2.2 Hook Types
-----------------
-
-The following sections document the different hooks Bobot++ exposes.
-
-   The general format of each hook description is as if it were a
-function to be defined, but these describe the function to be passed to
-`bot:add-hook'.  Do _not_ name your functions these names.
-
-   That said, here is the list of available hooks functions.  FIXME:
-write docs
-
-* Menu:
-
-* Received Message Hooks::
-* Sent Message Hooks::
-* DCC CHAT Hooks::
-* Miscellaneous Hooks::
-
-\1f
-File: bobot++.info,  Node: Received Message Hooks,  Next: Sent Message Hooks,  Prev: Hook Types,  Up: Hook Types
-
-4.2.2.1 Receieved Message Hooks
-...............................
-
-The following hooks are triggered when a mesage is received by the bot.
-
- -- Function: hooks/action from to action
-     This hook is triggered when someone performs an action.
-
-     FROM is the nickname the person that performed the action.
-
-     TO is the target of the action, which is either a channel or the
-     Bot's nick if the user private messages the bot.
-
-     ACTION is the text of the action. E.g. if someone did `* foobar
-     does baz', then ACTION would be the string `"does baz"'.
-
- -- Function: hooks/nickname old-nick new-nick
-     This hook is called when someone changes his nickname from
-     OLD-NICK to NEW-NICK.
-
- -- Function: hooks/signoff nick message
-     This hook is called when someone signs off of IRC.
-
-     NICK is the nickname of the person signing off.
-
-     MESSAGE is his quit message
-
- -- Function: hooks/ctcp nick to command rest
-     This hook is called when a CTCP request is received by the bot.
-
-     NICK is the nickname of the sender.
-
-     TO is the target of the CTCP request. This will either be a
-     channel the bot is in, or the nickname of the bot.
-
-     COMMAND is the CTCP command issued.
-
-     REST contains the arguments to the CTCP command.
-
- -- Function: hooks/ctcp-reply nick command rest
-     This hook is called when a CTCP REPLY is received. This occurs when
-     the bot has sent a CTCP request to another client. The CTCP REPLY
-     is always addressed to the bot directly.
-
-     NICK is the nickname of the person who replied.
-
-     COMMAND is the command to which NICK is replying.
-
-     REST contains the body of the reply.
-
- -- Function: hooks/disconnect server intentional
-     This is called when the bot is disconnected from a server.
-
-     SERVER is the hostname of the server from which the bot was
-     disconnected.
-
-     INTENTIONAL is a flag set to `#t' when the bot disonnected from
-     the server as the result of a command (issued by a user from IRC,
-     SIGHUP, or from a script), or `#f' when the bot disconnected from
-     the server unintentionally..
-
- -- Function: hooks/invite nick channel
-     This hook is called when a user invited the bot to join a channel.
-
-     NICK is the nickname of the user who sent the invite.
-
-     CHANNEL is the channel to which the bot was invited.
-
- -- Function: hooks/join nick channel
-     This is called when a user or the bot joins a channel.
-
-     NICK is the nickname of the user who joined CHANNEL. This may be
-     the bot's nickname (the IRC server sends the JOIN command back to
-     the the bot after it joins a channel).
-
-     CHANNEL is the channel that was joined
-
- -- Function: hooks/kick target from channel reason
-     This hook is called when a user, including the bot, is kicked out
-     of a channel.
-
-     TARGET is the nick of the user who was kicked. This may be the
-     bot's nick.
-
-     FROM is the nick of the user who issued the kick. This may also be
-     the bot's nick.
-
-     CHANNEL is the channel the kick was issued in.
-
-     REASON is the reason the user was kicked.
-
- -- Function: hooks/part nick channel
-     This hook is called when a user parts a channel.
-
-     NICK is the user who parted the channel. This may be the bot.
-
-     CHANNEL is the channel from which the user parted.
-
- -- Function: hooks/mode nick target modes
-     This hook is called when someone sets the modes of TARGET.
-
-     NICK is the user who set the modes. This may be the bot.
-
-     TARGET is the target of the MODE command. This may be a channel or
-     a user. If it is a user, it may be the bot.
-
-     MODES is the MODE string.
-
- -- Function: hooks/message nick message
-     This hook is called when someone sends a private message to the
-     bot.
-
-     NICK is the nickname of the user who sent the message.
-
-     MESSAGE is the message the user sent.
-
- -- Function: hooks/notice nick message
-     This hook is called when a user send a private notice to the bot.
-
-     NICK is the user who sent the notice.
-
-     MESSAGE is the message the user sent.
-
- -- Function: hooks/public nick channel message
-     This hook is called when a user sends a normal message to a
-     channel.
-
-     NICK is the user who sent the message.
-
-     CHANNEL is the channel to which the message was sent.
-
-     MESSAGE is the message that was sent.
-
- -- Function: hooks/public-notice nick channel message
-     This hook is called when a user send a notice to a channel.
-
-     NICK is the user who sent the notice.
-
-     CHANNEL is the channel to which the notice was sent.
-
-     MESSAGE is the message that was sent.
-
- -- Function: hooks/raw raw-message
-     This hook is called every time a message is received. This matches
-     on the raw message text and passes the hook function the raw IRC
-     message.
-
-     RAW-MESSAGE is the raw IRC message.
-
- -- Function: hooks/topic nick channel new-topic
-     This hook is called when a user changes the topic in a channel.
-
-     NICK is the user who set the topic. This may be the bot.
-
-     CHANNEL is the channel that's topic was changed.
-
-     NEW-TOPIC is the new topic.
-
-\1f
-File: bobot++.info,  Node: Sent Message Hooks,  Next: DCC CHAT Hooks,  Prev: Received Message Hooks,  Up: Hook Types
-
-4.2.2.2 Sent Message Hooks
-..........................
-
-These hooks are called when the bot sends a message. MYNICK is always
-the bot's nick and will not be documented in each hook description.
-
- -- Function: hooks/send/public mynick channel message
-     This hook is called when the bot sends a normal message to a
-     channel.
-
-     CHANNEL is the channel to which the bot sent the message.
-
-     MESSAGE is the message the bot sent.
-
- -- Function: hooks/send/message mynick to message
-     This hook is called when the bot sends a private message to a user.
-
-     TO is the nick of the user to whom the message was sent.
-
-     MESSAGE is the message that was sent.
-
- -- Function: hooks/send/action mynick to message
-     This hook is called when the bot sents an action to a channel or a
-     user.
-
-     TO is the channel or nick of the user to which the action was sent.
-
-     MESSAGE is the text of the action.
-
- -- Function: hooks/send/ctcp mynick to command message
-     This hook is called when the bot sends a CTCP message _other than_
-     an ACTION to a channel or user.
-
-     TO is the channel or nick of the user to which the CTCP was sent.
-
-     COMMAND is the CTCP command that was sent.
-
-     MESSAGE is a string containing the arguments to the CTCP command.
-
- -- Function: hooks/send/who who
-     This is called when the bot sends a WHO message. The regex is
-     matched on WHO, which is also passed as the only argument to your
-     function.
-
-     WHO is the channel or nick that was WHOed.
-
- -- Function: hooks/send/whois nick
-     This is called when the bot sends a WHOIS message. The regex is
-     matched on NICK, which is also passed as the only argument to your
-     function.
-
-     NICK is the nickname of the person who was WHOISed.
-
-\1f
-File: bobot++.info,  Node: DCC CHAT Hooks,  Next: Miscellaneous Hooks,  Prev: Sent Message Hooks,  Up: Hook Types
-
-4.2.2.3 DCC CHAT Hooks
-......................
-
-These hooks are called when a user initializes a DCC CHAT and when the
-bot receives messages from the user in a DCC CHAT.
-
- -- Function: hooks/dcc/chat-begin from
-     This hook is called when a user begins a DCC CHAT with the bot.
-     FROM is the user's address in the form `nick!user@host'.
-
- -- Function: hooks/dcc/chat-end address
-     This hook is called when a DCC CHAT is purged after being idle for
-     a while, or when the user closes the DCC CHAT. As such, you cannot
-     write any more data to the DCC CHAT.
-
-     ADDRESS is the address (nick!user@host) of the person on the other
-     side of the DCC.
-
- -- Function: hooks/dcc/chat-message from message
-     This hook is called when a user sends a message to the bot through
-     a DCC CHAT.
-
-     FROM is the user's address in the form `nick!user@host'.
-
-     MESSAGE is the message the user sent to the bot.
-
-\1f
-File: bobot++.info,  Node: Miscellaneous Hooks,  Prev: DCC CHAT Hooks,  Up: Hook Types
-
-4.2.2.4 Miscellaneous Hooks
-...........................
-
- -- Function: hooks/flood nick
-     This hook is called when a user is detected flooding the bot.
-
-     NICK is the nickname of the user flooding the bot.
-
- -- Function: hooks/timer time
-     This hook is called once a minute. The regex is *not* used.
-
-     TIME is the in zero-padded `hh:mm' format.
-
-\1f
-File: bobot++.info,  Node: Sending Messages,  Next: Misc Scripting Stuff,  Prev: Hooks,  Up: Scripting
-
-4.3 Sending Messages
-====================
-
-There are several types of messages you can send with Bobot++ from
-scripts. They are split into High and Low level message sending
-functions. Most bots will only use the high level functions, but the
-low level ones are provided for when a bot needs to do things like send
-raw IRC messages or CTCP commands.
-
-* Menu:
-
-* High Level Message Functions::
-* Low Level Message Functions::
-
-\1f
-File: bobot++.info,  Node: High Level Message Functions,  Next: Low Level Message Functions,  Prev: Sending Messages,  Up: Sending Messages
-
-4.3.1 "High Level" Message Functions
-------------------------------------
-
- -- Function: bot:action channel message
-     Send an "action" type  MESSAGE to CHANNEL
-
- -- Function: bot:msg target message
- -- Function: bot:say target message
-     Send a public or private message to TARGET.
-
-     TARGET may be a channel or a nickname.
-
-     In versions of Bobot++ prior to 2.1.8 `bot:say' could only send to
-     channels, and `bot:msg' could only send private messages to users.
-     They are aliases of the same command now, but it may be worth
-     using them as they used to for clarity.
-
- -- Function: bot:notice target message
-     Sends MESSAGE as a NOTICE to TARGET. TARGET may be a user (nick)
-     or a channel.
-
-\1f
-File: bobot++.info,  Node: Low Level Message Functions,  Prev: High Level Message Functions,  Up: Sending Messages
-
-4.3.2 "Low Level" Message Functions
------------------------------------
-
-The "Low Level" messaging functions allow you to do things like send
-CTCP messages. You probably want to read rfc 2812 and the CTCP spec
-before using these. If you have no idea what these do, read rfc 2812
-(IRC Client Protocol) and CTCP spec. These functions all return
-`*unspecified*' always, so don't use the return value for anything.
-
- -- Function: bot:ctcp to command message
-     TO is the target of your CTCP message, COMMAND is the CTCP
-     command, and MESSAGE is the message (or arguments) of the command.
-     Make sure to `bot:ctcp-quote' the message!
-
- -- Function: bot:ctcp-reply to command message
-     TO is the target of your CTCP reply, COMMAND is the CTCP command,
-     and MESSAGE is the message (or arguments) of the command. Make
-     sure to `bot:ctcp-quote' the message!
-
-     This is used to reply to a ctcp that the bot has received.
-
-\1f
-File: bobot++.info,  Node: Misc Scripting Stuff,  Next: Scheme Commands,  Prev: Sending Messages,  Up: Scripting
-
-4.4 Misc. Scripting Stuff
-=========================
-
-These are a few useful things that I thought people writing scripts
-might want to know.
-
-   If you want to execute code when the bot exits, just do `add-hook!
-bot:exit-hook THUNK' where THUNK is an argumentless procedure (a
-thunk). When the bot exits your thunk will be called.
-
-* Menu:
-
-* Scheme Commands::
-* Query Functions::
-
-\1f
-File: bobot++.info,  Node: Scheme Commands,  Next: Query Functions,  Prev: Misc Scripting Stuff,  Up: Scripting
-
-4.5 Scheme Commands
-===================
-
-These scheme functions are the same as the commands.  They allow you to
-execute bot commands from scheme scripts.
-
- -- Function: bot:adduser nick-or-mask cbannel-mask level prot auto-op
-     Adds an user to the userlist, for a `nick!user@host' matching the
-     one given, on a channel matching the CHANNELMASK given.
-
-     The LEVEL can be:      The PROT can be:       The AUTO-OP can be:
-     0 - No level           0 - No protection      0 - No auto-op
-     1 - User               1 - No ban             1 - Op on join
-     2 - Trusted User       2 - No kick            
-     3 - Friend             3 - No deop            
-     4 - Master                                    
-
-
- -- Function: bot:addserver hostname ip-address [portnumber]
-     Adds the server specified by HOSTNAME or IP-ADDRESS to the server
-     list.
-
- -- Function: bot:addshit nick-or-mask channel-mask level [time reason]
-     Adds an user to the shitlist, for a nick!user@host matching the
-     one given, on a channel matching the CHANNELMASK given.
-
-          The LEVEL can be:
-            0 - No shit
-            1 - No op
-            2 - Kick and Ban on join
-            3 - Kick and Ban on join, no deban
-
-
- -- Function: bot:ban channel mask-or-nick
-     Bans MASK or NICK from CHANNEL. You must be a trusted user to ban
-     with a MASK.
-
- -- Function: bot:change-command-level nick-or-mask channel-mask
-          new-level
-     Gives NICK or MASK level NEW-LEVEL on channel(s) CHANNEL-MASK.
-     Note that you can not change level for someone whose level is
-     greater than yours, and that you can not give a level greater than
-     yours.
-
- -- Function: bot:cycle channel
-     Makes the bot leave and join CHANNEL.
-
- -- Function: bot:deban channel mask-or-nick
-     Debans MASK or NICK from CHANNEL. You must be a trusted user to
-     deban with a MASK.
-
- -- Function: bot:delserver server-number
-     Deletes server from server list whose number in the server list is
-     SERVER-NUMBER
-
- -- Function: bot:deluser nick-or-mask channel-mask
-     Removes NICK or MASK from the userlist.
-
- -- Function: bot:delshit nick-or-mask channel-mask
-     Removes NICK or MASK from the shitlist.
-
- -- Function: bot:deop channel mask-or-nick
-     Deops MASK or NICK on CHANNEL.
-
- -- Function: bot:die reason
-     Makes the bot stop immediately.
-
- -- Function: bot:do ?
-
- -- Function: bot:invite channel nick
-     Invites NICK on CHANNEL.
-
- -- Function: bot:join channel
-     Makes the bot join CHANNEL.
-
- -- Function: bot:keep channel modes
-     Sets the MODES that the bot will keep for CHANNEL.  See also STATS.
-
- -- Function: bot:kick channel mask-or-nick [reason]
-     Kicks MASK or NICK out of CHANNEL, because of REASON.  You must be
-     a trusted user to use a MASK.
-
- -- Function: bot:kickban channel mask-or-nick [reason]
-     Bans then kicks MASK or NICK out of CHANNEL, because of REASON.
-     You must be a trusted user to use a MASK.
-
- -- Function: bot:lock channel
-     Locks topic on CHANNEL.
-
- -- Function: bot:mode channel mode-string
-     Sends MODE-STRING as mode for CHANNEL.
-
- -- Function: bot:nextserver
-     Makes the bot connect to the next server in its server list.
-
- -- Function: bot:nick nick
-     Makes the bot use nickname NICK.
-
- -- Function: bot:op channel nick
-     Ops NICK on CHANNEL.
-
- -- Function: bot:part channel
-     Makes the bot leave CHANNEL.
-
- -- Function: bot:reconnect
-     Makes the bot reconnect to its current server.
-
- -- Function: bot:server server-number
-     Select the server to connect to. SERVER-NUMBER is the number of
-     the server in the serverlist.
-
- -- Function: bot:setfloodrate ?
-
- -- Function: bot:setversion ?
-
- -- Function: bot:tban channel nick-or-mask time
-     Bans NICK or MASK from CHANNEL for TIME seconds.
-
- -- Function: bot:tkban channel nick-or-mask time [reason]
-     Bans NICK or MASK from CHANNEL for TIME seconds, then kicks
-     him/them because of REASON.
-
- -- Function: bot:topic channel topic
-     If no TOPIC is given, prints CHANNEL's topic. Otherwise, the bot
-     will change CHANNEL's topic to TOPIC.
-
- -- Function: bot:unlock channel
-     Makes the bot unlock topic on CHANNEL.
-
- -- Function: bot:who target
-     Sends a WHO command to TARGET. TARGET may be either a channel or a
-     user.
-
- -- Function: bot:whois nick
-     Sends a WHOIS command to NICK. NICK *must* be a nickname, you
-     cannot send a WHOIS to a channel.
-
- -- Function: bot:delcommand
-     [ Probably deletes a command added with `bot:addcommand' ? ]
-
-\1f
-File: bobot++.info,  Node: Query Functions,  Prev: Scheme Commands,  Up: Scripting
-
-4.6 Query Functions
-===================
-
-     [ I didn't know where to put any of these, so I just stuck them in
-     here.
-
-     There probably needs to be several sections added, like dealing
-     with users (kicking, added, etc), dealing with the bot (channels,
-     nickname of the bot, etc), server issues (serverlist), useful
-     tools (nslookup, whois), and do on. ]
-
-   These functions allow scripts to get various bits of information.
-
- -- Function: bot:logport
-     [ Probably returns the log port? ]
-
- -- Function: bot:getnickname
-     [ Gets the bot's nickname? ]
-
- -- Function: bot:getserver
-
- -- Function: bot:getserverlist
-
- -- Function: bot:flush
-     [ Flushes the socket to the server? ]
-
- -- Function: bot:flushport
-     [ Flushes the log port? ]
-
- -- Function: bot:random ?
-     [ Returns a random number?  What range?  Why? ]
-
- -- Function: bot:addtimer ? ?
-
- -- Function: bot:deltimer ?
-
- -- Function: bot:dcc-chat-send ? ?
-
-     [ And what about the stuff defined in `bobot-utils.scm' ? I just
-     added it here so it could be somewhere.  There should also be a
-     section dealing with modules.  How to use them.  What module
-     scripts are in.  What module bobot++ provided primites are in.
-     And so on. ]
-
- -- Function: bot:log . messages
-     Write as many MESSAGES as you want to the log.  If the arg is a
-     thunk it will be executed and it's output will be written to the
-     log.
-
- -- Function: bot:load file
-
- -- Function: bot:load-module module-spec
-
- -- Function: bot:use-module module-spec
-
- -- Function: bot:match-not-channel regex
-     `bot:match-not-channel' adds a prefix regex to your REGEX so it
-     doesn't match the sender or channel in a PUBLIC message
-
- -- Function: bot:match-to-me regex
-     `bot:match-to-me' matches text that was addressed to the bot with a
-     ':',  ',',  or nothing after the bot name.
-
- -- Function: bot:sent-to-me? message
-
- -- Function: bot:ctcp-quote message
-     Returns the CTCP quoted message Input _MUST NOT_ contain the
-     trailing `\r\n' (it is added by the message sending code).
-
- -- Variable: %bot:loadpath
-
- -- Function: %bot:load-extensions
-
-\1f
-File: bobot++.info,  Node: Concept Index,  Next: Function Index,  Prev: Scripting,  Up: Top
-
-Concept Index
-*************
-
-\0\b[index\0\b]
-* Menu:
-
-* Background on Hooks:                   Hooks.                 (line 6)
-
-\1f
-File: bobot++.info,  Node: Function Index,  Next: Variable Index,  Prev: Concept Index,  Up: Top
-
-Function Index
-**************
-
-\0\b[index\0\b]
-* Menu:
-
-* %bot:load-extensions:                  Query Functions.     (line  75)
-* action:                                Message Commands.    (line  11)
-* adduser:                               User List Commands.  (line   7)
-* ban:                                   Channel Control.     (line   7)
-* bot:action:                            High Level Message Functions.
-                                                              (line   7)
-* bot:addcommand:                        Adding New Commands. (line  11)
-* bot:addhook:                           Creating a Hook.     (line   9)
-* bot:addserver:                         Scheme Commands.     (line  22)
-* bot:addshit:                           Scheme Commands.     (line  26)
-* bot:addtimer:                          Query Functions.     (line  36)
-* bot:adduser:                           Scheme Commands.     (line  10)
-* bot:ban:                               Scheme Commands.     (line  37)
-* bot:change-command-level:              Scheme Commands.     (line  42)
-* bot:ctcp:                              Low Level Message Functions.
-                                                              (line  13)
-* bot:ctcp-quote:                        Query Functions.     (line  69)
-* bot:ctcp-reply:                        Low Level Message Functions.
-                                                              (line  18)
-* bot:cycle:                             Scheme Commands.     (line  48)
-* bot:dcc-chat-send:                     Query Functions.     (line  40)
-* bot:deban:                             Scheme Commands.     (line  51)
-* bot:delcommand:                        Scheme Commands.     (line 141)
-* bot:delserver:                         Scheme Commands.     (line  55)
-* bot:delshit:                           Scheme Commands.     (line  62)
-* bot:deltimer:                          Query Functions.     (line  38)
-* bot:deluser:                           Scheme Commands.     (line  59)
-* bot:deop:                              Scheme Commands.     (line  65)
-* bot:die:                               Scheme Commands.     (line  68)
-* bot:do:                                Scheme Commands.     (line  71)
-* bot:flush:                             Query Functions.     (line  27)
-* bot:flushport:                         Query Functions.     (line  30)
-* bot:getnickname:                       Query Functions.     (line  20)
-* bot:getserver:                         Query Functions.     (line  23)
-* bot:getserverlist:                     Query Functions.     (line  25)
-* bot:invite:                            Scheme Commands.     (line  73)
-* bot:join:                              Scheme Commands.     (line  76)
-* bot:keep:                              Scheme Commands.     (line  79)
-* bot:kick:                              Scheme Commands.     (line  82)
-* bot:kickban:                           Scheme Commands.     (line  86)
-* bot:load:                              Query Functions.     (line  53)
-* bot:load-module:                       Query Functions.     (line  55)
-* bot:lock:                              Scheme Commands.     (line  90)
-* bot:log:                               Query Functions.     (line  48)
-* bot:logport:                           Query Functions.     (line  17)
-* bot:match-not-channel:                 Query Functions.     (line  59)
-* bot:match-to-me:                       Query Functions.     (line  63)
-* bot:mode:                              Scheme Commands.     (line  93)
-* bot:msg:                               High Level Message Functions.
-                                                              (line  10)
-* bot:nextserver:                        Scheme Commands.     (line  96)
-* bot:nick:                              Scheme Commands.     (line  99)
-* bot:notice:                            High Level Message Functions.
-                                                              (line  21)
-* bot:op:                                Scheme Commands.     (line 102)
-* bot:part:                              Scheme Commands.     (line 105)
-* bot:random:                            Query Functions.     (line  33)
-* bot:reconnect:                         Scheme Commands.     (line 108)
-* bot:say:                               High Level Message Functions.
-                                                              (line  11)
-* bot:sent-to-me?:                       Query Functions.     (line  67)
-* bot:server:                            Scheme Commands.     (line 111)
-* bot:setfloodrate:                      Scheme Commands.     (line 115)
-* bot:setversion:                        Scheme Commands.     (line 117)
-* bot:tban:                              Scheme Commands.     (line 119)
-* bot:tkban:                             Scheme Commands.     (line 122)
-* bot:topic:                             Scheme Commands.     (line 126)
-* bot:unlock:                            Scheme Commands.     (line 130)
-* bot:use-module:                        Query Functions.     (line  57)
-* bot:who:                               Scheme Commands.     (line 133)
-* bot:whois:                             Scheme Commands.     (line 137)
-* cycle:                                 Bot Control Commands.
-                                                              (line   9)
-* deban:                                 Channel Control.     (line  11)
-* deop:                                  Channel Control.     (line  15)
-* die:                                   Bot Control Commands.
-                                                              (line  12)
-* do:                                    Message Commands.    (line  14)
-* hooks/action:                          Received Message Hooks.
-                                                              (line   9)
-* hooks/ctcp:                            Received Message Hooks.
-                                                              (line  31)
-* hooks/ctcp-reply:                      Received Message Hooks.
-                                                              (line  43)
-* hooks/dcc/chat-begin:                  DCC CHAT Hooks.      (line  10)
-* hooks/dcc/chat-end:                    DCC CHAT Hooks.      (line  14)
-* hooks/dcc/chat-message:                DCC CHAT Hooks.      (line  22)
-* hooks/disconnect:                      Received Message Hooks.
-                                                              (line  54)
-* hooks/flood:                           Miscellaneous Hooks. (line   7)
-* hooks/invite:                          Received Message Hooks.
-                                                              (line  65)
-* hooks/join:                            Received Message Hooks.
-                                                              (line  72)
-* hooks/kick:                            Received Message Hooks.
-                                                              (line  81)
-* hooks/message:                         Received Message Hooks.
-                                                              (line 112)
-* hooks/mode:                            Received Message Hooks.
-                                                              (line 102)
-* hooks/nickname:                        Received Message Hooks.
-                                                              (line  20)
-* hooks/notice:                          Received Message Hooks.
-                                                              (line 120)
-* hooks/part:                            Received Message Hooks.
-                                                              (line  95)
-* hooks/public:                          Received Message Hooks.
-                                                              (line 127)
-* hooks/public-notice:                   Received Message Hooks.
-                                                              (line 137)
-* hooks/raw:                             Received Message Hooks.
-                                                              (line 146)
-* hooks/send/action:                     Sent Message Hooks.  (line  25)
-* hooks/send/ctcp:                       Sent Message Hooks.  (line  33)
-* hooks/send/message:                    Sent Message Hooks.  (line  18)
-* hooks/send/public:                     Sent Message Hooks.  (line  10)
-* hooks/send/who:                        Sent Message Hooks.  (line  43)
-* hooks/send/whois:                      Sent Message Hooks.  (line  50)
-* hooks/signoff:                         Received Message Hooks.
-                                                              (line  24)
-* hooks/timer:                           Miscellaneous Hooks. (line  12)
-* hooks/topic:                           Received Message Hooks.
-                                                              (line 153)
-* invite:                                Channel Control.     (line  18)
-* join:                                  Bot Control Commands.
-                                                              (line  15)
-* keep:                                  Channel Control.     (line  21)
-* kick:                                  Channel Control.     (line  24)
-* kickban:                               Channel Control.     (line  25)
-* lock:                                  Channel Control.     (line  29)
-* mode:                                  Channel Control.     (line  32)
-* msg:                                   Message Commands.    (line  18)
-* nick:                                  Bot Control Commands.
-                                                              (line  18)
-* op:                                    Channel Control.     (line  35)
-* part:                                  Channel Control.     (line  38)
-* save:                                  User List Commands.  (line  12)
-* say:                                   Message Commands.    (line  19)
-* setfloodrate:                          Bot Control Commands.
-                                                              (line  21)
-* setversion:                            Bot Control Commands.
-                                                              (line  26)
-* tban:                                  Channel Control.     (line  41)
-* tkban:                                 Channel Control.     (line  42)
-* topic:                                 Channel Control.     (line  46)
-* unlock:                                Channel Control.     (line  50)
-
-\1f
-File: bobot++.info,  Node: Variable Index,  Prev: Function Index,  Up: Top
-
-Variable Index
-**************
-
-\0\b[index\0\b]
-* Menu:
-
-* %bot:loadpath:                         Query Functions.      (line 73)
-* exit-hook:                             Misc Scripting Stuff. (line  9)
-
-
-\1f
-Tag Table:
-Node: Top\7f538
-Node: Introduction\7f2446
-Node: Configuration\7f2758
-Node: Configuration File Placement\7f3202
-Node: Configuration Files\7f3703
-Node: bot.conf\7f3939
-Node: server syntax\7f6125
-Node: channel syntax\7f6923
-Node: bot.users\7f7967
-Node: bot.init\7f9428
-Node: bot.autoexec\7f10087
-Node: bot.shit\7f10588
-Node: Using the Bot\7f11840
-Node: Starting the Bot\7f12172
-Node: Concepts\7f13678
-Node: User List\7f13953
-Node: Shit List\7f14076
-Node: Spy List\7f14199
-Node: Levels\7f14317
-Node: User Levels\7f14487
-Node: Protection\7f15866
-Node: Automatic Op\7f16585
-Node: Shit Levels\7f16999
-Node: Built-In Commands\7f17725
-Node: Bot Control Commands\7f18601
-Node: Message Commands\7f19456
-Node: Channel Control\7f20141
-Node: Spylist Commands\7f21695
-Node: User List Commands\7f22009
-Node: Server List Commands\7f22377
-Node: Shit List Commands\7f23092
-Node: Channel Info\7f23387
-Node: Scripting Commands\7f23755
-Node: Authentication Commands\7f24120
-Node: Miscellaneous Commands\7f24572
-Node: Scripting\7f25133
-Node: Adding New Commands\7f26222
-Node: Hooks\7f27533
-Node: Creating a Hook\7f28371
-Node: Hook Types\7f29577
-Node: Received Message Hooks\7f30141
-Node: Sent Message Hooks\7f35368
-Node: DCC CHAT Hooks\7f37252
-Node: Miscellaneous Hooks\7f38292
-Node: Sending Messages\7f38741
-Node: High Level Message Functions\7f39273
-Node: Low Level Message Functions\7f40136
-Node: Misc Scripting Stuff\7f41189
-Node: Scheme Commands\7f41687
-Node: Query Functions\7f46331
-Node: Concept Index\7f48557
-Node: Function Index\7f48776
-Node: Variable Index\7f59377
-\1f
-End Tag Table