TalkSoup
===============================================================================
TalkSoup is a fully-featured IRC client written with the GNUstep framework
===============================================================================
Copyright (C) 2003 Andy Ruder

  TalkSoup 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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

Comments are welcome.

===============================================================================
TalkSoup.app is a fully-featured IRC client which uses GNUstep base.  While
TalkSoup.app itself is just a very basic core which can simply pass messages
between bundles (plugins).

This distribution comes with:

Input Plugins:

  *NetclassesInput: an input plugin based on netclasses

Output Plugins:

  *GNUstepOutput: an output plugin based on gnustep-gui

Input Filters:
  
  *Highlighting: highlights keywords and nicknames and 
    handles highlighting tabs as well.  See the /highlighting
    command for configuration options. (Bundle must be loaded)

  *KeepAlive: sends a ping to the server every three minutes
    on every connection to keep you connected
  
  *DCCSupport: allows files to be sent and received from client
    to client.  There is no DCC chat support and probably never
    will be.  See /dcc command once the bundle is loaded for
    more information.

  Logging: allows a log of a connection to be made.  See the
    /logging command for more information (once the bundle
	is loaded).  Also see FAQ question 3.5 on using the logging
	support.
  
  MessageInTab: opens a new tab when someone private
    messages you

  Decolorizer: removes colors from incoming messages.

  Debold: removes bold from incoming messages

  Deunderline: removes underlining from incoming messages
  
Output Filters:

  *Colorizer: Lets you use %B for bold, %U for underline,
    %R for reverse, %O for clear all attributes, and 
    %C(0-15),(0-15) to set colors. (First number is the 
    foreground color, second number is the background color).

  Piper: Lets you pipe outgoing messages through arbitrary
    commands. See the /piper command when the bundle is loaded
    to configure.

* == Used by default

===============================================================================
Commands: 

/load <in/out> <bundle>: 
  Loads a input/output filter bundle named <bundle>.  If that bundle
  is already loaded, it will move it to the end of the list.

/unload <in/out> <bundle>:
  Unloads a input/output filter bundle named <bundle>

/loaded :
  Shows what bundles are currently loaded

/saveloaded :
  Saves the currently loaded bundles to the defaults so that
  the same ones will be loaded upon the next startup of 
  TalkSoup.app

/join <channel1>[,channel2,...] [password1[,password2,...]]
  Joins a channel (optionally 2 or more channels separated
  by commas with no space) with an optional password (or
  if there are multiple channels specified, then multiple
  passwords separated only by a comma)

/nick <nick>
  Changes your nickname to <nick>

/msg <nick> <message>
  Sends the private message <message> to the person named <nick>

/quit <message>
  Disconnects you from the currently connected IRC server.  If 
  <message> is specified, it will use that as the quit message.

/notice <nick> <message>
  Sends the private notice <message> to the person named <nick>
  Most of the time, you should send people regular messages using
  the /msg command.  However, in certain cases, you may want to
  use a notice instead.

/away <message>
  This command sets your away message if <message> is specified.  If you
  don't specify <message>, it will mark you as back.

/colors
  This simply explains to you the valid colors that other commands may
  ask you to use.

/ctcp <nick> <ctcp> [args]
  Sends the ctcp command <ctcp> with optional arguments [args] to
  the person with the nick <nick>.  CTCP messages are used for a
  lot of extensions to IRC such as DCC and getting information
  from another person's IRC client.

/version <nick>
  This is a sortcut for /ctcp <nick> VERSION, which, on most
  IRC clients, will return the person named <nick>'s IRC client 
  and version.

/clientinfo <nick>
  This is a shortcut for /ctcp <nick> CLIENTINFO, which, on
  most IRC clients, will return information on getting the
  IRC client that the person named <nick> is using.

/ping <nick> <argument>
  This is a shortcut for /ctcp <nick> PING <argument>.  With
  most IRC clients, the other client will respond immediately
  with a PING CTCP message with the same argument.  You can
  use this to see how lagged you are.

/userinfo <nick>
  This is a shortcut for /ctcp <nick> USERINFO.  On some
  IRC clients this will respond with information about the
  user named <nick>.

/topic <channel> [topic]
  This will set <channel>'s topic to [topic].  If [topic] is
  not specified, it will refresh the channel's topic.

/kick <channel> <user> [comment]
  This will kick the specified <user> out of a <channel>.  If
  [comment] is specified, it will be displayed to the user
  instead of the default message.

/raw <message>
  This command will send <message> to the server as it is, 
  no formatting or command substitution will take place on
  the string.

/encoding <encoding>
  This command changes the encoding for incoming and
  outgoing messages on that particular connection.  By not
  specifying <encoding> the command will list the available
  encodings.

===============================================================================
Commands specific to the GNUstep output plugin (GNUstepOutput)

/me <action>
  Sends an action to the channel, for example:
  
    /me runs around the channel screaming 'GNUstep rules'
  
  would print * <nick> runs around the channel screaming 'GNUstep rules'

/query <nick>
  Opens a new tab for a person named <nick>.  All of their private 
  messages will appear in there, and typing to the person in that tab
  will send them private messages.

/server <server> [port]
  Disconnects from current server and connects to <server>.  If
  [port] is unspecified, it defaults to 6667.

/close [name]
  This closes the tab named [name].  If you don't specify the name, it will
  close the current tab.

/clear
  Clears the text in the current tab.

/scrollback <characters>
  This sets how many characters your scroll-back buffer holds.
  This change will automatically be saved to the defaults.
  
===============================================================================
Notes about GNUstepOutput (default):
  
	* Double clicking a person in the user list in a channel will
	  open a query tab for them.
	
===============================================================================
Please read the INSTALL file for the details on installing TalkSoup.
The FAQ (Frequently Asked Questions) also covers many common questions
that TalkSoup users have.

===============================================================================
Special Thanks To:
  
  Luis Garcia Alanis <luis.garcia at mac.com>
    For his initial drive to make a GNUstep IRC client using netclasses
    and his first version of Charla.app
  Alex Perez <aperez at student.santarosa.edu>
    For his immense testing efforts and all his suggestions and
	he also drew the icon that is currently being used by the
	GNUstep output plugin right now.  Alex is also one of the 
	primary people behind making an OS X port possible.
  Lyndon Tremblay <humasect at shaw.ca>
    For his time and effort in both testing and making TalkSoup
	an icon.
  Gregory Casemento <greg_casamento at yahoo.com>
    For his tremendous work on Gorm, which made TalkSoup possible.
  Alexander Malmberg <alexander at malmberg.org>
    For his constant help, bug-fixes, and overall contributions
	to the GNUstep project. 
  
  Also, a big thanks goes out to: Nicolas Roard, Thom
    Cherryhomes, Tim Harrison, Ian Jones, Matt Rice, 
	and all the other people I probably forgot about
	who offered bug fixes, suggestions, and just took
	the time to compile and use TalkSoup.
    
===============================================================================
Copyright (C) 2003 by Andy Ruder <aeruder@yahoo.com>
	
