Enhancements to GammaTech IRC written by:

Greg Spath
http://www.epix.net/~gspath
gspath@epix.net
Wease on EFnet

To Install:

1)  The 'joinlist' functions require the external REXX library, 
    REXXLIB, available from quercus systems.  You can find this
    library at:

	http://www.quercus-sys.com/rxlbdemo.htm

2)  Unzip gscr20.zip to the same directory as gtirc.exe

3)  Start Gammatech IRC

5)  Under the Options menu, select Startup
	for startup /cmd, /run gstart
	for input msg script, gin.cmd
	for output msg script, gout.cmd

6) exit Gammatech IRC and start again.

7) all of the new functionality will be active!  Type /set to get a list
   of all the variables used by the script.  Type /alias to see some of the
   aliases already defined.	



---------
/alias [/command] [parameters] [+ parameters2] [+ parameters3] ...

	sets an alias for /command.
	parameters can be any parameters passed to the command.
	You can set an alias to represent more than one command
	by separating each command with a '+'
	
	Special variable parameters can be used:

	$0 =  All words typed after the alias
	$1 = first word typed after the alias
	$2 = second word typed after the alias
	$3 = third word typed after the alias
	$ch = window title
	$me = your current nickname
	$$ch = literal $ch
	$$me = literal $me
	$$0 = literal $0
	<< = backspace (use this to add punctuation)
	<<< = literal <<

	Typing /alias alone lists all currently set aliases.

	examples: To set up an alias to run an external program
		  called 'heart':
		  
		  /alias /heart /pipe heart $0

		  To set up an alias to do a /whois and a /ping on 
                  a specified nick:

		  /alias /whoping /whois $1 + /ping $1
		  	
		  
		  Calculate a formula:

		  /alias /calc /exec rexxtry say $0

		
		  A fast excited greeting:
		  /alias /greet Hi $1 << !!!!!!!

		  
	**if /command exists in the list, it is changed, not added.


---------
/code expression
	
	performs a direct interpretation of expression.

	example:
		/code ircrexxdisplay('hello', win)
		would display 'hello' in the current window.

		/code for i=1 to 10;ircrexxdisplay(i, win);end
		would display the numbers 1 to 10 in the current window.


---------
/toggle variable

	used to toggle values from 'ON' to 'OFF' and 'OFF' to 'ON'  Useful
	command to attach to a GTIRC's command buttons.



---------
/display text
	
	displays the desired text in the window.  This is useful for
	feedback in aliases and such.


---------
/phrase searchphrase, command [+ command2] [+ command3] ...

	similar to /alias, but triggered by messages to you or
	to a channel you are on.  Searchphrase can consist of
	more than a single word, so you MUST separate searchphrase
        and command with a comma.

	command can be any valid set of characters that can be used
        when typing IRC text or / commands.  Special characters can
	be used for the commands, similar to the way they are used in
	/alias:

		$ch = the name of the channel the match appeared on
		$ni = the nick of the person who typed the match
		$me = your current nick
		$0  = all text following a matched phrase	


	typing /phrase alone lists all phrases.


	Examples:  if you would like to display a message and kick a 
	           person from a channel anytime they say 'coors light'

		   /phrase coors light, Did I hear $ni say the 'C' word
                   on $ch + /kick $ni That's not beer!


		   An easy way to say hello to somebody:
		
		   /phrase hi wease, Hi $ni :)

		   A way to set up automatic bot-type commands:

		   /phrase #figlet, /rexx figlet $0


---------
/add id hostmask [actions]

	adds a hostmask to the joinlist.  The actions specified
	are carried out if you are a channel operator and any 
	nick with the specified hostmask joins the channel.
	If the id already exists in the list, then existing
	entry is changed, not added.

	hostmask is of the form:
		nickname!username@host
		(i.e. Wease!gks@here.epix.net)

	The wildcard, '*' may be used in the hostmask.
		example: *!*gks@*.epix.net will be carried out if
			 Wease from the above example joins the channel.

	Actions are a combination of:
		+o Make the person who joined an operator
		+k Kick the person who just joined
		+b Ban and Kick the person who just joined
		+i Ignore the person who just joined...and let them know.
		+g greet the person with the current greet message
		+p private greet the person with the current greet message.
		+n notice the person with the current greet message
		+scriptname runs the specified external routine, as 
		   follows: /scr scriptname nick

	It is best to use +g +p or +n with a single global hostmask. 

	Examples:
		/add Wease *!*gks@*.epix.net +o  (makes 'Wease' an Op on join)
		/add Everyone * +g  (Greet everybody if greets are enabled)
		/add Wease *!*gks@*.epix.net +b  (since 'Wease' already exists
                                                  in the joinlist, his entry
                                                  is changed, not added)




----------
/change id [joinactions]

	changes the join actions for the specified already existing
	id in the join list.  If joinactions is omitted, then all
	actions are cleared for that id.

	Example:
		/change Wease +o +p
		changes the existing entry for Wease to make him a channel op
                as well as receive a private greet message on join.



----------
/remove id

	removes the joinlist info for the specified id



----------
/removealias /alias

	removes the specified /alias from the list



----------
/joinlist

 	displays the entire join action list created using /add



----------
/last [number]

	displays the last number messages to you.  If number is omitted
	then the entire message buffer is displayed.

	See the next section for info on controlling the
	message buffer.


----------
/set [variable] [value]

	sets script variable to value.

	/set lists all variables used in this script.
	/set variable lists the current value of specified variable


	Variables used in this script:

	Variable:     Possible Values:       Use:
	---------     ----------------       ----
	configfile    any valid filename     /save command writes to this file
	autorun	      any valid filename     called from configfile to run any
                                             commands in the file specified
	onjoin	      any valid filename     script to run when you join a channel
        onleave       any valid filename     script to run when you leave a channel
        kickmirc      [on|off]               turn on to kick ppl using mirc colors
	buffer	      positive integer       The size of the message log buffer
        rollbuffer    [on|off]               determines whether the message log
                                             buffer should automatically 'roll'
                                             when full.  Best to leave off for 
                                             large buffers (>20)  If off, a 
					     message is displayed when the 
                                             buffer is full.
        log           [on|off]               set on to log incoming messages 
                                             to you
	logme         [on|off]               set on to log messages originated
                                             by you
        nummsgs       positive integer       the number of messages in the buffer
        joinactions   positive integer       the number of join action items
        aliases       positive integer       the number of aliases set
        join	      [on|off]	             set on to enable all join actions
	greet         [on|off]               set on to enable autogreet message
        greetscr      [on|off]               set on to enable autogreet scripts
	greetmsg      text                   the autogreet message
        onphrase      [on|off]	 	     set on to enable phrase searches
        phrases	      positive integer       the number of phrases to searech
        noidle        [on|off]               set on to enable anti-idle msgs
        idlespeed     positive integer       anti-idle message cycle time.  Higher
                                             number is slower.  3 is a good value
        idlemsg       text                   message displayed when noidle is on.


	greetmsg can contain the following special characters:
		$ch The name of the current channel
		$ni The nickname of the person who joined.

	Example greetmsg:
		/set greetmsg Hi $ni -- Welcome to $ch
		
		would display:

		Hi Wease -- Welcome to #OurPlace

		if 1)  greet = on
		   2)  a hostmask used by 'Wease' is set to +g +p or +n
		   3)  'Wease' joins a channel you are on (#OurPlace).


----------
/savemsgs [filename]

	saves the current message buffer to filename.  If no filename is
	given, the messages are saved to "msgsave.txt"


----------
/exec [external command]

	Show the output of an external text-based OS/2 program in the 
     	current window.  This only displays the output, and does not
 	send it to the IRC server.

	Example:
		/exec dir
		would display a directory listing to the current window.


----------
/pipe [command]

	sends the output of an external text-based OS/2 program to the
      	current channel or query for all to see.

	Example:
		/pipe heart SomeGirl
		would display the output of heart.cmd to the current
                channel or query.	


----------
/save

	saves the current environment to the file specified by the
	configfile variable.  See /set for info on setting configfile.


----------
/init

	Reads all settings from configfile and initializes the external
	3rd party REXX library used for grepping hostmasks.


----------
/start program [parameters]

	run an OS/2 program...either text mode or PM based


----------
/calc expression

	show the interpretation of a REXX expression.

	example:  /calc  2 * 10 / 5
                  would display 4

		  /calc right('this is a test', 4)
		  would display test 