Info file: irchat.info,    -*-Text-*-
produced by `texinfo-format-buffer'
from filebuffer `*scratch*'
using `texinfmt.el' version 2.37 of 24 May 1997.

START-INFO-DIR-ENTRY
* Irchat: (irchat).             IRC interface for Emacs.
END-INFO-DIR-ENTRY

This file documents the use of Irchat, a GNU Emacs interface for the
Internet Relay Chat.

Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995 Free Software
Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.


Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that
the sections entitled "Distribution" and "General Public License" are
included exactly as in the original, and provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that the sections entitled "Distribution" and
"General Public License" may be included in a translation approved by
the author instead of in the original English.





File: irchat.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)

Welcome to the documentation of Irchat, the GNU Emacs interface to
Internet Relay Chat. Irchat provides all the necessary IRC features,
combined with the easy extensibility of GNU Emacs.

* Menu:

* Introduction::What is Irchat?
* Etiquette::	How to behave in IRC.
* Overview::	Why use IRC through GNU Emacs?
* Installing::	How to get Irchat up and running?
* Using:: 	Using Irchat
* Commands::	IRC Commands in Irchat
* Customizing::	Customizing Irchat
* Authors::	Reporting bugs etc.



File: irchat.info, Node: Introduction, Next: Etiquette, Prev: Top, Up: Top

Introduction
************

What is Irchat?

Irchat is an Emacs client for the Internet Relay Chat protocol. Irchat
is designed to be easily modifiable if you know emacs-lisp and
understand the meaning of hooks.



You need GNU Emacs version 19, Lucid Emacs or Xemacs to build Irchat.
Files that are needed to build irchat are:

gnus-caesar.el rot-13 encryption and decryption irchat-000.el,
irchat-200.el, irchat-300.el, irchat-400.el, irchat-500.el handle
numbered IRC messages irchat-commands.el user command
irchat-copyright.el irchat-cta.el clt-a message handers irchat-dcc.el
dcc-handlers with dcc.c irchat-filter.el process filter
irchat-globals.el global variable definitions irchat-handle.el handle
named messages irchat-inlines.el inline some commonly used expressions
irchat-main.el setup system irchat-misc.el misc. routines
irchat-timer.el timer interface for emacs/xemacs irchat-vars.el user
customizeable variables setpath.el setup path for emacs-lisp
bytecompiler dcc.c dcc protocol and name service module

and files needed to run irchat are

irchat.elc              The lisp side of the system
dcc                     dcc protocol and name service module


This document describes version 2.49 of Irchat. It runs with servers
up to and including ircd 2.8.21

Study the documentation accompanying the server. Make sure to read the
IRC etiquette file.



File: irchat.info, Node: Etiquette, Next: Overview, Prev: Introduction, Up: Top

Etiquette
*********

/************************************************************************
* IRC - Internet Relay Chat, doc/etiquette * Copyright (C) 1990, Lea
Viljanen and Ari Husa * * This program is free software; you can
redistribute it and/or modify * it under the terms of the GNU General
Public License as published by * the Free Software Foundation; either
version 1, or (at your option) * any later version.  * * This program
is distributed in the hope that it will be useful, * but WITHOUT ANY
WARRANTY; without even the implied warranty of * MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public
License for more details.  * * You should have received a copy of the
GNU General Public License * along with this program; if not, write to
the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA
02139, USA.  */

HOW TO BEHAVE ON IRC

Authors: Lea Viljanen (LadyBug) viljanen@kreeta.helsinki.fi Ari Husa
(luru) so-luru@tolsun.oulu.fi


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, do it
with a private /msg.  The same applies to goodbyes.


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.

   There are a lot of people from Japan as well, who use Kanji
characters which may look quite exotic as well. As I don't know Kanji
I don't even try to explain any of the characters.

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.  Do
not "dump" to a channel or user (send large amounts of unwanted
information). This is likely to get you /kicked off the channel or
/killed off from irc. Dumping causes network 'burbs', connections
going down because servers cannot handle the large amount of traffic
any more.


File: irchat.info, Node: Overview, Next: Installing, Prev: Etiquette, Up: Top

Overview
********

Why IRC in Emacs?

  1.  You can have other Emacs buffers visible and have Irchat either
     in a small buffer or not visible at all. For example, you can
     read USENET news with GNUS without leaving IRC and be notified if
     someone is trying to reach you. Nowadays when computing power is
     cheap you can have multiple emacses running so this view has lost
     some of its importance.

  2.  You get all the GNU Emacs features such as a calculator, all
     usable while in IRC. And you can run your favourite shell
     commands and get their output directly to IRC or to your input
     (*IRC Commands*) buffer for you to send to IRC channel.

  3.  You can edit other files while talking about their contents on
     IRC.

  4.  The commands for editing your text are those familiar from GNU
     Emacs and if you have customized them, the customized editing
     keys are automatically available. Irchat uses it's own keymap
     bound to C-c, so if you have used that key in your own
     keybindings you have to do some reordering in order to use your
     own commands.

  5.  You may easily add features if you find something missing
     (assuming you know emacs-lisp, of course, but this is a good
     reason to learn).

  6.  GNU Emacs has been ported on many different UNIX machines, so you
     will not have to do the porting yourself, which might be the case
     with the traditional clients.

  7.  If you use IRC on several machines, you don't need to compile an
     IRC client for all of them. You can just take the small elisp
     code with you and use it.

  8.  GNU Emacs tries to handle most terminals, which might not be the
     case with the traditional clients.



File: irchat.info, Node: Installing, Next: Using, Prev: Overview, Up: Top


Installing Irchat
*****************

Try to convince your local emacs administrator to put Irchat to a
globally accessible emacs-lisp directory and to add this info to the
info tree.

The files needed to run irchat are irchat.elc and dcc.

These files can be made from the source by compiling dcc.c with a
c-compiler and all the emacs-lisp files with emacs byte compiler.  A
makefile is provided for this purpose.

No modifications are needed in Irchat itself, as long as the irc port
is 6667 as it usually is and the server is local. If your server uses
a different irc port or you use a non-local irc server you have to
configure them by setting environment variables IRCPORT and/or
IRCSERVER.

You need add a line containing following to your `.emacs', that way
you can start irchat by issuing command M-x irchat. This code can be
added to global emacs-startup-script as well.

     (autoload 'irchat "irchat" "Emacs IRC client." t)

If you are not happy with the way Irchat is when shipped, you need to
have a small piece of code for yourself for setting some variables
that control irchat the way you want them to be. You may place them in
your `.emacs' or in an other file to be loaded before starting Irchat
itself.

See the section called "Customizing Irchat" for info on the
customization possibilities.


File: irchat.info, Node: Using, Next: Commands, Prev: Installing, Up: Top

Using Irchat
************

In irc-mode you will by default have two buffers, the Command buffer
and the Dialogue buffer. You will be typing in the Command buffer, and
the dialogue will appear in the dialogue buffer. The command buffer
roughly corresponds to the one-line area in the bottom in the
traditional clients.

In the command buffer, the lines you type will be sent to the channel
you are on when you press the return or the linefeed key. You may
freely edit them or do any regular editing tricks that you may want to
do. If the line exceeds the right margin, it will be wrapped around,
so you can finish the line and send it when you're ready.

The cursor keys move you around in the buffer. If you want to say
something again, just find it in the command buffer, move the cursor
on it, and press the return key.

You can use the regular GNU Emacs commands in the command buffer for
inserting text from elsewhere, like insert-file (C-x i) for adding
other files, C-u M-! for inserting output of shell commands and so
forth.  Notice that these will NOT be sent to the channel before you
go on each line and press return. You can send output of shell command
to IRC by executing irchat-Command-exec (C-c !).

The commands for controlling IRC are available in the command buffer:

   * C-cg - Get files from DCC-receive list
   * C-cs - Send files via DCC
   * C-cG - List DCC requests
   * C-cC-a - Send action
   * C-m - Send line to current channel or partner if on chat mode.
   * C-j - Send line to current channel or partner if on chat mode.
   * C-cF - Send file via server
   * C-cC-c - Client-query-prefix
   * C-cC-d - Display protocol debug window
   * C-cC-i - isON message, arguments is a comma-separated list of
     nicknames
   * C-cC-l - redisplay
   * C-cC-n - names, with prefix argument, list current channel
   * C-cC-r - Caesar rotate line
   * C-cC-u - User@host information about nicknames, space separated
     list,
   * C-cC-y - send emacs yank buffer
   * C-cC-v - scroll dialogue forwards
   * C-cspace- scroll dialogue forwards
   * C-cC-x - scroll dialogue backwards
   * C-cC-?  - scroll dialogue backwards
   * C-c!  - execute shell command and output to channel
   * C-c2 - toggle private conversation, takes prefix argument.
   * C-ca - set away message
   * C-cc - send current line as if it is irc command
   * C-cf - finger user, ie whois.
   * C-cC-f - freeze, the arriving and sent messages will not scroll
     dialogue.
   * C-cM - ownfreeze, sent messages will scroll dialogue, arriving
     will not.
   * C-ci - invite
   * C-cj - join a channel
   * C-cC-p - part a channel
   * C-ck - Kill, ie ignore nickname
   * C-cC-k - Kick nickname out of channel
   * C-cl - List channel(s) and topic(s)
   * C-cm - send private message, prompt target and message
   * C-cp - send line as a private message, prompt target.
   * C-cC-m - set mode of channel
   * C-cn - change nickname
   * C-cq - Quit irc.
   * C-cr - reconfigure windows
   * C-ct - set topic of channel
   * C-cT - insert timestamp to dialogue
   * C-cC-t - find timestamp, ie. display approximate time of the
     point.
   * C-cP - toggle private message window.
   * C-cu - show users statistics.
   * C-cw - send who query, with prefix argument to the current
     channel.
   * C-cW - Wait for user to arrive to irc.
   * C-c| - show last kill
   * C-c/ - send any protocol command
   * C-i - try to complete word to a nickname
   * C-[C-i - complete emacs lisp-symbol
   * C-c$ - end of dialogue
   * C-c> - Loop forwards ring of channels/private conversations. Try
     joining multiple channels before trying this...
   * C-c< - Loop backwards ring of channels/private conversations


The other buffer is the dialogue buffer. The conversation you have had
in IRC will be stored there. Notice that this buffer is not saved
anywhere unless you explicitly tell emacs to do so. This feature lets
you see what has been spoken about on the channel while you have been
away, for example. There is a number of commands for the dialogue
buffer. There are also a couple of commands for controlling the
dialogue buffer from the command buffer, namely C-c C-f, C-c DEL and
C-c C-l. C-c C-f will freeze the dialogue buffer so that you can read
the text there and scroll the buffer. C-c DEL will scroll the dialogue
buffer one screenful back and C-c C-l will refresh the irchat
buffers. To scroll the dialogue forward one screenful you can use
C-SPC or if you have only two buffers visible you can use the default
emacs scroll-other-window M-C-v.

Notice that there will be a capital F on the modeline of the dialogue
buffer if the dialogue buffer is frozen. Press C-c C-f again to
unfreeze it. A capital A signifies that you've marked yourself as
being AWAY.

In the dialogue buffer there is a special keymap, which doesn't allow
for typing.

The commands there are:

   * backspace - scroll backwards one page of the dialogue.  * space -
scroll forwards one page of the dialogue.  * $ - goto the end of the
dialogue.  * > - goto the end of the dialogue.  * < - goto the
beginning of the dialogue.  * / - give any irc protocol command.  * f
- freeze, the arriving and sent messages will not scroll dialogue.  *
M - ownfreeze, sent messages will scroll dialogue, arriving will not.
* i - invite user to current channel * j - join channel * m - enter
message.  * C-m - enter private message * o - jump to other window * p
- part channel * P - toggle display of private-message buffer.  * r -
reconfigure windows.  * t - find timestamp, ie. display approximate
time of the point.  * T - insert timestamp * w - send who query * e is
also a mode for debugging irchat, which you can use if you want to
familiarize yourself with the server-client traffic or think that
irchat is handling something wrong. You invoke it with C-c C-d and end
with another C-c C-d.

CTCP (Client-To-Client-Protocol) is bound on prefix C-c C-c, it has
7 (seven) different commands:

   * v - for version
   * u - for userinfo
   * h - for help
   * c - for clientinfo
   * g - for generic (ask any CTCP info, not nessessary on all
     clients)
   * U - for setting userinfo, asks it from minibuffer
   * C-u - for setting userinfo to contain current line from
     command-buffer




File: irchat.info, Node: Commands, Next: Customizing, Prev: Using, Up: Top

IRC Commands
************

There are two kinds of commands in IRC, namely client commands and
server commands. For using Irchat it is useful to understand the
difference.  For example, the client command /CLEAR for clearing the
screen is used in the traditional clients. This command has no effect
outside your screen, and the other IRC-users need not be notified.  On
the other hand, the server command /NICK changes your nickname.  This
command affects everyone and is sent to everyone on the same channel
with you (and to all servers in the network, so don't change nick
without need).

In Irchat, all the server commands are directly available. If you have
set irchat-want-traditional simply by typing a slash (/) at the
beginning of a line and then typing the server command with the
parameters or by typing the server command in *IRC Commands* buffer
and then typing C-c c.  This line will be sent directly to the server
(no /QUOTE needed or allowed).  Notice, however, that you need to type
the commands in full.  So you cannot use abbreviations like /N for
/NAMES.  Also notice that the /M (message to user) command is really
called /PRIVMSG.

For most commands, however, there is a better way. We have written
emacs commands for sending the line and bound them to keys. For
example, for /LIST you just say C-c l, C-c n for /NICK, C-c C-n for
/NAMES and so on.

Some of there commands require parameters and they'll prompt you for
them. For example, the C-c n command will ask you for the new nickname
to use. If at this point you decide that you didn't really want to
change your nickname, press C-g (control-g) to cancel.

For some commands you may give an argument but you don't have to. For
example, to see the users on channel #42, you type C-c w #42 and
return. Leaving out the channel would would show you all users on IRC
(note that this is not recommended though, because there are normally
4000-6000 users nowadays, and the server would close your
connection). You may omit the channel number if you mean the current
channel, that is C-u C-c w for users on the same channel with you. To
ask users on named channels like `+glbf' or `#war' you can use C-u -
C-c w, which asks the channel name in minibuffer. C-c n works in a
similar fashion.

There exists a special /QUERY-like mode, in which every line you type
will be sent to one person via a private message. You begin it with
C-c 2 and specifying the person to chat with, and end with another C-c
2 with blank spaces as the name of the person.

There are two other ways for sending private messages, C-c p and C-c
m.  With C-c m you'll be asked for the name of the person and then for
the text. You'll be typing the text in the minibuffer. The other way
is to type the text in the command buffer, and to press C-c p to send
it.  Irchat prompts you for the name of the person to send it to, the
default being the name of the person you sent your last private
message to. You can easily chat privately with two persons at a time
by being in a C-c 2 with one and C-c p:ing with the other.

When you join a channel, completion is also
available. C-c j +mTAB takes you to the channel
+My_very_long_channel_name, if there happens to be such a channel.
You can also join a channel where some person you know is, just use
C-c j mta and you would be on channel where user mta is.

Notice that for C-c m, C-c p, C-c 2, C-c f (/WHOIS), and C-c k
(/IGNORE) nickname completion is available. What this means is that
you only need to type a few first letters of the nick, and you can use
TAB or SPC to fill in the rest. This feature is also available in the
command buffer, bound to C-i (TAB), where it completes the word you
typed last assuming it is a nickname. This is handy for typing long
nicks so that you get the CaSe correctly. For example, to say
"BigCheese: ..." you just need to say "biTAB:", assuming nobody else
(on IRC at the time) has nick that starts with bi.


File: irchat.info, Node: Customizing, Next: Authors, Prev: Using, Up: Top

Customizing Irchat
******************

The most simple way to customize Irchat is through the variables.  You
can place these either in your `.emacs' or in a special file. The most
important varsiables for getting Irchat work the way you want it to
are irchat-beep-on-bells and irchat-command-window-on-top, but there
are many others.

The most used irchat variables follow, setting other variables
requires deeper understanding of irchat and is not recommended.


   * irchat-server           from environment variable IRCSERVER
     Tells what irc server irchat tries to connect.

   * irchat-service          from environment variable IRCPORT or 6667
     Tells in what port the server resides.

   * irchat-nickname         from environment variable IRCNICK or your loginname
     What is your nickname in IRC.

   * irchat-startup-channel          nil
     Channel you try to join when starting irchat.

   * irchat-reconnect-automagic      nil
     Automatic reconnection, default is disabled.

   * irchat-grow-tail                "_"
     Add irchat-grow-tail to nick when reconnecting. Otherwise you might get
     killed again if automagic reconnect is too fast

   * irchat-want-traditional         nil
     Currently only used on determing whether the commands-window is placed
     on bottom and to force regognition of old irc commands that start with "/".


These are the format strings for arriving and leaving messages:


   * irchat-myformat-string          ">"
     Format used when displaying messages typed to channel.
     If the string contains "%s" it is substituted with your nickname.

   * irchat-format-string            ">%s<"
     Format used when displaying your private messages to some person,
     person's name is inserted in place of %s.

   * irchat-format-string1           "=%s="
     Format used when displaying private messages to you from some person,
     person's name is inserted in place of %s.

   * irchat-format-string2           "<%s>"
     Format used when displaying messages to your primary channel,
     senders name is inserted in place of %s, sender is on this primary channel.

   * irchat-format-string3           "<%s:%s>"
     Format used when displaying messages to some of your secondary channel,
     senders name is inserted in place of first %s, channel the message has
     arrived in place of second %s, sender is on this secondary channel.

   * irchat-format-string4           "(%s)"
     Format used when displaying messages to your primary channel,
     senders name is inserted in place of %s, sender is NOT on this primary channel.

   * irchat-format-string5           "(%s:%s)"
     Format used when displaying messages to some of your secondary channel,
     senders name is inserted in place of first %s, channel the message has
     arrived in place of second %s, sender is NOT on this secondary channel.




   * irchat-nam-suffix               ""
     What suffix is to be added to every line you send.
     Not recommended to set, can be very annoying.

   * irchat-beep-on-bells            nil
     What to do with arriving bells, if nil don't ring bell (or flash).
     If value is 'always always ring a bell when it arrives, other values
     mean that only bell us when bell arrives in private message to us.

   * irchat-show-wallops             t
     Show wallops messages if usermode +ws

   * irchat-ignore-extra-notices     t
     Don't show NOTICEs with \"as being away\" unless they come from
     the local server.

   * irchat-ignore-changes           nil
     Ignore changes? Good in topic-wars/link troubles. Notice the variables
     irchat-compress-changes.

   * irchat-shorten-kills            t
     Shorten KILL messages to about one line.

   * irchat-ignore-fakes             nil
     If non nil, ignore fake notices if receiving them.

   * irchat-beep-on-bells            nil
     If non-nil, and the IRC Dialogue buffer is not selected in a window, an
     IRC message arriving containing a bell character, will cause you to be
     notified.  If value is 'always, an arriving bell will always cause a
     beep (or flash)

   * irchat-keepalive-interval       nil
     Interval on seconds the existence of server connection is checked. If nil
     do not poll the server.

   * irchat-timestamp-interval       600
     Interval in seconds between timestamps in dialogue-buffer, nil for none.

   * irchat-pollnames-interval       nil
     Interval the names are polled from server for global nickname
     completion.  Notice that some servers have protection against flood, and
     setting this on may cause server to kill you, because of flooding (as
     there are thousands of users nowadays.

   * irchat-timestamp-format         "*** Time: %s"
     Format-string for timestamp

   * irchat-format-time-function     (function irchat-compose-servertimestring)
     Function to convert result of (current-time-string) to human readable
     form. If you like to have the short format, set this to nil or to a
     funtion (defun my-format (s) s).

   * irchat-kill-nickname            nil
     A list of nicknames, as symbols, to ignore. Messages from these people
     won't be displayed.

   * irchat-kill-realname            nil
     A list of real names of people to ignore. Messages from them won't be
     displayed.

   * irchat-kill-logon               nil
     A list of logon names (user@host.dom.ain). Messages from them won't be
     displayed.

   * irchat-compress-changes         nil
     Set to t if we want instant compressed messages in the old format.

   * irchat-compress-treshold        1
     Number of lines to search back for a previous matching join/part/quit/mode."

   * irchat-buffer-maxsize           1000000
     Maximum size (in bytes) of any irchat buffer.

   * irchat-buffer-defsize           900000
     Size to shrink buffer if it grows too big.

   * irchat-checkbuffer-interval     120
     Interval between buffer-size checks.

   * irchat-keep-buffers             t
     When starting IRC process, instructs whether to erase contents of old
     buffers if NIL or to keep them if T.

   * irchat-buffer-preferences       '((".*" irchat-D-buffer))
     List of lists that contain regexp to match and buffer-list to insert.


DCC support variables.


   * irchat-dcc-program              "dcc"
     The name of the external dcc-program if one exists. If you are not able
     to compile dcc.c, define this as symbol nil. If it is not a full pathname
     the program must be found from directories defined in exec-path.

   * irchat-dcc-directory            "~/tmp"
     Directory where irchat-dcc puts received files.

   * irchat-dcc-port                 1200
     Default port for DCC operations.

   * irchat-dcc-receive-direct       t
     t, receive files without asking user intervention, nil, the user must
     irchat-Command-dcc-receive files by hand.


Variables for controlling CTCP (Client-To-Client-Protocol) and
irchat's own file transmission protocol.


   * irchat-client-userinfo          "No userinfo given."
     What is given as userinfo for people requesting it from you.

   * irchat-file-accept              nil
     Do we want to accept file transmissions from users.

   * irchat-file-confirm-save:       t
     Do we want irchat to ask us before it writes the file in our directory.



If you're not happy with the way the keys are set up, you may wish to
modify the key bindings. This is most conveniently done by defining
them in your irchat-Command-mode-hook.

There are lots of other hooks, one for each server reply and so forth.
For every servers message the irchat first tries to run function named
irchat-handle- 'message' -hook. If that function returns true Irchat
won't run internal handler for that message.

The definition of these functions is somewhat tricky. You have to
define it via `defun' and then use `setq' to set its variable-value as
this function. See provided example for details. With these, an
auto-greeter, for example, would be trivial to write.  Here are two
examples of using hooks. First we set up irchat-Command-mode-hook to
read our abbreviations and require our own hook-code if it is not yet
loaded and then we set up autogreeter.

BTW, auto-greeters are annoying most of the time.

     (setq irchat-Command-mode-hook
           '(lambda ()
              (make-variable-buffer-local 'blink-matching-paren)
              (setq blink-matching-paren nil)
              (setq local-abbrev-table irchat-mode-abbrev-table)
              (abbrev-mode 1)
              (require 'irchat-hooks)))

     (setq irchat-join-hook
           '(lambda (prefix rest)
     	 (cond
     ;;; do not greet people coming to channel #report
     	  ((and (not (string= prefix irchat-nickname))
     		(string= "#report" rest))
     	   t)
     	  ((and (string= "INSERT_YOUR_FAVOURITE_PERSON_HERE" prefix)
     		(string= irchat-current-channel rest))
     ;;; send the greeting as private message
     	   (irchat-Command-message prefix (format "Greetings %s" prefix)))
     	  (t nil))))




File: irchat.info, Node: Authors, Prev: Customizing, Up: Top

irchat.history, reporting bugs etc.
***********************************

The original Irchat was written by Tor Lillqvist
<tml@hemuli.tik.vtt.fi>, but the Irchat from those days is much
different from what it is now, Irchat is highly ... eh ...  dynamic
right now.

Thanks for developing are to nAm <kny@cs.hut.fi> and cletus
<jtp@cs.hut.fi> for listening luru's <luru@tolsun.oulu.fi> and
Kaizzu's ideas and implementing them.

After that Kaizzu <kmk@cc.tut.fi> and mta <mta@funet.fi> had their
cycle on development.

Then nAm took over again, until Tero Mononen <tmo@tekla.fi>
contributed his share and maintained the code for a couple of
years. At fall '94 mta rewrote the display-code and nAm added
compression for changes.  Tmo merged the changes and made some small
improvements and this is the result so far.

There is, undoubtedly, lots of bugs and unintended features left in
both the code and the documentation. We welcome any suggestions and
really appreciate nice hacks and bug fixes.

The bugs and comments should be send to irchat <irchat@cc.tut.fi>
which is mailing list for people interested in irchat. To join that
list send request to <irchat-request@cc.tut.fi>.


Tag table:
Node: Top1283
Node: Introduction1846
Node: Etiquette3293
Node: Overview6834
Node: Installing8640
Node: Using10032
Node: Commands16372
Node: Customizing20384
Node: Authors29548

End tag table
