Visual IRC '96 0.15
===================

Yo people. There currently isn't any real documentation on this thing (apart
from what's in this file), but you should find it totally self-explanatory. If
there's something you don't know how to do, write to me, and I'll make it
easier in the next version. ;) I have knocked up a little document on ViRC
'96's DDE interface, which allows it to be controlled from other applications.
It's in the file VIRCDDE.TXT, included in the ZIP.

Current major features include:

 - easy-to-use interface
 - full ircII attribute support (bold, italic, and underline)
 - coloured events for easy viewing and differentiation
 - multiple simultaneous server connections
 - IDENTD server
 - Finger server
 - Finger client
 - port scanner
 - DCC chat
 - DCC send with send-ahead extension
 - web hyperlinks
 - powerful, very easy-to-use userlist support
 - right-click context menus
 - neat graphical touches everywhere (e.g. server transmit/receive lights)
 - change colours and fonts in most screen areas
 - awesome XDCC offer support
 - SOCKS support for accessing external IRC servers through a firewall
 - server hierarchical links view - see how the servers on IRC are linked to
   each other, and find the closest server to you for optimal speed
 - comprehensive WHOIS dialog - displays information on any user on IRC, and
   allows them to easily be added or removed from the userlist, all from one
   dialog
 - channel box
 - ignore list
 - support for all server-side ircII commands
 - comprehensive extended command set (e.g. /wall, redirection commands)
 - support for TDCC file transfer protocol (3x faster)
 - lots more besides!!

What masks mean
===============

Masks are required in several places, for example, in the userlist. The mask
is in the form nick!user@host, and may include * or ? wildcards. For example,
a mask of *!*megalith@*demon.co.uk means a nickname of * (any nick), a username
of *megalith (allowing for megalith, or ~megalith if I'm not identd verified
for some reason), and a hostname of *demon.co.uk (allowing me to log in from
jimc.demon.co.uk, or, say, refresh.demon.co.uk).

What the userlevels mean
========================

Using the userlist feature should be self-explanatory. Adding and removing
masks should be easy (see "What masks mean" above). In fact, when you add an
entry to the userlist, you may enter a nick only (strongly unrecommended), a
hostname (to include the whole site), an email address, or a complete mask, and
ViRC '96 will fill in anything you haven't entered with * wildcards. The
meaning of the levels are as follows. Note that new levels may be added in the
future.

        Userlevels      0 - Normal
                        1 - User is automatically opped when he/she joins
                            the channel

        Banlevels       0 - Normal
                        1 - User is automatically banned and kicked when
                            he/she joins the channel

        Protlevels      0 - Normal
                        1 - User is automatically unbanned when he/she is
                            banned

It's possible to see at a glance the levels of everyone in your userlist. If
the user has a userlevel, a green U will appear to the left of the mask. If
the user has a banlevel, a red B will appear, and if they have a protlevel, a
blue P will appear.

Attribute support
=================

ircII-compatible attributes may currently be entered in the server and channel
windows, although not yet in the DCC Chat windows. Ctrl+B means bold, Ctrl+U
means underline, and Ctrl+V means italic (although this doesn't quite work yet,
as the clipboard contents are pasted in as well as the italic character ;).

The channel box
===============

Bring up the channel box by clicking on the odd shapes-in-a-circle button in
the server notices window (I'll design a new icon when I have time). The box
is divided into two folders: favourite channels, and recently accessed
channels. The recently accessed channels folder is maintained automatically,
and contains the last 40 channels accessed. Just click on a channel icon and
press Join to join it. The favourites folder is user-maintainable. Just enter
a name in the edit box and press Add to add a channel icon. Click on a channel
icon and press Delete to delete it.

There's a quick way of copying a channel from the recent folder to the
favourites folder. Go to the recent folder, click on the channel you want to
copy, go to the favourites folder, and simply click Add.

File transfer
=============

DCC send-ahead is supported. This is similar to (and compatible with) mIRC's
FastDCC support, only it uses a larger buffer so is probably faster. You should
find you get faster transfers with any other clients with send-ahead enabled,
but I'd be interested to hear your success/failure stories.

TDCC file transfer, compatible with 16-bit ViRC, IaIRC and a couple of others,
is now in. TDCC should transfer files up to 3 times faster than regular DCC,
especially over slow links.

SOCKS support
=============

V96 supports IRC access over a SOCKS proxy/firewall. DCC does not work over a
SOCKS proxy, and never will - you cannot create listening sockets over SOCKS.
Period. No SOCKS IRC client will ever support DCC.

The port scanner
================

Use the port scanner to find out, for example, what ports an IRC server accepts
IRC connections on. To probe dismayl.demon.co.uk for IRC ports, for example,
enter dismayl.demon.co.uk in the host field, 6660 in the from port field, and
6669 in the to port field, and press Scan. A port scan is quite slow, and can
take up to one or two seconds per port.

IDENTD server
=============

V96's IDENTD server returns WIN32 as the system ID, in accordance with the RFC.
If some servers reject this, let me know, and I'll reset it to UNIX.

Unobvious commands
==================

ViRC '96 now supports all server-side ircII commands (with the exception of
/list, which seems flaky sometimes). This basically means it does everything
you're familiar with, with the exception of NOTIFY, which will come shortly.
Here, I detail new commands in ViRC '96, or commands only found in ircII
scripts (not in the stock ircII), or commands that differ in syntax from ircII.

<>'s around a parameter means it is compulsory, [] means it is optional.

/server - Change or connect to a server
---------------------------------------

Usage: /server <server>[:port]

Note that in some other clients you separate the server and the port with a
space, not a colon. I should add support for both in a future version of V96.

/rctcp - Send a CTCP reply
--------------------------

Usage: /rctcp <nick> <text>

There is no simple way to do this in ircII. Sends, for example, a version reply
to a nick.

/umode - Change personal user mode
----------------------------------

Usage: /umode <mode>

In ircII you would do "/mode mynick mode", in V96 you do "/umode mode".

/mci - Multimedia stuff
-----------------------

Usage: /mci <mci command>

For example, "/mci play c:\windows\media\ding.wav" will play that sound file.

/xdcc - Offer XDCC list to current channel
------------------------------------------

Usage: /xdcc

/clear - Clear output buffer
----------------------------

Usage: /clear

Clears the contents of the window the command is entered in (either a server
window or a channel window).

/wall - Send a message to all channel operators
-----------------------------------------------

Usage: /wall <text>

Sends text to all other operators on the channel. You don't have to be an op
to use this command, but you do have to be an op to see other people's walls.

/op - Op some nicks
-------------------

Usage: /op <nick1> [nick2...]

/op - Deop some nicks
-------------------

Usage: /deop <nick1> [nick2...]

/useradd - Add someone to your userlist
---------------------------------------

Usage: /useradd <user> <userlevel> <banlevel> <protlevel>

Adds user to the userlist with the specified levels. User can be in the form of
a nick, a mask, a hostname, or an email address.

/ignore - Ignore someone
------------------------

Usage: /ignore [user] < [[-]public] [[-]msg] [[-]ctcp] | [[-]all] | [-] >

Ignores or unignores a user. User can be in the form of a nick, a mask, a
hostname, or an email address. Specifying public as the parameter ignores all
channel messages from user, msg all private messages, ctcp all CTCPs.
Specifying all or no parameters at all ignores everything from user. Putting -
in front of each parameter reverses the effect, e.g. -public unignores channel
messages from user, and so on, and - unignores everything from user.

/wii - WHOIS with idle
----------------------

Usage: /wii <nick>

Gets user info on nick (as with regular /whois), but queries the user's server
for their idle time as well.

/tdcc - TDCC file transfer
--------------------------

Usage: /tdcc send <nick> [filename]

Sends filename to nick using the TDCC protocol (the other user must be using
ViRC or IaIRC for this to work). If filename is not specified, you will be
prompted to select the file from a list. For non-ViRC clients, use /dcc send
instead, which is slower but compatible with other clients.

Redirection stuff - RLM, RLN, RLP, WLM, WLN, WLP, TLM, TLN, TLP, KLM, KLN, KLP
==============================================================================

/rlm, /rln, /rlp - Redirect last (m)essage, (n)otice or ctc(p) respectively
----------------   to channel

Usage: /rl<m|n|p>

Example: If blah /msg'd you with "hello" and you typed /rlm, you would
automatically quote what blah /msg'd to you to the current channel.

/wlm, /wln, /wlp - Wall last (m)essage, (n)otice or ctc(p) respectively
----------------   to channel

Usage: /wl<m|n|p>

Example: If blah /msg'd you with "hello" and you typed /rlm, you would
automatically quote what blah /msg'd to you to all ops on the current channel.

/tlm, /tln, /tlp - Set channel topic to last (m)essage, (n)otice or ctc(p)
----------------   respectively

Usage: /tl<m|n|p>

Example: If blah /msg'd you with "hello" and you typed /rlm, you would
automatically set the channel topic to what blah /msg'd to you.

/klm, /kln, /klp - Kick user, with last (m)essage, (n)otice or ctc(p)
----------------   respectively as the kick reason

Usage: /kl<m|n|p> <nick>

Example: If blah /msg'd you with "hello" and you typed /klm xyz, you would
automatically kick xyz with what blah /msg'd to you as the kick reason.
