Released v1

This commit is contained in:
2016-04-27 20:28:51 +02:00
commit 980af5458a
74 changed files with 9002 additions and 0 deletions

31
doc/Makefile.in Normal file
View File

@@ -0,0 +1,31 @@
include ../rules
TEXI2PDF = @TEXI2PDF@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
prefix = @prefix@
datarootdir = @datarootdir@
docdir = @docdir@
PDFTARGETDIR = @pdfdir@
top_srcdir = @top_srcdir@
all: $(DOC_OBJECTS)
botcommander.pdf: botcommander.texinfo
$(TEXI2PDF) botcommander.texinfo
clean:
$(RM) $(DOC_OBJECTS)
$(RM) botcommander.aux botcommander.cp botcommander.cps botcommander.fn \
botcommander.ky botcommander.log botcommander.pg botcommander.toc \
botcommander.tp botcommander.vr
distclean: clean
$(RM) Makefile config.status config.cache config.log
install: all
$(top_srcdir)/mkinstalldirs $(PDFTARGETDIR)
$(INSTALL) -m 0644 botcommander.pdf $(PDFTARGETDIR)
.PHONY: all clean distclean install

349
doc/botcommander.texinfo Normal file
View File

@@ -0,0 +1,349 @@
\input texinfo
@c vim:textwidth=80
@c Header
@setfilename botcommander.info
@include version.texinfo
@settitle BotCommander @value{VERSION}
@documentdescription
BotCommander manual for version @value{VERSION}
@end documentdescription
@setchapternewpage odd
@firstparagraphindent insert
@c Summary and Copyright
@copying
This manual is for BotCommander
(version @value{VERSION}, @value{UPDATED}),
which is a specialized telnet client.
Copyright @copyright{} 2005, Gergely POLONKAI
@quotation
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 the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below. A copy of the
license is included in the section entitled ``GNU Free Documentation
License.''
(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
this GNU Manual, like GNU software. Copies published by the Free
Software Foundation raise funds for GNU development.''
@end quotation
@end copying
@dircategory Network Applications
@direntry
* BotCommander: (botcommander).
@end direntry
@c Title and Copyright
@titlepage
@title BotCommander
@subtitle for version @value{VERSION}, @value{UPDATED}
@author Gergely POLONKAI (@email{polesz@@botcommander.hu})
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage
@contents
@c Top node and master menu
@ifnottex
@node Top, About, , (dir)
@top BotCommander
@insertcopying
@end ifnottex
@menu
* About:: About the application
* Overview:: Features of BotCommander
* Installation:: How to install BotCommander
* Invoking:: Command line arguments
* Commands:: Internal commands
* Configuration:: The setup window
* Plans:: Plans in future versions
* Index:: Index
@end menu
@c Body
@node About, Overview, Top, Top
@chapter About BotCommander
@cindex about
@cindex homepage
You can reach the project's homepage at @url{http://www.botcommander.hu/}.
@cindex description
BotCommander is a small tool, originally written for the Gnome2 interface, to
remotely manage your @url{http://www.eggheads.org/, eggdrop} IRC bots.@*
Actually, it's acting as a small, configurable telnet client, but it will know a
bit more. For example, it has command-line history. While you cannot recall your
previous command in a simple telnet client, you will be able to do it with this
program. As it uses a text box for the command line, you can easily edit that
command.
The program uses @url{http://www.gnome.org/projects/gconf/, GConf2}
to store its configuration data. You can configure it to use a samba-like config
file instead, so you won't depend that heavily on @url{http://www.gnome.org/,
Gnome 2}, @xref{Installation}. In the near future I also plan
@url{http://www.w3.org/XML/, XML} config backend support.
On 28 August, 2006 I decided to drop this plan, and also the samba-like config
backend for a longer period. I think the application should first function, and
only after that I can create such addons.
@cindex status
The code is in alpha status. You can see how will it look like, also can use
for one connection, and decide if you will like it or not.
@cindex icon
BotCommander icon is from @url{http://www.eggheads.org/, Eggdrop}'s official
homepage. I will draw a new one, but until then, this is perfect.
@node Overview, Installation, About, Top
@chapter Features
BotCommander is a telnet client and much more. It can connect to one or more
@url{http://www.eggheads.org/, eggdrop} IRC bots, and give commands to them. In
the near future it will also possible to give the same command to each connected
bots.
Unlike the normal telnet client, this program has command line editing and
recalling possibilities. E.g if you have a long command line such
@code{
.process very much ugly paramters username
}
@*what you have to run multiple times, and in which you only change the username,
it is possible to recall the previous command, change the username, and send the
changed command. Thus, you don't have to enter the whole line again and again.
It uses @url{http://www.gtk.org/, GTK2} and some @url{http://www.gnome.org/,
GnomeUI} components, and stores its configuration data in
@url{http://www.gnome.org/projects/gconf/, GConf2}.
As it uses tabs, you can connect to many bots in one application, and at last
you won't have one icon for every bot in your task bar.
If you want (and you are at least have global +o in the bot), you can have a
sidebar on your tabs, in which you can see a list of the channels and the users
you have. For this, you will need to install the @file{botcommander.tcl} script
(can be found in the @file{eggdrop/} directory) in your bot (@code{.source
botcommander.tcl}). When the script loads, or when someone connects to the bot
via DCC
@node Installation, Invoking, Overview, Top
@chapter How to install?
@cindex installation
As BotCommander is currently in alpha phase, you cannot compile it with the
usual
@example
./configure
make
make install
@end example
sequence. First, you should edit the config.h file, and change the location of
the pixmaps dir. Then You should run @code{make check} to check if all the
required packages are installed on your system. At the moment these are
@itemize
@item
pkg-config
@item
gtk
@item
vte
@item
gconf2
@item
gnomeui2
@end itemize
If all is OK, simply run @code{make}. If nothing goes wrong, the binary will be
src/botcommander.
If you want to install BotCommander, copy the binary to /usr/local/bin. You
should change the @code{PIXMAPSDIR} variable in @file{config.h} to something
like @code{/usr/local/share/botcommander}, and recompile the whole thing.
@node Invoking, Commands, Installation, Top
@chapter Command line arguments
@cindex command line args
No command line arguments are defined yet. This means that BotCommander
currently accepts the @url{http://www.gnome.org/, Gnome} and
@url{http://www.gtk.org, GTK} standard command line parameters.
Yet I don't even have any plans for such parameters.
@node Commands, QUIT, Invoking, Top
@chapter Internal commands
@cindex command
BotCommander is a bit like an IRC client. As is, there are many commands built
in.
Most of the commands can be abbreviated. This means you can shorten a command
while it is still obvious.
For example, you can write @code{CON botname} instead of
@code{CONNECT botname}, as no other commands begin with ``CON''.
However, there are some ``dangerous'' commands which cannot be abbreviated. One
such command is QUIT.
@cindex internal command list
@menu
* QUIT:: Exits BotCommander
* CLOSE:: Closes the active tab
* CONNECT:: Connects to a bot or a host
* ASSIGN:: Assigns a bot to the active tab
* MODE:: Changes the mode in the current tab
* HISTLIST:: Lists the previously issued commands and sent messages
* BOTLIST:: Opens the bot list window
* PREFERENCES:: Opens the setup dialog
* DISCONNECT:: Disconnects the current tab
@end menu
@node QUIT, CLOSE, Commands, Commands
@section The QUIT command
@cindex command, QUIT
This command simply exists BotCommander.
If at least one tab is open with an opened connection, BotCommander will pop up
a dialog if the user really wants to exit.
These commands cannot be abbreviated.
@node CLOSE, CONNECT, QUIT, Commands
@section The CLOSE command
@cindex command, CLOSE
This will close the active tab. If a connection is opened in the tab,
BotCommander will pop up a dialog if the user really wants to do that.
@node CONNECT, ASSIGN, CLOSE, Commands
@section The CONNECT command
@cindex command, CONNECT
This will open a connection. You can use it in several ways.
If you have already assigned a bot to the tab with the ASSIGN (@xref{ASSIGN}.) command,
you can use it without parameters, so it will connect to the assigned bot.
If you have a bot in your bot list, you can connect to it with @code{CONNECT
botname}. It will also assign that bot to the tab.
You can use it in the form @code{CONNECT host port}.
@node ASSIGN, MODE, CONNECT, Commands
@section The ASSIGN command
@cindex command, ASSIGN
Assigns a bot to the active tab. You can use it in the form @code{ASSING
botname} or @code{ASSIGN host port}. After assigning a bot, you can use the
@code{CONNECT} command without parameters to connect to the bot.
@node MODE, HISTLIST, ASSIGN, Commands
@section The MODE command
@cindex command, MODE
Sets the mode in the current tab. It has only one parameter, the new mode
character. It can be B for BotCommander command mode, E for Eggdrop command mode
or M for Message mode.
You can see the current mode in the right side of the status bar.
@node HISTLIST, BOTLIST, MODE, Commands
@section The HISTLIST command
@cindex command, HISTLIST
It's a very useless command. Prints out all the commands and messages you
entered in the current tab.
@node BOTLIST, PREFERENCES, HISTLIST, Commands
@section The BOTLIST command
@cindex command, BOTLIST
This command simply opens the bot list dialog window.
@node PREFERENCES, DISCONNECT, BOTLIST, Commands
@section The PREFERENCES command
@cindex command, PREFERENCES
This command simply opens the setup dialog.
@node DISCONNECT, Configuration, PREFERENCES, Commands
@section The DISCONNECT command
@cindex command, DISCONNECT
This command forces the disconnection of the current tab. This is useful if you
try to connect a bot which doesn't respond, and you don't want to wait for the
"connection timeout" message before connecting to somewhere else.
@node Configuration, Plans, DISCONNECT, Top
@chapter The preferences window
@node Plans, Index, Configuration, Top
@chapter Future plans
@cindex plans
@itemize
@item
ADDBOT botname host port [nick] will add a new bot to the bot list
@item
DELBOT botname will remove a bot from the bot list
@item
Scripting. BotCommander will be able to run small scripts, perhaps in TCL
@item
Macros and command aliases, so you have to type only one command to achieve the
same as you type in many
@item
Windows port. This will be done after the whole application is functioning. So
this will be in the very far future, though I already got requests for it
@end itemize
@node Index, , Plans, Top
@unnumbered Index
@printindex cp
@c End
@bye

542
doc/botcommander.xml Normal file
View File

@@ -0,0 +1,542 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
<book>
<title>BotCommander</title>
<bookinfo>
<author>
<personname>
<firstname>Gergely</firstname>
<surname>POLONKAI</surname>
</personname>
<email>polesz@botcommander.hu</email>
</author>
<copyright>
<year>2005-2007</year>
<holder>Gergely POLONKAI</holder>
</copyright>
</bookinfo>
<dedication>
<beginpage />
<para>I dedicate this book to my girlfriend, as she was so patient while I
wrote it.</para>
</dedication>
<toc>
<beginpage />
<title>Table of Contents</title>
<tocpart>
<tocentry>Part I: About BotCommander and this book</tocentry>
<tocchap>
<tocentry>Chapter 1: Who should read this book?</tocentry>
</tocchap>
<tocchap>
<tocentry>Chapter 2: About BotCommander</tocentry>
</tocchap>
</tocpart>
</toc>
<preface>
<beginpage />
<title>Preface</title>
<para>This document tries to explain the history and usage of the software
BotCommander briefly.</para>
</preface>
<part>
<title>About BotCommander and this book</title>
<chapter>
<title>Who should read this book?</title>
<para><itemizedlist>
<listitem>
<para>Everyone, who handles at least one eggdrop IRC bot</para>
</listitem>
<listitem>
<para>Everyone, who wants to write addons (modules) for
BotCommander</para>
</listitem>
<listitem>
<para>Everyone, who wants to learn the script-writing methods for
BotCommander</para>
</listitem>
</itemizedlist></para>
</chapter>
<chapter>
<title>About BotCommander</title>
<para>BotCommander is a specialized telnet client, and a bit more. It is
specialized in eggdrop IRC bot handling, enhanced with scripting
possibility, and may also be enhanced with self-written modules (just
like eggdrop itself).</para>
<para>The project has its own homepage at
<uri>http://www.botcommander.hu/</uri></para>
</chapter>
<chapter>
<title>BotCommander features</title>
<glosslist>
<glossentry>
<glossterm>Command line history</glossterm>
<glossdef>
<para>BotCommander has command line history. This means you can
recall your previous commands with the Up/Down keys, edit them,
and/or issue them again.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Tabbed interface</glossterm>
<glossdef>
<para>BotCommander has a tabbed interface, which means you can
have several connections in only one window - just like an IRC, or
IM client.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>Channel and user list</glossterm>
<glossdef>
<para>If you have the correct permissions, you can have a list of
the bot's users and channels; also you will be able to manage
these: change user and channel flags and more. However, this
feature requires a small TCL script to be loaded in the bot (that
script is provided with BotCommander).</para>
</glossdef>
</glossentry>
</glosslist>
</chapter>
<chapter>
<title>Some technical background</title>
<para>BotCommander uses GConf2 to store its configuration, and all
bot-related data. The graphical part (the widgets) are from GTK+
(currently using 2.6 features), and some are from libgnomeui.</para>
</chapter>
</part>
<part>
<title>Installation</title>
<preface>
<title>About this part</title>
<para>In this chapter you will learn about the installation methods of
BotCommander. You will be able to install BotCommander under several
Linux distributions, such as Debian and Gentoo, and also will know how
to install it from the sources.</para>
</preface>
<chapter>
<title>Install on Debian machines</title>
<para>For a few years, I was a hardcore Debian-user. Thus, it was almost
my first task to create a Debian package out of BotCommander.</para>
<para>I also created a Debian repository, so it is an easy task to
install BotCommander under a Debian system. Just add the following lines
to your <filename>sources list</filename> file.</para>
<example>
<title>The <filename>sources.list</filename> snippet required to
install BotCommander .deb packages with apt.</title>
<para>deb http://www.botcommander.hu/debian testing main</para>
<para>deb-src http://www.botcommander.hu/debian testing main</para>
</example>
<para>This snippet is only for debian etch (as of writing, at the end of
2006).</para>
</chapter>
<chapter>
<title>Install on Gentoo machines</title>
<para>After my Debian years, my next Linux-breed was Gentoo. It's
absolutely does what the user wants (sure, if the user is smart enough).
After a few days of coding, a Gentoo ebuild was born. It is the part of
the BotCommander package, can be downloaded from
<uri>http://www.botcommander.hu/</uri>, and I'm also trying to add it to
the official Gentoo portage.</para>
</chapter>
<chapter>
<title>Install from sources</title>
<para>If you are not the user of the above systems, then currently no
package exists for your needs. I'm really sorry for that, but I always
welcome if someone sends me a package for any OS-es.</para>
<para>So, you arrived here, you want to install BotCommander from
sources. This is good, but has some prerequisites: you will need bunch
of software you may not currently have installed. I'm trying to make
this list as correct as possible, but it may happen that I forgot about
something. I'm really sorry if so.</para>
<glosslist>
<glossentry>
<glossterm>autoconf v2.60</glossterm>
<glossdef>
<para>This is required only if you want to compile the SVN tree,
as it doesn't contain a configure script.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>gcc</glossterm>
<glossdef>
<para>gcc is the GNU C Compiler. This is a necessary tool.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>gdk-pixbuf</glossterm>
<glossdef>
<para>This is the GDK-pixbuf library, required by BotCommander to
render some icons.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>glib</glossterm>
<glossdef>
<para>This is the GLib library. BotCommander uses its
memory-handling routines.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>GTK+ v2.6.2 or greater</glossterm>
<glossdef>
<para>This is the GTK library. BotCommander uses its widgets
heavily.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>libgnome2</glossterm>
<glossdef>
<para>This is the Gnome library. BotCommander uses some widgets in
it.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>libgnomeui2</glossterm>
<glossdef>
<para>This is the Gnome-UI library. BotCommander uses the file
open dialog from it.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>VTE</glossterm>
<glossdef>
<para>This is the VTE (Virtual Terminal Emulation) library.
BotCommander displays all the bot-messages in such a
widget.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>GNU Gettext package</glossterm>
<glossdef>
<para>This package is required for BotCommander to speak many
languages. I'm trying to make this one optional, so one will be
able to compile BotCommander without multilingual support (may be
good for english-speaking people, and for minimalist
systems)</para>
</glossdef>
</glossentry>
</glosslist>
</chapter>
</part>
<part>
<title>Basic eggdrop usage</title>
<preface>
<title>Terms and assumptions</title>
<para>Throughout this part we assume that you install your bot yourself,
and thus you have an owner flag in it. Many functions are not
accessible, if you don't possess that +n flag.</para>
</preface>
<chapter>
<title>Compiling and installing eggdrop</title>
<note>
<para>This chapter assumes that you have TCL installed system-wide. If
not, please consult the eggdrop manual on how to install it for one
single user, and how to make eggdrop use that library. I also assume
that you know how to use the basic Unix/Linux commands, such as tar,
thus you can unpack the eggdrop archive.</para>
</note>
<para>First things first, you much fetch eggdrop from somewhere. The
best place for this is eggheads' homepage at
<uri>http://www.eggheads.org/</uri>. Download the latest version (as of
writing, it is 1.6.18), and unpack it. Then enter the unpacked
distibution's directory, and issue the following commands:</para>
<example>
<title>Commands to configure and compile eggdrop</title>
<para>./configure</para>
<para>make iconfig</para>
<para>make</para>
</example>
<para>After issuing <command>make iconfig</command>, that script will
ask you several questions if you want to install this-or-that module.
Read the module descriptions, and choose whichever you need.</para>
<note>
<para>I'm currently planning to write my
<filename>botcommander.tcl</filename> script as an eggdrop module. If
I'm ready with that, I will instruct you how to compile new modules
for eggdrop.</para>
</note>
<para>After <command>make</command> finishes without errors, you can
issue the last, <command>make install</command> command. This will
install eggdrop to the given directory (if none was given, the default
is <filename>$HOME/eggdrop</filename>.</para>
</chapter>
<chapter>
<title>Configuring your bot</title>
<para>Configuring eggdrop is a long, yet not hard process, which
requires almost no understanding of eggdrop, if you know english.</para>
<note>
<para>The following is only a suggestion; contains my way on
configuring an eggdrop bot.You may do it several other ways; it's up
to you. However, if you read through this chapter, and follow my
words, I will assume that the name you have chosen your bot is
<acronym>BCbot</acronym>.</para>
</note>
<para>First of all, enter the directory which contains your eggdrop
installation. As said in the previous chapter, by default it is
<filename>$HOME/eggdrop</filename>. After that, make a copy of
eggdrop.conf with a filename as you will call your bot; then make it
executable for at least yourself.</para>
<example>
<title>Copy eggdrop.conf to your own file, and make it
executable.</title>
<para>cp eggdrop.conf BCbot</para>
<para>chmow 755 BCbot</para>
</example>
<para>Now begin to edit your newly created configuration. The most
important thing (of course, if you follow my way) it the very first row,
which now looks like this:</para>
<para><code>#! /path/to/executable/eggdrop</code></para>
<para>This tells the Unix/Linux shell to use
<filename>/path/to/executable/eggdrop</filename> to interpret this file.
Thus, the shell, instead of trying on interpreting the command in that
file, will run the given command with this file as a parameter. Unless
your eggdrop is at that location, you must change that line to something
like this:</para>
<para><code>#! /home/yourusername/eggdrop/eggdrop</code></para>
</chapter>
</part>
<part>
<title>Usage</title>
<chapter>
<title>Command line parameters</title>
<para>BotCommander doesn't have any defined command line parameters.
This means that it accepts only the standard Gnome and GTK+ parameters
only. I don't even have any plans on defining such things (yet).</para>
</chapter>
<chapter>
<title>Built-in commands</title>
<para>BotCommander has several built-in commands. These can be called
from BotCommander or external scripts, thus extending BotCommander's
functionality.</para>
<para>Most of these commands can be abbreviated. This means that you can
cut off the end of the commands, until it is obvious to the application.
For example, as of the time of writing, the CONNECT command can be
abbreviated as CON.</para>
<para>There are some "dangerous" commands, such as QUIT, which cannot be
abbreviated, so - in this case - you won't exit BotCommander if you
accidently type in the Q command.</para>
<section>
<title>QUIT</title>
<para>The QUIT command does what it should according to its name:
exits BotCommander.</para>
<para>If at least one connected tab is open, a small dialog will pop
up, asking if you are serious about quitting.</para>
<para>This command cannot be abbreviated.</para>
</section>
<section>
<title>CLOSE</title>
<para>This command closes the currently active tab. If there is an
active connection in that tab, a dialog will pop up asking if you
really want to do that.</para>
<para>This command cannot be abbreviated.</para>
</section>
<section>
<title>CONNECT</title>
<para>This will open a connection in the current tab. It has many
different invokations, depending on the parameters given.</para>
<orderedlist>
<listitem>
<para>CONNECT without parameters will work if you previously
assigned a bot to the active tab with the ASSIGN command. If so,
the connection will be open to the given bot.</para>
</listitem>
<listitem>
<para>CONNECT botname will connect to the named bot in the bot
list.</para>
</listitem>
<listitem>
<para>CONNECT host port will connect to the specified host, on the
specified port. This can be useful, if you want to connect to a
bot only once, e.g to check some settings or such.</para>
</listitem>
<listitem>
<para>CONNECT host port username does exactly as the above
command, but it will automatically send the given username also.
This will be useful as the initial connection to a bot, as I'm
planning to implement a SAVEBOT command, which will do just what
it name suggests: save the current bot to the bot list.</para>
</listitem>
</orderedlist>
</section>
<section>
<title>ASSIGN</title>
<para>The ASSIGN command does the same as CONNECT, with only one
difference: it won't connect. It will assign all the connection
parameters to the current tab, so when you are ready, you can use the
CONNECT command without any parameters to do the actual
connection.</para>
</section>
<section>
<title>MODE</title>
<para>The MODE command changes the current tab's mode. You can read
more about modes in <xref linkend="chap_modes" /></para>
</section>
</chapter>
<chapter id="chap_modes">
<title>Modes</title>
<para>BotCommander uses modes to distinguish between commands addressed
to itself, and addressed to the connected bot.</para>
<para>There are three modes, identified by their english names' first
character.</para>
<glosslist>
<glossentry>
<glossterm>B, or BotCommander command mode (/)</glossterm>
<glossdef>
<para>In this mode, entered text is validated against the commands
built in to BotCommander, or commands provided by scripts and
modules.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>E, or Eggdrop command mode (.)</glossterm>
<glossdef>
<para>In this mode, text is sent to the connected bot (if any), so
eggdrop itself will validate it.</para>
</glossdef>
</glossentry>
<glossentry>
<glossterm>M, or Message mode (@)</glossterm>
<glossdef>
<para>In this mode, entered text is sent to the connected bot. As
you see, it is just the same as E mode, but there is a small
difference. If the entered text begins with a dot (.), eggdrop
would identify and parse it as a command. So in this case, the
entered text is prefixed with a space.</para>
</glossdef>
</glossentry>
</glosslist>
<para>You can change between these modes in the Mode menu, or with
hotkeys (Ctrl-B, Ctrl-E and Ctrl-M respectively). However, if you want
to use one specific mode for a long time, and issue one line in a
different mode, you can prefix your text with the character in
parentheses in the above list. E.g if you use Message mode for hours,
and want to issue one BotCommander command, you can do it by entering
/COMMAND. As this happens, BotCommander will parse and execute the given
row as a BotCommander command, and return to message mode.</para>
</chapter>
</part>
</book>

2
doc/version.texinfo Normal file
View File

@@ -0,0 +1,2 @@
@set VERSION 1.0
@set UPDATED 15 November 2005