Written by Ronald van Loon, August 27, 1991 (IRCNICK : rvl)

[ PART THREE : CUSTOMIZING YOUR OWN ENVIRONMENT - VARIABLES AND DEFAULTFILES ]

Most of the information in this file can be obtained by issuing :

man irc 
(NOTE : does not work when using the irc-program !)

/HELP SET
/HELP SET <variable-name>

Prerequisites
=============

In this part, I will assume the following :

- You have read Part One and Part Two of this introduction, and you understand
  most of it ; you know how to deal with messages send to you, and how to have 
  conversations with people on channels.

- You know what environment variables are and how to set them ; if you don't,
  a brief recap of the procedure follows below - you should however, go out
  and read a book on UNIX.

  Issue the following command :

  echo $SHELL

  if the computer's response is :

  .../sh or : .../bash or : .../ksh

  (where ... is a directory name (usually /bin))

  then use the following :

  <VARIABLE_NAME>="<value>" ; export <VARIABLENAME>

  ---- Example :

  IRCNAME="Ronald van Loon" ; export IRCNAME 

  (This sets the variable 'IRCNAME' to the value 'Ronald van Loon' and makes
   its value available to all programs)

  In all (?) other cases, (.../csh .../tcsh etc.)

  setenv <VARIABLE_NAME> "<value>"

  ---- Example :

  setenv IRCNAME "Ronald van Loon"

  To make sure what you did was correct, issue the :

  echo $<VARIABLE_NAME>

  command, the computer's response should be the value you just gave it.

  This should be enough to help you understand, or in any case use the 
  information in the next section.

IRC II and Environment Variables
================================

IRC II will use the values of the following environmentvariables, if set :

IRCNICK : Specifies the nickname you will have when you initially start irc.
          You can change it afterwards, obviously, with /NICK. See also part
	  one of this tutorial.

IRCNAME : Specifies the name people will see when they issue a /WHO or /WHOIS
	  command. Useful for people who use other people's accounts, or in 
	  general to reflect the state of mind you are in today.

	  ---- Example :

	  $ IRCNAME='Crazy Harry' ; export IRCNAME
	  $ IRCNICK='rvl'         ; export IRCNICK  
	  $ irc

    IRC : *** Welcome to the Internet Relay Network, rvl

	  : /WHOIS rvl

    IRC : *** rvl is rvloon@131.211.145.35 (Crazy Harry) on channel *private*

	  ----

TERM    : Specifies your terminal type ; if this variable is set to the wrong
	  value, IRC may behave rather strange. Also beware that at some
	  systems IRC II tends to disturb certain settings on your terminal,
	  so your terminal may act strange after using IRC II.

HOME    : This tells IRC II where your Home directory is. (The directory where
	  your files are).

Note :

TERM and HOME are usually set when you login, so in most cases there's no need
to set them manually.

There are three other environment variables IRC uses, but those will be
mentioned at the appropriate places throughout this tutorial.

IRC II and Initialisation Files
===============================

When you use IRC II on a (semi)regular basis, you will discover that every
time you start the program you will issue the same initialisation sequence. 
If that is the case, I have good news for you : you don't have to do that
anymore ! IRC II will, at start up, load a file called ".ircrc" (full path:
$HOME/.ircrc). It will treat each line in that file as if you typed it
manually. For example, if the contents or your .ircrc file is :

.ircrc : /COMMENT This is definitely *NOT* a typical .ircrc file
.ircrc : /NICK rvl
.ircrc : /JOIN +my_channel

Obviously, the ".ircrc :"-bit should not be present in the file. What will
happen is the following :

IRC II loads the .ircrc file, executing your commands one by one :

The /COMMENT will be ignored, /COMMENT is typically used in .ircrc-files to add
comments to following lines. Second, the /NICK rvl line is read and executed,
thus setting your nick to 'rvl'. Last, you will join a channel called
'+my_channel', when the /JOIN-line is read and executed. NOTE : it is in
general not a good idea to set your nick in .ircrc files, as it makes using
IRC II less flexible. Use the environment variable IRCNICK instead, or use the
command-line option, described elsewhere.

The .ircrc file is a so-called defaultfile; you use it to tailor IRC II to
your needs ; you can, however, also create other files with IRC II commands in
them - 'batch files' - and use the /LOAD command.

     /LOAD <filename>      Loads the given file into irc, treating each line
                           as an irc command, just as if it were typed into 
			   the command line. (Actually, there's more than
			   meets the eye here, but I will postpone further
			   explanation until I go into ALIASes and such.).
			   IRC II provides a number of batchfiles, ready to
			   /LOAD. See also /HELP LOAD.

You can change where IRC II looks for files by setting the IRCPATH variable.
The value of this variable should be a colon-separated (:) list of directories,
in which your files are stored. 

Changing IRC II's behaviour
===========================

To make your life easier (or hopelessly complicated ;-) IRC II has about 543
different variables, all of which control different parts of IRC II.
Typically, you will store your favorite set of variable settings in your
.ircrc. You set, reset and unset variables with the /SET command :

     /SET                  Shows settings of all variables

     /SET <variablename>   Shows setting of <variablename>. It is also useful
			   to show settings of variables starting with a 
			   certain prefix.

     /SET -<variablename>  If <variablename> is a text (string) variable, it
			   will be set to the NULL string ("").

     /SET <variablename> <value>
			   Sets the value of <variablename> to <value>,
			   provided <value> is a valid value for this
			   particular variable.

Flavours of Variables
=====================

There are five kinds of variables:

Type      Ref.   Valid Values
=======   ====   =============================================

Boolean : BOOL : ON, OFF, TOGGLE
Level   : LVL  : PUBLIC, MSG, NOTICE, WALL, WALLOP, NOTE, CRAP
Integer : INT  : 0,1,2 ...
String  : STR  : <Any text string>
Hybrid  : HYBR : A combination of the four above.

Boolean
-------

This kind of variable is either ON or OFF. If you specify TOGGLE when
/SETting, it will go from ON to OFF or vice versa.

Level
-----

This kind of variable is used in situations where IRC II needs to classify
kinds of messages :

PUBLIC : Messages on a channel
MSG    : Private messages (MSGs)
NOTICE : Notices 
WALL   : WALL message (a message sent to everyone on IRC)
WALLOP : a WALLOP message (you only get those when you are an IRC Operator)
NOTE   : A (server) NOTE message 
CRAP   : Everything not covered by the six message levels above.
NONE   : None of the above.

You can also specify multiple levels, separated by spaces, or specify ALL, and
going down from there by preceding the levels you don't want included with a
minus-sign '-'. 

So,

ALL is equivalent to : PUBLIC MSG NOTICE WALL WALLOP NOTE CRAP

Example:

PUBLIC MSG NOTIC is equivalent to ALL -WALL -WALLOP -CRAP -NOTE

Integer
-------

Your average cardinal type.

String
------

A sequence of characters. For certain variables, certain restrictions apply.

Hybrid
------

A combination of all or any of the above.

General Purpose Variables
=========================

I will now describe the variables that are "General Purpose", which means that
they are not connected with other IRC commands, like /ON or /ALIAS. In the
following, I will not give many examples, as obviously a variable controls
certain conditions rather than reflecting an immediate change of environment.
Also note that the order in which variables are listed, is arbitrary.

AUTO_UNMARK_AWAY : BOOL 

ON : whenever this variable is ON, you will be automatically unmarked as being
     AWAY whenever you send a message to a channel or send a private message.
     (Equivalent to issueing the /AWAY command with no arguments)

OFF: Your AWAY-status remains the same, unless you issue the /AWAY command.

See also : /AWAY in tutorial one.

----

AUTO_WHOWAS : BOOL

ON : in cases where /WHOIS <nickname> would result in 

     <nickname>: No such nickname

     a /WHOWAS <nickname> will automatically be generated.

OFF: You will not be bothered by /WHOWAS's

----

BEEP - how to avoid or limit the amount of BEEPs (^G's) received
================================================================

BEEP : BOOL

ON : All BEEPs will be heard at the terminal
OFF: All ^G (Control-G) characters will be shown as reversed 'G's.

The setting of this variable does not affect the BEEPs generated by the
BEEP_ON_MSG variable and the BEEP_WHEN_AWAY variable.

----

BEEP_MAX : INT

This variable indicates the maxinum number of beeps you will hear for any
given message ; e.g. if this variable is set to '1', and a message sent to you
contains 10 beeps, only '1' will be heard.

0 : All BEEPs in the message will be heard
>0: See explanation.

----

BEEP_ON_MSG : LVL

The message in the class(es) indicated by this variable will generate an
audible beep on your terminal. For example, if you set this variable to MSG,
then every private MSG you receive will generate an audible BEEP.

----

BEEP_WHEN_AWAY : INT

When you've /AWAYed, a number of BEEPs will be generated upon receipt of a 
MSG.

0 : do not generate beeps
>0: specifies the number of BEEPs generated. 

----

MAIL : INT

By setting this variable, IRC, will tell you when new mail arrives - the
client must be installed properly for this to function. See also : part four,
in which the wonders of the Status Line are revealed.

0 : do not check for Mail
1 : when mail arrives, display the message : You have new mail. Also, an
    optional indicator in your status line will tell you how many messages
    you have in your mailbox.
2 : all the functionality of 1, but IRC will also show the three first lines
    of the message.

----

[ END OF PART THREE : PART FOUR WILL DEAL WITH THE REMAINING VARIABLES AND
		      THE STATUSLINE ]


