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

=== *** 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.

**
** Notez bien v0.59:
** =================
** Config files have been renamed from *.MIRC to *.AmIRCfg. AmIRC
** will rename an existing Default.MIRC to Default.AmIRCfg if no
** real file will be found. The server list however will be lost due to
** internal structural changes. Sorry for that.
**

This is still a alpha "release". It doesn't contain all the features for
the planned final release, it might have severe bugs.

If you have "strange hangups" when using Magic Menu, please install
the "SafeGIRPort" patch, available from wade1.ab.umd.edu in the same
directory as AmIRC resides in.

Make sure you have installed SetPatch 40.16, since both AmIRC and MUI
heavily rely on the memory pools subsystem working correctly. Pools
support in the Kickstart EXEC is broken in all known releases.

Some people seem to not have understand the DCC CHAT implementation.  RTFM,
guys :-) AmIRC doesn't open a "chat window" for you.  If a DCC CHAT connection
is opened, all /MSG to the destination are send via DCC Chat.  You can,
however, open a dialog window by using the /QUERY nick command.  This
dialog window works for both DCC CHAT and normal /MSGs.

There was a lot of fuss about the logging in earlier versions of AMIRC.
This text was originally part of this document:

INVALID> In order to control distribution, this version also sends a report
INVALID> to my system denoting remote site, nickname and version of AMIRC used.
INVALID> Don't use the alpha if you don't like this. The logging will go
INVALID> away as soon as alpha stage has ended.

The logging was added in early alpha stage when I gave out AmIRC only to
selected users.  Someone leaked, and a virus infested copy of AmIRC was
spread around (see "story.txt" for details).  I added the logging to make
sure that I could track all further leakage; every Alpha send from me
personally had a serial number to check out.  Since the Package is now
public anyway, the logging has been taken out.  I am sorry for now removing
the logging for the first publically accessible release.  Please note that
the logging was mentioned in both the Readme and the About info.

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 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.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:
