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

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

Features:

o runs with Miami, AmiTCP and as225/inet225 without additional support libraries.

o builtin high speed DCC drivers for SEND, TSEND 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 ultra fast text output and scrolling. Supports Cut&Paste for the list
  text. Supports proportional fonts.

o internal CTCP flood and DCC bomb protection

o supports the latest 2.9.x irc server extensions.

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. Ban list window.

o supports QUERY windows for private chat.

o supports "smart" banning.

o versatile AREXX port including server message parsing ("event trapping")
  and commandline/script interaction.

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 versatile event handling allows you to bind sound effects, auto-deiconify
  or rexx scripts to certain events.

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 TAB messaging to automatically cycle the list of last used nicknames
  with a /MSG prefix.

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 URL grabber for interfacing with a WWW browser.

This is the third release of AmIRC. It has undergone thorough testing,
although bugs surely have remained. If you find anything queer, send a bug
report to <AmIRC-Bugs@vapor.com>. Thanks!

AmIRC is *SHAREWARE*.  You can register it easily with the included
registration utility at 7 (!) sites around the world:  Germany, UK, France,
Sweden, USA, Canada and Australia.  You can register with your Credit Card
and email only (at the UK site), and you can register via First Virtual
Electronic Transaction (at the US site).

Known problems, their reasons and their cures:

o  You absolutely MUST install SetPatch 40.16 (or higher), otherwise you will
   stumble over the broken pool functions in 3.0/3.1 exec.

o  Spurious crashes when having an ObtainGIRPort hack installed.
   This hacks break a few of the ROM internal BOOPSI gadget classes
   (notable the propgclass which is used by AmIRC for it's scroller)
   and MUST not be used. Older versions suggested to install 
   such a hack to avoid MagicMenu lockups; this was before
   the system hostility of the ObtainGIRPort hack was unveiled.

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

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

1.40
----
- fixed banlist window inner spacing
- fixed updating for DCC Receive pathes when the
  default receive path is changed
- now filters mIRC color codes in display. They're still
  available in Rexx processing (in case you want to do
  a auto-kickban or stuff :)
- fixed DCC path rename (again)
- increased DCC send delay timeout
- added fixed version of WallChop.AMIRX

1.39 (beta)
-----------
- fixed PLAYSOUND definition (again :)

1.38 (beta)
-----------
- sounds were loaded (not played) via datatypes even if external player
  was configured
- PLAYSOUND EVENT was broken
- "Reoffer" button was hosed
- fixed missing argument to STM_PLAY in datatypes sound play

1.37 (beta)
-----------
- fixed Remove/Reoffer in the DCC SEND list
- INVITE is now ignored by IGNORE PRIV, not IGNORE TEXT

1.36 (beta)
-----------
- fixed broken key detection

1.35 (beta)
-----------
- modified behavior of VERSION command. If a nickname, not a server
  name, is given, it behaves like "CTCP VERSION"

1.34 (beta)
-----------
- DCC SEND/MOVE now show "stalled" status when no data
  has arrived in the last 5 seconds
- DCC SEND now has a "Reoffer" button which resends the
  DCC offer for the currently selected DCC
- when sending multiple files, a one second delay is now
  made between sending out each DCC offer, to avoid
  triggering server side flood protections.
- "Connect thread" when no connection is established
  will no longer close the connect window and leave
  the first instance of AmIRC lingering around without
  any window open
- added new rexx command: "PLAYSOUND FILENAME,EVENT/K/N".
  Argument is either a filename of a CTCP SOUND alike
  sound to be played; EVENT=num plays a predefined
  user defined event sound.
- Abort connection now works properly when a server
  connection has been established, too.
- CTCP SOUND trigger the DCC event, not the CTCP event.
- CTCP ACTION has been changed to not trigger a CTCP
  event at all.

1.33 (beta)
-----------
- DCCMSG events had the "from host" in passive DCC CHAT
  connections, which was broken
- dcc windows opened active if opened a second time in
  a session
- CTCP ACTION and SOUND to the channel now trigger
  CTCP event
- if "HandleFlood.amirx" is there, it will be called upon
  detecting a ctcp flood with the last line as a
  parameter. The internal ignore won't be set in that
  case.
- DCC requests are no longer accounted for CTCP flood
  checking
- message ignore will now ignore INVITEs as well
- /DCC RESUME NICK without file spec worked like /DCC GET
  no matter what
- fixed cps calculation for resume/move DCCs

1.32 (beta)
-----------
- fixed userhost database not updating to current userhost
  when not marked dirty beforehand

1.31 (beta)
-----------
- changed format of PING message. Now sends a 7 digit number.
  Reduces bandwidth waste and protects against clients which
  are picky on the format of PING requests they like to reply to.
- DCC bomb protection now added to DCC CHAT, too

1.30 (internal)
---------------
- incoming DCC CHAT messages are now returned to the
  PRIVMSG event and via GETLINE as the special faked
  message "nick!nick@dcchost DCCMSG yournick :text",
  to allow processing.
- added GETDCCRECEIVEDIR and GETCTCPSOUNDDIR
  functions. Guess what they do.

1.29 (internal)
---------------
- the DCC bomb protection actually protected against
  file sizes < 1024 bytes, instead of ports < 1024. Weee.

1.28 (internal)
---------------
- recompiled after removing unused catalog strings
- removed a lame debug Printf from DCC RESUME

1.27 (internal)
---------------
- List prefs window crashed if aliases >255 bytes were
  defined.

1.26 (internal)
---------------
- DCC SEND requests with ports less than 1024 are
  now considered malformed (to protect against
  DCC bombs)
- now handles incoming DCC TSEND requests
  (DCC SEND without acknowledge packets). Note
  that AmIRC's "normal" DCC is already sending
  data at maximum speed without waiting for ACK
  packets, so there's no speed loss when
  DCCing between two AmIRCs with "plain" DCC,
  although remaining 100% compatible with 
  the ultra lame ircII or PC-Client DCC
  implementations). TSEND requests are marked
  with "T" in the DCC RECEIVE window.
- fixed scrolling problem (occured when a list
  had to be scrolled for the first time and
  multi line text was to be added)

1.25 (internal)
---------------
- /DCC CLOSE without args returned an bogus error.

1.24 (internal)
---------------
- fixed problems with autojoining channels and "Connect thread"
- now preconfigs tiny font to helvetica/9 if not set

1.23 (internal)
---------------
- fixed broken GETUSERS

1.22 (internal)
---------------
- added a "» Clipboard" button in the URL grabber window to
  send selected URL to the clipboard (in addition to
  double click)
- fixed a longstanding bug in the list class which caused
  the initial scroll down to not happen under a certain
  funky combination of lines and output length
- added "MATCHUERHOST" arexx commands, taking
  a userhost (or nick) and a pattern, returning 0
  for no match, 1 for match.

1.21 (internal)
---------------
- DisplayBeep() only events didn't work when a external sound
  player was configured
- fixed the ARexx ECHO command to no longer interpret
  _fmt codes (%s et all)
- fixed several of the ARexx command templates to
  actually require arguments and fail with a command
  parse error otherwise. Fixes enforcer orgy on "SAY", "RAW"
  etc. without args.
- now runs PROGDIR:Rexx/Startup.amirx, /Shutdown.amirx and
  /Connected.amirx when available on startup, shutdown
  and established connection accordingly. 
- GETUSERS nuked if the total size of the result string
  exceeeded 2048 bytes
- new arexx command "GETWINNUM #channelname" returns
  the win number of a channel
- GETUSER, GETUSERS, GETSELECTEDUSER and GETUSERSTATE
  now accept CHANNEL=#channelname instead of a numeric
  window argument
- added GETDCC rexx command. Returns 3 stem list:
  DCC.CHAT.x has "nick state hostname"
  DCC.SEND.x has "nick moveflag hostname state len cps filename"
  DCC.RECEIVE.x has the same as SEND
- added /DCC RESUME command
- added /DCC CLOSE command
- fixed /DCC LIST state display
- now automatically uppercases the first word of outgoing
  CTCP requests
- now calls PROGDIR:Rexx/DCCDone.AmIRX (if available)
  with the "SEND|RECEIVE successcode nick filename" for
  any DCC post processing

1.20 (internal)
---------------
- list class used masked scrolling even on interlaced screens
- changed calling of custom_amirx.ctcp to:

   Custom_CTCP.AmIRX command fromnick destination arguments

  where "destination" is either the destination channel or
  your own nickname.
- changed IRC server login to overcome stupid efnet
  "bot" detection
- server notices now again have "privmsg color"
  and trigger the NOTICE event
- ARexx "ECHO" command now accepts optional
  paremeter "C=COL" specifying one of the
  user defined text colors.
- minimum period for NOTIFY checks is now down to 20 seconds
  again.

1.19 (internal)
---------------
- topic buffer is now 256 chars
- no longer changes topic string gadget's contents while
  it's active
- fixed /LASTLOG crashes and deadlocks
- fixed several broken cycle chains
- /LASTLOG now correctly handles multi-line responses
- fixed text marking problems with fixed fonts
- fixed text marking problems with characters < 31
  which are not meaningful style commands
- added "Info message window" which stores all
  all incoming server messages, mode changes etc..
  Option to "shanghai" server notices, wallops
  and incoming "basic" CTCP requests so they are
  only displayed inside this window.
- changed display of server notices and ERROR
  commands to have the server name in [brackets]
  for clarity.

1.18 (internal)
---------------
- fixed enforcer hits on certain unexpected malformed server
  responses
- fixed "Connecting to" abort quitting AmIRC when clicking "Cancel"
  while a connect()ion has already been established.
- removed group frame in ban list window
- 317 "signon time" (undernet) display was broken.
- fixed calling of custom_ctcp.amirx
- now properly calculates time zone offsets when parsing
  time stamps delivered from servers
- fixed responses for +v/-v on a different channel
- userhost cache nodes were allocated with trash in
  the flood counting variables, thus causing random
  IGNORES of CTCP messages and other neat things.

1.17 (internal)
---------------
- removed "Server" from default string for channel window titles.
- the "Connecting to..." window will now remain on screen
  until the connection process has successfully completed,
  unlike going away after the inititial connect() has been done.
  Much nicer when you get kicked from a server due to K: line,
  server overloads or other reasons AFTER connect().

1.16 (internal)
---------------
- fixed the temp ban mask generated for CTCP floods

1.15 (internal)
---------------
- changed strings for all topic response messages.
- did another attempt in the "Fix Crash on Dialog Win
  Close" session
- changed CTCP flood sensitivness a bit
- no longer accounts CTCP responses for floods

1.14 (internal)
---------------
- fixed potential crash when selecting menu AWAY while there
  was no connection.
- fixed illminded reaction when WaitSelect() returned
  the reset handler IPC signal to be set (caused
  deadlocks with Miami users)
- added 281 and 512 GLine related response codes
- DCC CHAT connection sockets now have SO_KEEPALIVE set
  so that connection losses don't go unnoticed.
- hopefully fixed all remaining 10-char-limits on
  nicknames for DCC transactions.
- now shows unknown user modes as the raw mode char,
  instead of simply ignoring them.
- "Use Identd?" was ghosted, but not cleared if the
  auth port was in use during startup.
- fixed potential crash on closing dialog and
  channel windows with close gadget
- DCC windows now open inactive
- added CTCP flood protection
- added a custom CTCP handling hook: If PROGDIR:Rexx/Custom_CTCP.AmIRX"
  exists, it will be called for unknown CTCP requests with the
  following template: 
   Custom_CTCP.AmIRX command fromnick arguments
  A check is done for dangerous shell escape characters.
- fixed cycle chains in several windows
- rewrote the internal nick/userhost database. Much faster now.
- added CTCP flood protection.
- now doesn't eat 332 "Topic is" message when joining a channel.
- now ignores excess (i.e. more than 40 bytes) CTCP ECHO requests.
- no longer stores notice origins and CTCP originators 
  in the TAB nick history
- dialog window nick binding still had a limit of 12 chars.

1.13 (internal)

1.12 (internal)

1.11 (beta)
-----------
- properly strips path names from incoming DCC requests, too
  (might be an problem if you accidentally clicked "GET"
   on same lamo sending you "S:Startup-Sequence")
- fixed nickhistory for TAB messaging which were broken
  in the 30-char-nickname movement in 1.10.

1.10 (beta)
-----------
- (hopefully) fixed all instances of the 9 character nick limit.
  People not using sizeof() should be shot, really :-)
- no longer stores CTCP responses of any kind in the nick history
- sound names are now properly validated for security before
  being passed to an external sound player.
- now strips of any pathes from incoming and outgoing sound
  requests.
- added UPING oper command
- cleaned up my email and the support URL
- fixed deadlock when there was another identd in use on
  the system and the connect to the server failed or was
  closed straight without sending something. Happened
  to MIAMI users, mostly.
- fixed a few duplicate shortcuts
- completely recompiled with SAS/C 6.57

1.9 (beta, internal only)
-------------------------
- fixed netsplit detection for server names containing a digit
  as the first character.
- fixed bogus identd gadget disabling.
- long outstanding bug in the Rexx interface -- RexxMsgs
  were never flushed, thus causing memory loss during
  longer AmIRC operation with Rexx usage.
- recompiled with SAS/C 6.57 in case some now fixed code
  generator bug slipped in.
- fixed /KILL and /SQUIT commands.

1.8 (beta)
----------
- fixed messed up catalog string numbers
- fixed /IRCNAME command
- no longer sets identd to off when the port is bound
- fixed handling of "," in server comment strings

1.7 (beta)
----------
- identd now only returns "real" answers, to overcome the now
  a bit more smarter inquiries of current identd versions.
- recognizes 476 (AnotherNet, "no warez") extension message
- recognizes 438 (Nick change too fast) message
- added /MAP command and 005/007 messages
- added /GLINE command and 280/281 messages
- added /IRCNAME command and response parsing

1.6 (beta)
----------
- changed login procedure a bit in an attempt to avoid the
  autojoin delay with 2.9-servers
- now supports optional external soundplayer for people
  struck with OS 2.x systems, or Play16 fans :-)

1.5 (beta)
----------
- directory and volume for CTCP SOUND stuff is now settable
- AWAY state in dialog windows will now go away when the remote
  user is no longer away and a WHOIS is performed on him.

1.4 (beta)
----------
- added internal CTCP SOUND support. Sound files have to reside in
  PROGDIR:Sounds

1.3 (beta)
----------
- fixed problem with getting the username when using Miami
- fixed pasting of text containing linefeeds to query
  windows (last char of every line was lost)
- CTCP ignore will now properly ignore channel CTCPs as well

1.2 (beta)
----------
- added /NOTE command.
- added /LASTLOG command.
- text list didn't properly chop off prefixes while the associated
  window was closed.
- AUTOJOIN tooltype was internally misspelled as AUTOJIIN
- listview scrolling is now visually "nicer".
- fixed a few problems with the URL grabber termination characters.
- minimum period for nick notify is now 60 seconds to avoid
  bandwidth trashing
- now displays the HIGHSCORE 317 message extension
- fixed parsing of the undernet 317 SIGNON TIME message extension
- no auto reconnect on OPER KILL anymore
- AmIRC is now more picky on what server version it connects to
  and which modes are available (recognized so far as being
  "special" are "2.8.21+" and "2.9".
- now checks for already installed identd and automatically disables
  the internal identd and uses the system username in that case.
- 2.9-support: Displays and understands the 437 extension messages
  ("Nickname temporarly locked")
- 2.9-support: Understands the JOIN channel+mode message which
  is used on netjoins (WTF sends this to clients anyway?!)
- 2.9-support: Understands restricted user mode and the 484 "Restricted"
  error message.


1.1
---
- fixed a few typos in the builtin english text.
- The SendBrowser.AMIRX interface didn't work because the
  path stuff was munged.
- fixed nick changes to be properly tracked in the userhost database
  (fixes QKICK problems with nick floods)
- RDArgs wasn't every freeed, causing a memory leakage if started from shell.
- added support for DALNET extensions: Reply code 328 (Channel URL)
  and PART with additional parameter.
- now accepts nick names up to 30 channels (for use on ArcNet and
  DALNET)
- fixed parsing of the undernet extended 392 message (messed up RPL_TIME).
- on cut operation, normal channel text nick's are now enclosed in
  angle brackets.
- fixed cutting of channel text without prefixes.
- fixed a few background setings of MUI objects.
- "/?" now works different from "/help command"; /? only lists the command
  template, whereas /HELP will view the guide entry as usual.
- notify is fixed to not flood with n^2-1 userhost requests upon detecting
  a bunch of nicks on startup. Also, USERHOST requests are now properly
  grouped by 5 for faster response and less load.
- fixed pasting of multiline text into query windows.
- the connect info window now pops up in deactivated state.
- notify list will now be properly flushed when changing servers.
- incoming private CTCP ACTIONs ("Describes") had the DCC/CTCP color
  instead of the private msg color.
- ban list wasn't properly reread when the channel bound to a window
  or the server changed.
- the userlist listview now has a popup menu with all the defined actions.
- userlist sorting now has three options: sort alpha, add at bottom, add at top.
- several small fixes, cleanups and optmizations.
- CONNECT wasn't recognized as a tooltype.
- specifying server, port, autojoin or password on startup will no longer
  mess up the formely selected server entry in the phonebook.
- specifying a server on startup will now properly use the corresponding
  phonebook entry (if existant) as a template.
- fixed bug in handling DCC RESUME reject messages (which caused an endless
  loop if used between two AmIRCs)
- included fixed documentation, new installer, some new submissions
  and new gost-sounds. Also, fixed a silly bug in the form generation
  in RegisterAmIRC.

1.0
---
- "Connect Thread" didn't work with the unregistered Version.
- the RESUME button now behaves like GET for DCC MOVE requests.
- fixed a nasty bug in the text layout with control characters
  causing writes outside of the text gadget.
- incoming DCC CHAT messages didn't trigger a PRIVMSG event.
- BEEP on CTRL-G was disfunctional.
- alias definitions are now checked before internal commands. Note
  that it is not possible to nest aliases. You can always access
  the non aliased command by prefixing the command name with a "!",
  i.e. "/!leave". This is usefull when calling commands from ARexx
  scripts.
- several small fixes, cleanups and optmizations.
- DCC sockets now use TCP_NODELAY.
- fixed various bugs the registration utility.
- the RIGHTBORDER setting will now cause window borders to be used
  for scrollers.

0.88beta
--------
- userhost parsing for IRC ops failed due to the trailing "*". Caused
  trouble when /NOTIFYing IRC operators.
- silly bug in DCC CHAT IPC caused a 1k memory leak for every dcc chat
  message received.
- fixed the problem that AmIRC won't properly quit under certain
  circumstances with no open channel windows and closing the last
  open dialog window.
- it is now possible to interface to any web browser by having a
  script called "SendBrowser.AmIRX" in the PROGDIR:Rexx drawer.
  AmIRC will call this script with the selected URL as a parameter.
- several small fixes, cleanups and optmizations.

0.87beta
--------
- list class now avoids "plane optimization" if AmIRC runs on a cybergfx
  chunky mode screen.
- made the userlist scroller less jumpy.
- fixed a few boolean config settings which weren't properly saved.
- fixed screen refresh problems with mark selecting and scrolling.
- during config save, "," inside the autojoin channel settings weren't
  properly escaped, causing the server list to be messed up.
- AWAY state will now be visualized by rendering the nick underlined
  with FILLPEN.
- it's now possible to measure the user-server round trip time by
  issuing the /PING command without parameters.
- double clicking on an entry in the URL grabber window will now cause
  the entry to be copied to the clipboard.
- /QUIT without parameters will now QUIT with the default quit
  message.
- userhost matching now accepts "*" even when no wildstar patch
  is installed on the system.
- 221 (own user modes response) message is now parsed correctly.
- notify output does now output the USERHOST of the nick, too.
- several small fixes, cleanups and optmizations.
- added update documentation and installer script, and removed
  obsolete stuff from this readme ;)

0.86beta
--------
- fixed several problems with listview refresh.
- cut&paste marking is a bit less flashier now again.
- function keys now allow for the same placeholders as user op buttons.
- function key assignments ending with a "\n" now cause the input
  to be directly processed as if the user pressed ENTER manually.
- alias definitions now work even if they start with a "/".
- cutting of multiple line texts will now properly result in a merged line.
- the private message log window got disabled completely.

0.85beta
--------
- sounds and userlist settings weren't updated upon loading the config
  file.
- fixed TAB messaging to properly cycle in both directions.
- fixed several bugs regarding cut&paste marking.
- reduced screen refresh during cut&paste.
- CTRL-TAB now behaves like a single TAB did before, i.e. inserting
  /MSG currently_selected_nickname or only currently_selected_nickname
  into the textfield.
- fixed several problems with the text list output.
- fixed several builtin-catalog problems, mostly introduced by a
  badly checked "\003b"->"\002" search & replace run.
- ignore check caused NULL accesses with server notices.
- fixed a potential crash when disposing the ignore list.

0.84beta
--------
- now requires at least MUI 3.1 to work.
- replaced the main text list with a custom list object optimized for
  this particular purpose. This results in about 3 times faster
  scrolling and generally less CPU usage during text output. Also,
  the new list class is much more memory efficient and works better
  during relayout. Note that the speed isn't fully optimized yet.
- the main text listview now supports mark/cut to clipboard.
- fixed the desynch problems with the ARexx GETLINE command
  which could cause lines to be missed. Now, GETLINE will buffer
  the last 50 server lines internally and will use a special
  counter variable bound to your ARexx script to make sure you
  receive lines in order.
- rewrote the internal prefs handling completely. Decreased AmIRC's
  memory usage by a few 100k's since now all prefs BOOPSI objects
  are created dynamically.
- AmIRC now saves a textual configuration file for easy editing.
- the auto prefs saving during exit can now be turned off with
  a menu option.
- the prefs requesters now have "Use" and "Cancel" buttons.
- event sounds are no more loaded twice or more if the same sounds
  are specified for different events.
- fixed NOTIFY to no longer turn recognized nicks into upper case
  in the list.
- TAB now works more like the ircII tab script; cycling through the
  list of nicks who last send messages to you. SHIFT-TAB cycles forward.
- the "," nick destination will now also by set by incoming DCC
  CHAT messages.
- "Connect Thread" didn't work when the executable path contained
  spaces (i.e. "Ram Disk:" ;)
- real long channel names are now cutted before displayed in the
  channel window and window menu.
- the DCC messages generated by DCC sub threads didn't use the
  color setup for DCC messages.

0.83beta
--------
[internal only]

0.82beta
--------
- changed kickban window layout to fit on medres screens
- fixed a nasty internal bug which caused innocent memory to be overwritten
  during preference save. Could cause nifty side effects under certain
  circumstances.
- changed yet another bug in the prefs window setup which caused a
  bad crash when /IGNORE, /HILITE or /ALIAS were used after the list
  window was opened once.
- reduced overall stack usage and default stack size to 24k.
- changed several string buffers to fit into boopsi's stringclass
  shared buffer.
- several attempts to reduce overall memory usage, esspecially
  using new MUI 3.2 features.

0.81beta
--------
- startup failure caused a FreeSignal(0) to happen.
- added new OP/VOICE icons which should look better on a 4 color screen.
- several GUI fixes.
- reduced signal bit usage to avoid trouble with certain inet225 versions.
- added NORESETHANDLER Tooltype/Shell switch.
- finally changed DCC host ip lookup to use getsockname() on the server
  socket; this should fix ALL kind of ENV:HOSTNAMEish trouble. TIA
  users still must set TIADCC or change to a real IP provider :)
- fixed a severe bug in the DCC CHAT IPC system which caused a
  non-protected access to a pool from several processes, possibly
  resulting in a nifty crash.
- fixed a few potential crashes when moving objects while dynamically
  creating prefs windows.
- event rexx script parameter extension caused a nice crash with
  very long messages.
- changed behavior of the "DCC Receive Dir" field. From now on,
  changes in this path will also affect already queued DCC receive
  requests which haven't be renamed to a different filename and
  path before. This is the "intuitive" behavior.
- added "borderright" tooltype/shell option to have the window
  size border moved to the right. This should really be an MUI
  prefs option.

0.80beta
--------
- Wallops-Display will now display the source of the Wallops message
- fixed a crash when selecting "Sound?" in events menu.
- added fixed catalog translations.
- the default initialisation of the server list was messed up and caused
  both enforcer hits and junk in the password entries.
- sound volume settings get messed up, causing sounds to be played with
  volume 0 until the sound options window was opened once.

0.79beta
--------
- severe bug in the as225 part of the tcp code caused a AmiTCP LVO to be
  called on SockBase, resulting in messed up results up to mere crashes.
- prefs setup modification caused the sound dt support to not work
  properly.
- prefs setup modification caused /LOG to crash immediately.
- did various GUI fixes.

0.78beta
--------
- added GETUSERS command which returns a string of all users on a channel
  of the form "nick1 nick2 nick3"...
- %p replacement within EVENT ARexx calls didn't work at all.
- some internal & GUI cleanup.
- changed DCC port allocation scheme to avoid "reusing" active
  but delayed DCC requests with different users and to avoid
  "No socket" errors with MLink.
- workaround a few MLink close() bugs in DCC send.
- now accepts 422 response as End-Of-MOTD. Fixes problems with IRC
  servers which started up with "Error MOTD file is missing",
  causing login, autojoin etc.pp. handling to not work.
- topics weren't properly cleared when hopping servers or channels.
- rename of DCC-CHAT connections upon NICK didn't work properly.
- "Connect Thread" didn't work when no autojoin was specified
  for the selected server (new instance failed immediately with
  argument parse error)
- private messages output caused %-format-codes to be interpreted
  instead of being ignored.
- "/MSG ," addressed the last PRIVMSG source even if it was a
  PRIVMSG of an ignored user.
- now all ALT-SPACE inside input strings are replaced by simple
  spaces, to avoid trouble with IRC server parsing.
- reduced overall memory usage by making several of the prefs
  windows dynamic.
- added Language Tooltype/Shell-Option to manually select
  a language catalog, overriding locale prefs.
- fixed several GUI quirks.

0.77beta
--------
- fixed a potential WaitForEver() problem in DCC Receive threads.
- changed user mode parsing to better suit localisation.
- event rexx scripts can now take an optional parameter %p which
  will be replaced with the unparsed server line which caused the
  event to happen.
- added "PARSELINE" ARexx command which will split it's argument line into
  LINE.PREFIX, LINE.DEST, LINE.REST and LINE.COMMAND just like GETLINE
  does.
- ARexx-Cmd "ISCONNECTED" didn't work at all, but returned 0 always.
- added GETAWAYSTATE Arexx command.
- fixed HILITE not working properly if the matching word was at the
  end of a line.
- abuse of MUI's label objects caused several dynamic texts to react
  oddly to "_" within them (most notable the kickban win title).

0.76beta
--------
- some tangling Printf() debug statement in the DCC Receive handler caused
  enforcer hits and severe crashes when several DCC Receive threads were
  active.
- added GETCHANNEL, GETSELECTEDUSER, GETUSER and GETUSERSTATE ARexx commands.
  All take an optional WINNUM argument, GETUSER and GETUSERSTATE require an
  user index. GETUSER returns the name of the indexed user of the current window,
  GETUSERSTATE returns RC=1 if the user is OP, RC=2 if he has voice.
- added GETVERSION ARexx command to check AmIRC's version.
- added GETLASTLINE, GETLINECOUNT and GETLINE arexx commands. GETLINE
  will wait(!) for a new line from the server to arrive and return this
  line into the "LINE" variable. It will also return the parsed line
  components into LINE.PREFIX (userhost), LINE.COMMAND (either numerical
  or alpha command), LINE.DEST and LINE.REST. The meaning of the components
  depends on the specific message.
- added new /RXRETURN user command. This is merely to support scripts
  and ought to be used with /ALIAS. It will return it's first and following
  parameters with the current GETLINE command in LINE.COMMAND and LINE.REST
  respectivly.
- fixed several mode changes command templates which were messed up.
- removed auto turn off of input filtering in string gadgets again. Will
  now internally accept CTRL-V, CTRL-U (!), CTRL-B, CTRL-G and CTRL-W
  for entering formatting codes into strings, regardless of the
  IControl input filtering settings.
- lines which contained only control codes messed up the word wrap
  engine.
- fixed a stupid bug in notify which caused ISON request to be not
  send properly under certain circumstances.

0.75beta
--------
- /LIST with a single channel as an argument will no longer cause a complete
  list to be requested.
- fixed "repeat-on-cr-pressed" bug in the string gadgets.
- added parsing of 271/272 response codes (Undernet SILENCE list).
- windows are properly closed upon close request; no longer waits for the
  PART message from the IRC server.
- vbar rendering in the main listview will now completely be done by MUI
  for efficency and exact positioning.
- added netsplit detection.
- string gadget has now turned off input filtering by default.
- string gadget accepts up to 1024 chars and splits accordingly

0.74alpha
---------
- some MUI3 dependancy slipped in the window creation function.

0.73alpha
---------
- pressing TAB returned garbage if no user was referenced in the user listview.
- the first window didn't properly show the nickname.
- load and save config with file requester failed badly due to misinitalized
  screen variable.
- added RAW, ECHO and CHANNELS arexx commands.
- fixed several bugs with cycle chains and keyboard control of gadgets.
- raised stack size for DCC CHAT threads. Should fix all kinds of crashes,
  esspecially with as225/inet.
- sound loading was severly messed up and caused about EVENTS^2 datatypes
  load to happen.
- fixed WHO layout a bit.
- extended the /LIST command to properly work in "shell mode"
  with pattern and -MIN arguments.

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:
