+===================================+
|| AmIRC -- The AmigaOS IRC Client ||
+===================================+

*** FEATURE SET FROZEN ***

The feature set of the current version has been frozen, in order to
head for a first release. Don't worry, all the nifty features will
be added in later versions, but I think it's stable enough for 
beta and 1.0 release stage. Please continue to note any bugs
you see in the version; enhancement requests will be queued,
however.

Thanks for your support so far,
Olli

=== *** ALPHA NOTE *** ===

** Please send bug reports to "AmIRC@lsd.wupper.de", not to my
** standard mailbox. Don't forget to state the OS and MUI
** version you do use.

AmIRC currently supports only few ARexx commands. The ARexx Port
is going to be extended in the future. In the meantime, here is an excerpt
from the command definition table:

{	"say",				"TEXT/F",			1,		RXH(say) },
{   "isconnected",		NULL,				0,		RXH(isconnected ) },
{	"getservername",	NULL,				0,		RXH(getservername) },
{	"getmynick",		NULL,				0,		RXH(getmynick) },
{	"userhost",			"NICK/A",			1,		RXH(userhost) },

The sound files have been moved to a different archive to reduce
the size of the plain code archive. They are on ftp://wade1.ab.umd.edu
in the directory support/AmIRC.

Known problems, their reasons and their cures:

o  The main window sometimes doesn't refresh properly when SIMPLE_REFRESH is
   used.  Known bug in MUI 2.3's listview refresh sometimes throwing away
   damage regions.  Fixed in MUI 3.

o  Lockup when using Magic Menu. Install NewObtainGIRPort to cure this.
   NewObtainGIRPort is available from aminet or from the AmIRC home page.
   In older readme's, I suggested using SafeGIRPort, but there were
   reports that this won't really help the problem. Sorry, I don't use
   Cycle2Menu or MagicMenu and never had any problems with this myself.

o  The user list get's messed up. Known bug in MUI 2.3's listview's REMOVE
   method. Fixed in MUI 3.

o  There are various problems when using AmIRC as an CLChat (ArcNet) client.
   These are all caused by bugs within CLChatIRCD and can't be fixed on
   AmIRC's side.

o  ALT-CURSOR-UP/DOWN doesn't work with MultiCX. MultiCX's "advanced
   Edithook" will eat Cursor-UP/Down-Inputevent on it's own so they can't
   be processed by AmIRC. Use a different edit hook.

o  ZFREQ causes AmIRC to fail upon start. ZFREQ seems to be unable
   to bear an application allocating a real huge number of ASL_Filerequest
   structures. Use a different file requester patch.

o  Neither HILITE nor URL-Grabber work on text written by yourself.
   This is due to internal reasons, I'm not sure if it is worth
   changing.

=== *** END OF ALPHA NOTE *** ===

============================================================================
                           *   Introduction:   *
============================================================================

AmIRC is a client for the IRC Internet Relay Chat protocol.

Features:

o runs with both AmiTCP and AS225 without additional support libraries.

o builtin high speed DCC drivers for SEND and MOVE.  Highly optimized with
asynchronous file I/O and threaded network handling. Supports Drag&Drop
sending of files. Supports the "mIRC for Windows" DCC RESUME extension.

o tranparent implementation of DCC CHAT. All /MSGs are automatically routed
via DCC CHAT if applicable, to save runtime and reduce IRC load. Option
to automatically accept DCC CHAT connections.

o full support of the "Undernet" IRC extensions, both reply codes and
additional IRC commands.

o intuitive channel display with userlist and channel mode overview.
Channel modes can easily be changed via gadgets. Configurable user
action list to perform whatever action you like on users in channel
by the press of a mousebutton.

o supports QUERY windows for private chat.

o supports "smart" banning.

o versatile AREXX port.

o easy command line aliasing.

o builtin IdentD (automatically disabled if another IdentD is already
installed).

o supports nick notification, highliting, ignoring and kickban.

o server phonebook.

o last nick history.  Stores the nicknames of the last nicks you've send
MSGs to, received MSGs from or addressed publically with "nick:".
Reference can be used in all commands which require nick names, e.g.  /MSG,
/OP, /DEOP. Automatic nick expansion on public messages with ":".

o auto rejoin channel on KICK and auto reconnect server facility.

o auto away after idle timeout. Auto unaway after sending public and/or
  private msgs.

o auto update download.  Check for and download new releases with a simple
click.

o URL grabber for interfacing with a WWW browser (currently limited
  to sending URLs to AMOSAIC with ARexx)

============================================================================
                         *   Revision history:   *
============================================================================

0.72alpha
---------
- switched back to using "GetHostId()" if ENV:HOSTNAME doesn't exist
  or is invalid. Should fix all kind of DCC trouble with MLink. Make sure
  that ENV:HOSTNAME is either correct or not existant if you use MLink.
- fixed a few typos and IRC response parsing problems.
- Topics longer than 127 characters caused a real bad crash.
- reduced memory usage a bit.
- %p in alias expansion with missing arguments caused garbage
  to be inserted.
- fixed some bugs in the listview setup.
- added basic log capability (no filtering yet, only RAW output).
- URL grabber messed up news: URLs
- seperate user list windows can now be configured to start up opened
  or closed.
- will now properly rename query windows and dcc chat sessions
  upon receiving of a NICK change message.
- misc. fixes.

0.71alpha
---------
- something in the optimizer seems to have broken as225r2 compatibility.
  Now compiled without optimizer again. Subject for further investigation.
- didn't work with MUI 2.x due to use of popscreen.mui. Will now
  display a simple string gadget then.

0.70alpha
---------
- changed internal string table layout; internal string access is now much 
  faster, even when strings are taken from a catalog file.
- /DCC LIST now works.
- /WALLOPS was broken.
- Query windows can now be opened on a different public screen.
- DCC requests are now also accepted when sent with a "NOTICE" to accomodate
  for certain buggy DCC implementations.
- In non-alphasort mode userlist entries were added to the top, not to
  the bottom of the list.
- fixed icon creation to not copy x/y positions of the default icon
  when saving preferences.
- "Connect Thread" does now work, starting a second instance of AmIRC
  connecting to the selected server.
- passing shell commands now works (except StartRX).
- added CTCP CLIENTINFO reply.
- added /LIST command. It currently only opens the list window.
  Implementation will change later on.
- now accepts "*" as a substitute for "current channel", as with
  ",.:"
- the local host's IP number is now always detected by
  using gethostbyname( ENV:HOSTNAME ), since gethostid() was
  totally messed up with multiple interface setups. Should fix
  all kinds of DCC initation trouble.
- now allows different text colors for certain kinds of text.
  Currently limited to MUI drawing pens, which is a limitation
  of MUI's text class.
- /ALIAS command now accepts alias names starting with "/".
  Should avoid some confusion on why "ALIAS /blah ..."
  didn't do what it was expected to do :)
- split preferences window.
- Action buttons and Event setups are now horizontally scrollable
  Virtgroups to better fit on vertically small screens.
- maximum number of user action buttons raised to 24 due to
  popular demand :) Note that this will invalidate old button
  settings (sorry, this is due a braindamaged ExportID
  selection in older versions)
- the input processor now accepts LF characters in the
  string gadget and automatically splits the lines.
  Useful when pasting multiple line clips.
- added highlite option. Allows to highlite channel text
  from certain nicks or userhosts or keywords. Added
  new event for highlite (/HIGHLITE and /UNHIGHLITE
  commands)
- added IGNORE support (/IGNORE and /UNIGNORE commands).
- implemented the Undernet "SILENCE" command.
- DCC MOVE and RESUME are now functional again.
- severe bug in tcp.lib memory allocation could cause
  all kind of trouble with sockets being used by
  subthreads. Noticably terminating AmIRC with pending
  DCC tasks caused a guru in most cases.
- fixed the string input hook to no longer swallow
  non-plain/shifted TAB events (which effectivly disabled
  MUI's Window-Select-Feature)
- added alpha documentation by Larry 'Duran' Walton.
  Direct any comments about the documentation to him :)
- compiled with optimizer turned on for a test.
- fixed URL grabber stopping parsing at an ~.
- Fkey strings may now contain "\n" to allow for
  multi line commands.
- When changing servers, will now correctly clear
  the channel names if autojoin channels are
  specified.

0.69alpha (quickfix)
--------------------
- subitems for the window sub menu weren't no longer added,
  making closing windows crash badly.

0.68alpha
---------
- CTCP PING didn't work.
- holding down ENTER caused the same text to be continously send.
- SHIFT-TAB will now insert "Nick: " into the input line.
- CTRL-UP/DOWN and ALT-UP/DOWN inside a query window caused instant crash.
- String class was, in cooperation with some MUI bug, loosing signal bits.
  This caused frame gadgets to not work any longer.
- The bubble help of the userlist action buttons will now display the
  real command assigned to the button.
- Userlist action buttons now work if no user is selected and no %u
  was specified.
- /ME within dialog windows will now work just like /DESCRIBE.

0.67alpha
---------
- DCC windows now use tiny fonts for the lists.
- optimized TextFit() wasn't working correctly, cutting of
  characters depending on the font.
- enforcer hits with commands which had a single channel name
  as a parameter ("/NAMES #Amigager" for example).
- /RX will now find commands in PROGDIR:Rexx
- Rexx-on-Event didn't work at all
- added a few more sound samples by Robert Wilkens
- the event manager now has "Test sound" buttons
- Connect and Autodownload windows shouldn't cause trouble any more
  (recycled MUIMasterBase between tasks :)
- the "is this mail or news" guess in the URL grabber
  always assumed mail

0.66alpha
---------
- userlist action button rows which contain no labels will now be
  hidden
- the first 10 window selector menu items now have shortcuts from "0" to "9".
  Allows to easily switch channel windows with Amiga-0..9.
- serious bug in DCC-SEND; neither RESUME-ACCEPT nor MOVE-RESUME did work
  since AmIRC didn't actually seeked to the requested file position.  
- added support for TIADCC (SetEnv TIADCC "tiahost port"). The
  variable format is compatible with Tau's DCC implementation.
- fixed a few quirks in the string input class.
- list class is now more compatible with fonts which have a "obscure"
  tf_XSize value.
- sub processes weren't properly terminated during IPC if the main application
  was forcefully quit.
- fixed drag & drop list sort for server and alias list (MUI3 only).
- the button/info row in query windows can now be turned off to save
  visual space.
- fixed activation state of the user list. If the current user
  PARTs or gets KICKed, selection will turn off completely. If
  the current user renames himself, the selection will follow
  accordingly.

0.65alpha quick fix :)
----------------------
- String input gadget was dead with MUI 2.3.
- added a kludge to avoid MUI 3.0's MUIA_String_MaxLen-1-Bug within the
  nickname gadgets

0.64alpha
---------
- fixed splitting and rejoining of lines in listview (spaces got inserted
  when a line couldn't be split on a word boundary)
- main listview now properly preserves text style attributes upon line
  splits and relayouts
- the ban popup list is now a "real" window which can be dragged and sized
- line read buffer pointer wasn't reset when a server link was forcefully
  terminated. Caused nonsense to appear on next connect.
- added support for "DCC RESUME", a method of resuming DCC SENDs
  originally implemented by the mIRC for Windoze IRC client. It's not
  recommended to use DCC RESUME between AmIRCs, use MOVE instead.
- OP/VOICE now accept up to four nicks
- BAN did work with a single nick only.
- the command parser assumed that all strings beginning with "*"
  are channel names, effectivly rendering /BAN useless.
- KICKBAN window now has four buttons to setup "standard" types
  of ban mask (full, userhost, dynamic hostname, dynamic ip)
- CTRL-Cursor-Up/Down now allows to select the current user in
  the user list.
- TAB will now enter "/MSG nick " if the input line is empty
  or just "nick" if there is already something entered in the line.
- ALT-Cursor-Up/Down allows to scroll within the main output list.
  ALT-SHIFT allows to page accordingly.
- fixed a few bugs in state managment of the main list class.
  Could cause enforcer hits when LCM_INSERT was used before
  MUIM_Show was called; this mainly occured with the new
  private message log which normally stays closed.
- "Auto open Dialog Windows" was not functional at all.
- Function key did only work when changed during the session, not
  after loading.
- Rexx script gathering caused entries with "PROGDIR:" to be
  entered in the list, which didn't work, cause it would
  have referenced the Rexx master process' PROGDIR: if
  it would exist :)
- several parts of parsing code failed with characters > 127, 
  esspecially the notify option with "strange" nicks.
- messages added to the private message log now have a time
  stamp.
- finally got around adding Troy Davis to the thanks list
  in the about requester.

0.63alpha
---------
- the vertical bar in the main listview was messed up.
- added VBars on several of the other listviews (MUI3 only)
- User list action buttons didn't used MUIA_Font_Tiny as intended.
- "Save as" with no config name given could cause erraneous behavior
  and even crashes with some requester patches.
- manually resetting AWAY via menu state didn't restart the auto away 
  timeout.
- failure to open "rexxsyslib.library" wasn't catched and could cause
  serious trouble later on.
- fixed a severe bug in the ioctl() call in AS225 which was called
  with the AmiTCP code for FIONREAD. Caused DCC's to loop dead.
- auto reconnect to server now limited to 10 retries.
- now checks for duplicates before adding entries to the URL grab window.
- nickname gadgets now accept all RFC-1459 allowed nickname characters
  and even "_" :)
- added help bubbles for the channel mode buttons (MUI3 only)

0.62alpha
---------
- Click-On-Notify still didn't work <blush>
- fixed selectwait() call in the as225 tcp interface. DCCs are now
  properly cancelable :)
- /RX did pass parameters, but only the first <blush again>
- /NOTIFY did react on parts of nicknames (e.g. "/NOTIFY OLI" reacted
  on an "OLIVER" being on)
- added URL grabber; incoming text is scanned for URLs and MessageIds,
  which are presented in a list window. Double clicking on a URL will
  send them to AMOSAIC.1 via Rexx
- Rexx: Using "Say" with no open window caused terrible crash
- added privmsg log window which stores all private msgs send to you
- added a few Undernet servers to the default server list
- added a few useful menu shortcuts

0.61alpha
---------
- incoming/outging DCC chat requests will now no longer open the dcc chat
  list window.
- startup errors (in particular wrong arguments passed on a shell startup)
  caused destructors to be inproperly called, resulting in dead locks.
- WHOIS-ON-NOTIFY didn't work when the watched user was logged in
  (did send "WHOIS +USER"...)
- made an attempt to fix the as225 code which seems to be crashing
  on DCC (sorry, can't check this for myself)
- /RX didn't pass arguments.
- will now no longer create an empty Rexx menu if no rexx scripts are
  found (AmIRC looks into PROGDIR:Rexx/ and Rexx: for files ending with *.AMIRX).
  It's nicer and avoids nasty crashes with certain buggy Menu hacks :)

0.60alpha
---------
- channel list didn't worked at all.
- double click on an entry in the notify list will now issue an /WHOIS nick
  command.

0.59alpha
---------
- AWAY flag is cleared after connection to a server.
- Autojoin channels are now bound to the server configs. This allows you
to specify different channels for different servers.
- state of the "Create Icons" menuitem is now saved correctly.
- "Help" menuitem works.
- Bug in the string class caused enforcer hits and made MUIKEYS not
  working correctly.
- when the connection was lost during receive of the channel list,
  the channel listview stayed deactived.
- empty CTCP ACTION requests are no longer displayed.

0.58alpha
---------
- the light bulb's transparent color wasn't set correctly so the background
  got overwritten.
- fixed a few MUI object background settings.
- program and basename now thoroughly changed from MICROIRC to AMIRC.
- light bulb is now a page group to avoid MUIA_Bitmap_Bitmap not being
  correctly settable. Should also fix a potential crash.
- added FKey support.
- String gadget is now constantly activated.
- added "Invite" event.
- default prefs storage location is now "PROGDIR:Default.MIRC" to
  avoid problems if AmIRC is started from another dir.
- now deiconifies upon receiving SIGBREAKF_CTRL_F

0.57alpha
---------
(skipped)

0.56alpha
---------
- light bulb/mic icon refresh now fixed.
- fixed QUERY windows to correctly parse IRC formating codes on output.

0.55alpha (saturday evening release, please don't wonder :-)
------------------------------------------------------------
- fixed missing CTCP ACTION parsing for private PRIVMSGs
- added missing /DESCRIBE command.
- OP/VOICE status is now displayed with a nice icon (thanks Morden).
  The implementation of the display sucks, it's gonna fixed in the next
  release.

0.54alpha
---------
- fixed a bug in WALLOPS and ERROR parsing, not outputting anything but
  causing an enforcer hit instead.
- userhost database sometimes caused calls to FreePool() with a mismatched
  size (len-1). Could screw up pool management severly.
- now entering a server name no longer causes the list to be sorted,
  leaving input focus on an undesired entry.
- added missing /BAN, /BANDEL and /BANLIST commands.

0.53alpha
---------
- just bumped revision to avoid confusion with a "0.52alpha" floating
  around.

0.52alpha (not published)
-------------------------
- seperated user list now finally works without crashing badly.
- the seperated user list windows now have a close gadget, and the channel
  windows have a pop button to reopen it.
- fixed sorting of user list.
- changes of GUI settings now happen instantly. Note that MUI 2.x
  requires closing and reopening of windows for some operations.
- kludged around the userlist refresh bug by manually forcing redraw
  on every JOIN/PART.
- Auto-Rejoin-After-Kick now defaults to off due to popular demand.

0.51alpha (not published)
-------------------------
- fixed incorrect parsing of 317 extend message (signon time)
- fixed a few quirks in DCC SEND aborted output.

0.50alpha
---------
- fixed a crash with certain MUI versions on SAVE.
- DCC originating sometimes didn't work since GetHostId() reported
  "127.0.0.1" (localhost). Now falls back to reading ENV:HOSTNAME
  and doing gethostbyname() on this.
- the user list may now be hidden totally or put to a seperate window.
  Note: This isn't implemented correctly now; i'll change it ASAP.
- the user list sorting can now be turned off.

0.49alpha
---------
- remote logging of AMIRC usage has been removed completely.

0.48alpha
---------
- added event handling. Allows you to deiconify, beep or play a (datatypes)
sound on certain events.
- some internal stuff.
- added processing of the "250" extension message.

0.47alpha
---------
- fixed "DCC SEND/MOVE ABORTED" which was screwed in several places.

0.46alpha
---------
- added RAW IRC output window.
- Auto-Update-Get will now automatically extract AMIRC.ReadMe to T:,
  display it and offer to automatically unpack the gotten archive
  to RAM:
