@main
Welcome to sirc v. $version, by orabidoo  (last changed: $date),
a small and simple IRC client written in perl.

To get help on a particular topic, type "/help <topic>"  (without the
<>'s or the ""'s)

List of topics for help:
ADMIN     ALIAS     AWAY      BYE       CD        CLEAR      CONNECT
CTCP      DCC       DEOP      DESCRIBE  DIE       DISCONNECT EVAL
EXIT      HELP      HOP       IGNORE    INFO      INVITE     JOIN
KICK      KILL      LEAVE     LINKS     LIST      LL         LOAD
LUSERS    MAP       ME        MODE      MOTD      MSG        NAMES
NEXT      NICK      NOTE      NOTICE    NOTIFY    OP         OPER
QUERY     PART      PING      REHASH    RPING     QUIT       QUOTE
SAY       SERVER    SET       SIGNOFF   SILENCE   SQUIT      STATS
SYSTEM    TIME      TOPIC     TRACE     UMODE     UPING      USERS
VERSION   WALLOPS   WHO       WHOIS     WHOWAS    WI         keys
newuser
@admin
Usage: ADMIN [<server>|<nickname>]
Asks for administrative details about the given server or the server
that <nickname> is connected to, or your own server by default.
@alias
Usage: ALIAS [[-]<aliasname> [substitution_text]]
Creates a substitution alias, or deletes one (preceding it with "-")
or shows one (giving the name only) or shows the whole list (without 
arguments).
Aliases get substituted non-recursively (i.e once substituted it doesn't 
check if it matches another alias). Substitution parameters are             
implemented, so $0 evaluates to the first argument, $1 the second, etc.,
and $0- all of them, $1- from the 2nd on, etc. $variable_name expands
to the contents of that variable, such as $nick or $talkchannel (see 
the PROGRAMMING docs for a list of these variables).
@away
Usage: AWAY [<text>]
Marks you as being away at the server-level, with the specified reason.
People will see the reason when they /msg you or /whois you. Without
arguments, marks you as being here again.
@bye
Usage: BYE [<text>]
Quits sirc, with an optional parting message.
@cd
Usage: CD [<directory>]
Changes the current directory if one is specified; tilde-expansion
is done. Then prints the current directory.
@connect
Usage: CONNECT <server1> [<port> [<server2>]]
Tells <server2> to try to connect to <server1> on port <port>.
Can only be used by IRC Operators.
@ctcp
Usage: CTCP <nick> <command> [<args>]
Sends a specially-coded message to another user's client, according
to the CTCP protocol (client-to-client protocol).
Useful values for <command> include: ACTION, CLIENTINFO, FINGER, TIME
USERINFO, VERSION.
@dcc
Usage: DCC <function> <arguments>
Handles direct connections to remote clients.
  DCC CHAT <nick>         - opens a direct connection for chatting,
                                use "/msg =<nick>" to send through it
  DCC RCHAT <nick1> <n2>  - renames a DCC CHAT
  DCC SEND <nick> <file>  - offers to send a file
  DCC GET <nick> [<file>] - starts getting a file
  DCC RENAME <nick> [<oldfilename>] <newfilename>
                              - renames a file before DCC GETting it
  DCC CLOSE <args>        - closes a DCC CHAT, GET or SEND;
                                <args> is CHAT, GET or SEND followed by
                                a nickname and an optional filename
  DCC LIST                - lists all your DCC connections
@deop
Usage: DEOP [<#channel>] <nick1> [<nick2> ...]
Removes channel-op status from the given users on the given channel,
or the current one if none is specified.
Can be shortened to D.
@describe
Usage: DESCRIBE <nick>|<#channel> <action>
Sends an action to the specified person or channel. This makes use
of the CTCP protocol.
Can be shortened to DE.
@die
Usage: DIE
Causes your current server to exit.
Can only be used by IRC Operators, and doesn't seem to work anymore.
@eval
Usage: EVAL <perl code>
Evaluates the given perl code. Useful for simple calculations like
/eval print 9+34, "\n";
Also useful to add or remove hooks on the fly.
Modify program variables at your own risk :)
@exit
Usage: EXIT [<text>]
Quits sirc, with an optional parting message.
@help
Usage: HELP <topic>
Gets help on the specified topic, as you can see.
@hop
Usage: HOP
Leaves the current channel.
@ignore
Usage: IGNORE [-][<pattern>]
Lets you ignore messages and notices from a list of users.
Without arguments, shows you the current ignorance list.
With a "-" as single argument, clears it.
If you specify a pattern, it will be added to the list, or removed
if you precede it with a "-".
Patterns match only a nick, or a user@host, or a nick!user@host,
and can include the "*" wildcard.
Can be shortened to IG
Examples: /ig UgLyNiCk
          /ig loser@*stupid.site.edu
@info
Usage: INFO [<server>]
Shows server-generated information about IRC, creators, debuggers...
@invite
Usage: INVITE <nick1> [<nick2> ... ] [#channel]
Invites the given users to the channel. If the channel is not specified,
you current channel is used.
Can be shortened to INV or to I.
@join
Usage: JOIN <channel_list> [<key>]
Joins channels. To join more than one at the same time, separate
them with "," but no spaces.
Channel names begin with # or & and may contain just about anything;
an initial # will be added automatically if the specified channelname
does not start with a # or &.
Channel names beginning with the character '&' are local to your server.
If the specified channel does not already exist, it will be created.
Joining a channel does not make you leave any other one.
Joining a channel when you're already in it makes it the 'current' one.
Can be shortened to J.
@kick
Usage: KICK [<#channel>] <nickname> [<reason>]
Kicks the specified user off a given channel. Only channel operators
can use this command. The channel defaults to your current one, and
the reason defaults to your own nickname.
Can be shortened to K.
@kill
Usage: KILL <nickname> <comment>
Removes a user from IRC. Can only be used by IRC Operators.
@leave
Usage: LEAVE <#channel>
Leaves the specified channel.
@links
Usage: LINKS [[<server>] <pattern>]
Shows the list of servers connected to your current IRC network.
If a pattern is specified, shows all the servers that match it.
If a server is specified, it is asked for the information.
@list
Usage: LIST [<#channel>[,<#channel> ...]]   or
       LIST [-min <min>] [-max <max>] [<pattern>]
Shows the name, number of users and topic for the specified channels,
or for all those having at least <min> users, at most <max> users,
and matching the pattern <pattern>. Only "*" wildcards are allowed
in the pattern.
Note: unless you specify *one* channel, this command is very slow and
will often cause the server to drop your connection on large networks.
@ll
Usage: LL
Shows the list of users on your current channel in the /who format.
@load
Usage: LOAD <filename>
Loads a sirc script, which is actually a file of perl code, into
sirc's context. Tilde-expansion is done on the filename.
Please note that these scripts must be written for sirc - there's
NO way an ircII script will work with sirc.
@log
Usage: LOG [on|off]
Turns logging ON or OFF, or shows the current status.
@logfile
Usage: LOGIFLE [<filename>]
Shows the current logfile name, or sets one.
@lusers
Usage: LUSERS
Gives a brief listing of the number of visible users, invisible
users, servers, and operators.
@map
Usage: MAP
Gets a map of the servers and how they are linked. This only works
on Undernet.
@me
Usage: ME <action>
Does an action on your current channel. This makes use of the CTCP
protocol.
@mo
Usage: MO <mode changes>
Short for MODE #your_current_channel <mode changes>
@mode
Usage: MODE <#channel> [+|-]<modechars> [<parameters>]
   or: MODE <#channel> [+|-]b [<nick>[!<user>[@<host>]]]
   or: MODE <nick> [+|-]<umodechars>
Changes a mode on a channel where you are, or your personal mode.
For channel modes, the following are available:
 i (invite-only)         k <key> (you need the key to join)
 l <number> (limited)    m (only ops and +v people can talk)
 n (no msgs to the #)    o <nick> (makes nick operator)
 p (private)   s (secret)   t (only ops can change the topic)
 v <nick>  (lets nick talk in a +m channel)  b <pattern> (ban)
For user modes, the following are available:
 o (irc operator)        w (receive wallops)
 s (get server notices)  i (be invisible)
See also: MO
@motd
Usage: MOTD [<server>|<nickname>]
Displays the message of the day for the named server, or the server
that user is using, or your own server.
@msg
Usage: MSG <nick>|<#channel>|=<nick> <message>
Sends a private message to the given user, or a line of text
to the given channel.
If the nickname is preceded with a "=", the message will be sent over
a DCC CHAT connection to that user, assuming there is one.
Can be shortened to M.
@names
Usage: NAMES [<#channel>]
Shows a list of the users on the specified channel, or of all
the visible users on IRC.
@next
Usage: NEXT
Switches to the next channel, if you're on more than one.
@nick
Usage: NICK <nickname>
Changes your nickname to the specified one. Nicks can have at most
9 characters.
@note
Accesses the NOTE system. I'm *not* going to type the help for that
thing again, if you don't know how to use it, don't bother :P
@notice
Usage: NOTICE <nickname>|<channelname> <text>
Sends a notice to the nickname or channel specified. The difference
with MSG is that you're guaranteed that you won't get any automatic
response.
Can be shortened to NO.
@notify
Usage: NOTIFY [[-]<nickname> ...]
Warns you whenever any of certain list of nicknames sign on or off.
Without arguments, tells you which ones are on at the moment.
Giving nicknames as arguments adds them to the list, or removes them
if you specify a - before the nickname.
If you specify a - with no additional parameters, your notify list
is cleared.
Can be shortened to N.
@op
Usage: OP [<#channel>] <nick1> [<nick2> ... ]
Gives channel-op status to the given users on the given channel,
or the current one if none is specified.
Can be shortened to O.
@oper
Usage: OPER <nickname> <password>
Lets you becomes an IRC Operator on your current server.
You need to have an O:line for this, and to know the password.
@query
Usage: QUERY [<nick>|<#channel>]
Starts sending lines to <nick> or <#channel> by default, instead of
sending them to your current channel. If you don't specify a nick,
stops your current query.
Can be shortened to Q.
@part
Usage: PART <#channel>
Leaves the specified channel.
@ping
Usage: PING <nickname>|<channelname>
Sends a CTCP ping to the given nickname or channel. You're likely
to get a CTCP PING reply with the number of seconds it took for the
message to get to the user's client and back.
Can be shortened to P.
@quit
Usage: QUIT [<text>]
Quits sirc, with an optional parting message.
@quote
Usage: QUOTE <text>
Sends the text directly to the server.
@rping
Undernet oper-only command, for newer 2.9 servers.
@rehash
Usage: REHASH
Forces the server to re-read its configuration file.
@say
Usage: SAY <text>
Says the text on the current channel.
@server
Usage: SERVER [[<nick>@]<servername>|0 [port [password]]]
Connects to the given server (and the given port if you specify it,
and with the given password if you specify it, with the given nick
if you specify it).
The special values '0' means "your original server"; the value '1'
means "the last server you connected to".
Without arguments, tells you what your current server is.
Example: /server newnick@irc.sdsc.edu:6666
@set
Usage: SET [[-]<variable> [value]]
Sets a variable, or unsets it (if preceded with a '-'), or shows one
(giving a name only) or shows them all (without arguments).
Do a /help set <variable> for help on specific variables.
The list of SET variables is:
CTCP       CTRL_T     EIGHT_BIT  FINGER     IRCNAME    LOADPATH   
LOCALHOST  PRINTCHAN  PRINTUH    SENDAHEAD  USERINFO
Note that sirc scripts may add their own SET variables.
@set ctcp
Sets the level of CTCP support in sirc.  The possible values are:
  none     --  not process CTCPs at all, treating them like text
  noreply  --  process CTCPs, never reply automatically to them
  noflood  --  process CTCPs, reply to up to 2 every 10 seconds
  all      --  process CTCPs, reply always (if appropriate)
The default is "noflood".  "on" is synonymous with "noflood", and
"off" with "noreply".
@set ctrl_t
Sets the string generated by the ^t key; the default is "/next".
@set eight_bit
Sets whether sirc will support eight-bit clean data (supposed to be
encoded as iso-latin-1, aka iso_8859_1).  The possible values are:
  off      --  map special chars to the closes US-ASCII equivalent
  on       --  pass all characters
The default is "off".
@set finger
Sets the CTCP finger reply.
The default is "keep your fingers to yourself", or whatever is in
the $IRCFINGER environment variable.
@set ircname
Sets the IRCNAME for the next connection.  The default is "sirc user"
or whatever is in the $SIRCNAME or $IRCNAME environment variables.
@set loadpath
Sets the path in which sirc looks for scripts to /load; it is 
formatted as a list of pathnames separated by colons, and ~'s are
allowed.
@set localhost
Sets the IP address to connect from, for machines with more than one
IP address (virtual hosts).
@set printchan
Sets whether sirc will print the channel name next to channel output
for the current default channel.  The possible values are:
  off      --  print it only when it's not the default channel
  on       --  print it always
The default is "off".
@set printuh
Sets whether sirc will print the user@host next to people's nicks in
various situations.  The possible values are:
  none     --  never print the user@host
  some     --  print them in private messages and a few other cases
  all      --  print them in all cases
The default is "none".  "off" is synonymous with "none" and "on" with
"all".
@set sendahead
Sets the amount (in bytes) by which DCC SEND will send ahead of the
acknowledged amount.  A value of 0 reverts to the old ircII-like
behavior; higher values speed up the transfer, although rising it more
than like 8k or so hardly makes a difference, and setting it higher
than what your Unix kernel is willing to buffer would be a bad idea.  
The default value is 4096.
@set userinfo
Sets the CTCP userinfo reply.
The default value is whatever is in the environment variable $USERINFO,
or "yep, I'm a user".
@signoff
Usage: SIGNOFF [<text>]
Quits sirc, with an optional parting message.
@silence
Usage: SILENCE [+|-]<nick>|<pattern>
Silences (ignores at server-level) the specified nick or pattern, or
removes the silencing. Works only on Undernet.
@squit
Usage: SQUIT <servername>
Causes the named server to drop the connection to its uplink.
Can only be used by IRC Operators.
@stats
Usage: STATS [c|h|k|i|l|m|u|y] [<server>]
Shows server configuartion and usage statistics.
c - C and N lines       h - H and L lines     k - K lines
i - I lines             l - info passed       m - commands used
o - O lines             u - uptime            y - connection classes
w - connection stats (Undernet only)
@system
Usage: SYSTEM <command>
Executes an external Unix command, stopping all the IRC functions
in the time it takes to execute it. The command's output is sent
to the screen, and if the command reads its input, keyboard lines
go to it. Useful for commands that print something and exit
immediately, such as "ls" or "from", but it can also be used with
interactive (but not full-screen) programs like "mail", if the whole
thing is done in less than one minute or so.
@time
Usage: TIME [<servername>|<nickname>]
Shows the time it is according to your server, or to the server
specified, or the user's server.
@topic
Usage: TOPIC [<#channel>] [<text>]
Sets the topic on the given channel, or shows the existing topic.
The channel defaults to your current one.
Can be shortened to T.
@trace
Usage TRACE [<servername>|<nickname>]
Shows the list of servers between your current server and the
specified one (or the one the specified user is on), or shows the
current connections on the local server if nothign is specified.
@umode
Usage: UMODE [+|-]<umodechars>
Changes your personal mode. The following are available:
 o (irc operator)        w (receive wallops)
 s (get server notices)  i (be invisible)
@uping
Undernet oper-only command, for newer 2.9 servers.
@users
Usage: USERS [<server>]
Would show the users logged into the machine where the specified
server is running, if it wasn't disabled everywhere... but it is.
@version
Usage: VERSION [<server>]
Shows the version number of the client, and of the the specified,
(or the one you're using, by default).
@wallops
Usage: WALLOPS <text>
Sends a message to all the IRC Operators. Has been disabled or
restricted to IRC Operators just about everywhere.
@who
Usage: WHO <nick>|<#channel>|<pattern>
Shows "short" information on the given user or on all the users
on the given channel (only the non-invisible ones if you're not
in there too), or on all the users on irc matching the given
pattern. "*" and "?" wildcards are allowed.
Examples:   /who Someone
            /who *ens.fr*
            /who #root
@whois
Usage: WHOIS [<server>|<nick>] <nick1>[,<nick2>,...]
Shows detailed information on the given user(s), asking the given server
for it.
Can be shortened to W.
See also: WI.
@whowas
Usage: WHOWAS <nick> [<count>]
Shows information about the given nickname if it was used recently.
If <count> is specified, shows at most <count> entries.
@wi
Usage: WI <nick>
Shows WHOIS information for the given user, but asking their
server for it, which displays idle time.
Short for /WHOIS <nick> <nick>.
@newuser
IRC is an international multi-user chat network organized in channels;
each IRC user is known by a nickname. Communication with other users
is either by private messages or by talking in channels.

All sirc commands begin with a /, and anything that does not begin
with a / is sent to your current channel.

To get started, it will be useful to check the help on the following
commands:  NICK, QUIT, LIST, WHOIS, MSG, JOIN, HOP, LL, keys
@keys
If you are using sirc with the full-screen interface (ssfe), these
editing keys are recognized (with ^key meaning Control-key):
  ^a              - go to the beginning of the line
  ^b, left arrow  - move left a letter
  ^d              - delete the character under the cursor
  ^e              - go to the end of the line
  ^f, right arrow - move right a letter
  ^h, del         - erase the previous character
  ^i, tab         - go to next /msg in msg history
  ^j, ^m, enter   - send the line
  ^k              - erase from the cursor to the end of the line
  ^l              - redisplay the status bar and the command line
  ^n, down arrow  - go to the next line in command-line history
  ^o              - type the last msg you got on the command line
  ^p, up arrow    - go to the previous line in command-line history
  ^t              - switch to the next channel you're on
  ^u              - erase command-line
  ^v              - insert the next character literally
  ^x b            - toggle beep on or off (off by default)
  ^x c            - exit the front end, back to the unix prompt
  ^x h            - toggle hold mode
  ^y              - yank line in the history without sending it
  ^z              - suspend sirc - you come back with 'fg'
