Current Features present in Zipper! as of 09/30/97

IRC Commands Supported:

	/action		: send an action to a channel
	/alias 		: create command aliases 
	/ban   		: ban a user from a channel
	/chat  		: initiate a DCC chat with another user
	/clone 		: create a clone of zipper to connect to another server
	/ctcp  		: send a CTCP message to another user
	/describe	: sends a /action to a user
	/disconnect	: disconnects you from and IRC server
	/echo		: echo a string to the server window
	/edit		: edit system settings
	/ignore		: ignore a user
	/irccommand	: execute a string as an IRC command
	/join 		: join a channel
	/kick		: kick a user from a channel
	/list		: get a channel list from the IRC server
	/load		: load customized settings
	/me		: a synonym for /action
	/mode		: set user/channel modes
	/modify		: activate list editing
	/msg		: send a private message to another user
	/names		: get a list of nicks on a channel
	/nick		: change your nickname
	/notice		: send a notice
	/notify		: add or remove a notify list entry
	/part		: leave a channel
	/play		: play a file to a channel (unimplemented)
	/query		: open a private message window for another user
	/quit		: exit IRC
	/quote		: send a string directly to the server
	/recycle	: reload the current user settings
	/rctcp		: generate a CTCP reply string
	/save		: save current settings
	/say		: send a message to a window as if typed
	/server		: change servers
	/send		: send a file to someone via DCC
	/set		: set a user variable
	/topic		: set the channel topic
	/whois		: get information about a user
	/who		: get a list of users

	There are also a number of alias predefined for some of these commands.  Issue a "/alias"
	command to see the current list OR "/edit alias" will also work.


Unsupported or Unlisted Commands:

	IRC commands which are not listed may or may not be fully supported depending on the 
	nature of the command.  The command processor attempts to locate the command internally,
	failing that, it looks for and alias, failing that, the command is passed directly
	to the server as-is.


	
User List
	
	Zipper! supports the notion of leveled users.  That is a user may be assigned a certain
	level and as such may be entitled to priviledges encoded within Zipper!  Users are 
	defined by a level and a user@host type notation that conforms to the user@host system
	in use by the IRC servers.

Server List

	Zipper! currently supports a small server list comprised of the the server name and port 
	number.  Grouping may be added later

Channel List

	Zipper! supports a user definable "frequent" channels list.

Notify List

	Zipper! supports a user definable notify list which can be accessed by either the /notify
	command or by the notify list editor.

Ignore List
	Zipper! supporst an ignore list system that is accessible via the /ignore command
	or the ignore list editor.  The ignore list supports variable ignorance...meaning
	that you can selectively the messages a user sends.  Ignore supports channel, private
	message, notice and CTCP messages.



CTCP
	CTCP's are implemented as a COMPLETELY user definable system.  Normal CTCP events are
	already included with the default resource files.
	The CTCP system is accessible via the CTCP editor.  CTCP's support user level,
	and Nickname triggering.  

	Once triggered an action is executed.
	Action which are listed as #internal are handled by code within Zipper!

Events

	Zipper! supports IRC server event triggering.  Events like CTCP's are user definable.
	Currently Zipper! supports the following events:

		ban		: a user gets banned from the channel
		chanmsg		: any message is sent to a channel
		deop		: someone is De-Opped
		join		: someone joins a channel
		kick		: someone is kicked from a channel
		part		: someone leaves a channel
		mode		: a channel mode is changed
		nick		: a nickname is changed
		notify		: someone on your notify list joins IRC
		op		: somone is opped
		privmsg 	: you get a private message
		quit		: someone quits IRC
		topic		: a channel topic is changed
		unban		: someone is unbanned from a channel

	When the events are triggered, the following information (if applicaple) is made available:
		
		User Level 	: the level of the user triggering the event
		Channel		: the channel where the event was triggered
		Nick/User	: the nickname/userhost of the user triggering the event
		target		: the target of the event



Script Actions (For Alias, CTCP, Event)

	Actions support variable and function substition.
	Actions also support multiple commands per LINE separated by " ; "

	A script action is any irc command or commands (/command)
	Actions may contain variable information or information obtained
	by executing functions.

	There are 2 types of variables, system variables, and user variables.
	System variables are those which are made available as IRC runs and 
	contain various informtation about who set off CTCPs Events and so 
	forth.  They also are used to access parameters given by the user, or
	by triggered commands.  They are accessed by using the "-$name" notation.

	User varibles are created and set by the user as IRC is running and
	are independent of ANY other variables.  They are accessed by using the 
	"-%name" notation.


	A set of simple functions are included to make things easier.  Zipper! 
	however is intended not to include a rich set of internal functions, but
	rather to make functions available by using external scripts and programs.
	included are a few TCL scripts to perform some useful and some useless
	functions, but mainly are for use a guide.  They are accessed by using the
	"-@" notation.


	Current System Variable List:
	
		fromchannel	: channel triggered from
		fromnick	: nickname of user that caused trigger
		fromuser	: userhost of user that caused trigger
		hostname	: your host name
		ip		: your IP address
		level		: level of user that caused trigger
		line		: all paramaters associated with a trigger
		myuserhost	: my user@host
		nick		: my nickname
		parm1-6		: user or triggered parameters
		port		: server port
		realname	: my realname
		server		: IRC server
		username	: my username
		version		: Zipper! version
	
		In normal aliases, CTCP's, and events, fromchannel, fromnick, level, parm1-6 are
		generally the only variables needed.

		In the case of events, parm1-6 is generally additional information other
		than the identity and location of the person that triggered the event.
	
		In cases where there is a target, the target(s) will be contained in the "parm(s)"
		
		In the case of aliases, parm1-6 is defined by the user on the command line
		
		In the case of CTCP's, parm1-6 contain the first 6 words of the CTCP command $line
		can be used to access ALL of the words and to send them to an external
		program if they are needed.


		Note that the 6 parameter limitation MAY be removed in the future if warranted.




	Current System Functions:

		add 		: add 2 numbers or variables together
		chanlist	: retrieve the list of people currently on a channel
		level		: get the level of a user
		none		: do nothing
		rtime		: get the time in CTCP PING format
		run		: run an external program and return its result
		sub		: subtract 2 numbers or variables
		time		: return the current time




	Special Notes on functions, scripts, and variables:

		ALL variables must be "clean."  That is there must be at least 1 space
		both before and after the variable name.  This is because of the method
		used for processing commands.  

		ALL functions must be "clean" of whitespace.  This means that you cannot
		embed spaces or into functions at this time.   This limitation may be
		removed in the future.  As a work-around, you can "/set" a variable
		first, then send it into the function.	


DCC CHAT and SEND

	Zipper! includes the ability to perform DCC CHAT and File Transfers.  
	The CHAT option is integrated (almost) fully into the standard window
	system.  DCC File transfers are actually handled by external programs,
	but are still fully functional.  Zipper! does not at this time
	support the mIRC RESUME feature.  The transfer system still needs
	to be cleaned up a bit in its display, otherwise it should work
	fine.


Channel Activity Indicator

	The "windows" list in the Main Server Window, will indicate when
	there has been activity in a window that is minimized or is not
	currently focused on.  The ">" before a window indicates that there
	is a new message waiting there. Also any minimized windows that
	have waiting messages will indicate this by the icon image.
