===================================================================
  _____       _                       _   
  \_   \_ __ | |_ ___ _ __ _ __   ___| |_   The
   / /\/ '_ \| __/ _ \ '__| '_ \ / _ \ __|  Internet
/\/ /_ | | | | ||  __/ |  | | | |  __/ |_   Suite for
\____/ |_| |_|\__\___|_|  |_| |_|\___|\__|  OS/2 Warp
                                                
   _       _                 _                       
  /_\   __| |_   _____ _ __ | |_ _   _ _ __ ___ _ __ 
 //_\\ / _` \ \ / / _ \ '_ \| __| | | | '__/ _ \ '__|
/  _  \ (_| |\ V /  __/ | | | |_| |_| | | |  __/ |   
\_/ \_/\__,_| \_/ \___|_| |_|\__|\__,_|_|  \___|_|   


22. October 1997

===================================================================

Version 1.20

Copyright (c) 1997, Adventure Software
All rights reserved.

SEE MY WEB PAGE at http://www.inetadv.net/ for newest info !!

===================================================================
                          N O T I C E
===================================================================
This IS a shareware package, and does require a registration fee if
you choose to continue using it after 30 days.  The registration
fee for this product is currently 40 USD.

Note that after v2.99 your registration will expire, and you will
need to re-register in order to upgrade to versions higher than 2.99.

See the file REGISTER.TXT for more information about how to register


===================================================================
                      L E G A L   S T U F F
===================================================================
As usual with shareware, I'm not responsible for any damages you
may suffer by using Internet Adventurer in any form or way. If you
are going to jail because of unpaid huge phone-bills, then it's not
and never will be my problem. Any damages/faults/whatever arising
from the use of Internet Adventurer is entirely your own problem.
If your harddisk vanish after installing, or your wife leaves you
it's your own problem - got it ?

Also, be sure to read the included LICENSE.TXT before using this
product !

===================================================================
                     R E Q U I R E M E N T S
===================================================================
Internet Adventurer requires OS/2 Warp, with min 8Mb Memory - it
probably will run on 4Mb, but I wouldn't to it :) It works fine
under Warp 4 (Merlin)

Also, I recommend installing fixpak 26 for Warp 3, and fixpak 1 for
Warp 4
Doing so, really fixes alot of traps especially in PMCTLS and PMMERGE.


===================================================================
                  A C K N O W L E D G E M E N T S
===================================================================
I would like to thank all the people in #os/2 and #os2prog who have
helped me with this, especially the ones who have given me sample
code, and tolerated my bugs :)

Also, a big thanks to Bjrn Andersson, author of the Kon editor which
I use in modified form, in the compose window, and the article window.

Also, I've gotten a lot of help from people on my mailing list - some
very helpful people live there !

And finally a very big thanks to all the people who have helped me
betatest IA, and pointed out all the bugs !


--------
Contents
--------

1. Contacting the Author (that's me)
2. Current Features List
3. Known Bugs/Workarounds
4. Missing Features / ToDo List
5. Command-line arguments
6. Supported IRC Commands
7. REXX Scripts
8. REXX Quicklist
9. Toolbars
10. Database recovery
11. Version history


------------------------------------
1. Contacting the Author (that's me)
------------------------------------

You  can contact me in a number  of ways.  Unfortunately, I can't
provide neither a fax or phone number at this time.

Mail:          Adventure Software
               Kim Rasmussen
               Gartnervang 2C, 3tv
               DK-4000  Roskilde
               Denmark
 
Web:           http://www.inetadv.net
               http://home3.inet.tele.dk/krasmus/

Internet:      support@inetadv.net - or use my mailing-list for all
               questions/suggestions about InetAdv !!
           
IRC:           I can usually be found hanging around in #os/2 or #os2prog
               you might even catch me in #inetadv :)
               My nickname is usually Starlord_, but look for Kim Rasmussen
               in my real-name.

Mailinglist:   NEWSFLASH: The old mailinglist has been rather unstable, so I
               have setup a new one - send mail to <listserv@inetadv.net> with
               the line "subscribe inetadv-l <Your Name>" in the BODY of the
               message.


------------------------
2. Current Features List
------------------------

 - Certified OS/2 Warp compatible, by IBM 

 - Consistent userinterface - all the sections of Internet Adventurer share
   the same toolbars, and the same look and feel - you can even drag toolbar
   items from eg. the WWW window to an IRC window.

 - IRC (rfc #1459 compliant)

 - CTCP (Client to Client Protocol) commands supported

 - DCC CHAT fully supported (private chat - remember to set your IP address)

 - DCC Multiple concurrent filetransfers are fully supported, both ways

 - Multiple Threads, one per IRC channel

 - Fully multithreaded 32-bit code - no 16-bit code at all

 - No class libraries, uses PM functions directly, for maximum speed

 - Multiple Windows - one window for each channel or for private messages

 - Multiple colors, get a complete overview in seconds, configure strings
   that will be shown with different colors.

 - Configureable fonts and colors

 - WWW support, using WebExplorer's API, to ensure that the newest available
   browser technology is supported. You should even be able to use Internet
   Adventurer with a newer version of WebExplorer (no guaranties though...)
   It's even faster that WebExplorer !

 - Proxy and Socks support for WWW, gopher and FTP

 - You never need to cancel loading of an URL, to begin loading another, you
   just click on the link you want, even if the page you're currently loading
   isn't complete yet.

 - REXX Scripts support, compatible with the GammaTech IRC-Client v2.00.

 - Nickname list in channel-windows

 - User Configureable toolbars, click on the toolbar with your right mouse
   button, and add/edit/delete buttons. You can also drag buttons to other
   windows, if you press ctrl while dragging, they get copied.

 - DLL PlugIn's - support for extending Internet Adventurer with customized
   tools.

 - Fully configureable quicklist with support for multilevel groups, where
   you can put your URL's. One group for eg. "Internet Search Engines", one
   for "OS/2", one for "Fun stuff" etc....

 - Smart URL resolving by 'nickname', enter eg. 'Yahoo' - and that will take
   you to http://www.yahoo.com, or enter 'inetadv' - which will take you to
   http://home3.inet.tele.dk/krasmus/

 - Intelligent URL handling and interfacing, from a www document, select a link
   called 'irc:/server irc.dd.chalmers.se' and InetAdv will open up an IRC
   window, and connect to the specified server.

 - Viewing HTML source, saving to disk, displaying from disk.

 - Registration via registration keys - easy upgrading of registered versions.

 - URL Parsing REXX scripts - You can completely customize the URL handling.

 - Quicklist database accessible from REXX scripts

 - Importing of WebExplorer or Netscape quicklist

 - Quicklist supports Drag & Drop
 
 - URL objects can be dragged into the quicklist

 - IDENTD support for those IRC servers that require it.

 - Newsreader with both online and offline newsreading support

 - Support for multiple simultaneous newsservers (requires registration)

 - Support for UU-Decoding both news and mail messages

 - Mail, support for retrieving via POP3 and sending via SMTP

 - Multiple mail accounts (requires registration)

 - Selectable loading of plugins - eg. if news/mail is never used, it can
   be left out, and thus never uses any memory.

 - Automatic recovery of any eventual damaged quicklist/news databases

 - Threaded viewing of News and Mail - True news threading (by references)

 - Support for Netscape for viewing HTML/Java/Frames

 - WAV file support

 - Syntax hiliting email editor/viewer - quoted lines are shown in other
   colors than normal text, and URL's are hilited.

 - Doubleclick on any email address or URL anywhere in the Newsreader,
   Mailer, or in IRC.

 - Native Java support - run java applets inside Internet Adventurer !

 - Extensive email and news filtering, including REXX support

 - Killfile support

 - Intelligent handling of crossposted news articles.

 - MIME and UUEncoding support

 - Multiple charactersets and codepages are supported

 - WebWatcher notifies you when important www-pages are updated.

 - Lot's of other features - too many to mention here


-------------------------
3. Known Bugs/Workarounds
-------------------------

 - 'Time' is not updated in filetransfers, but always set to 00:00:00

 - Hanging settings - if the settings dialog is hanging, and you have
   more than 256 colors, and a Matrox card, upgrade to v2.04 of their
   drivers - that will fix it.

 - If you keep getting an error-message saying that Netscape is not
   ready to accept a new URL, check that you are using the PMDDEML.DLL
   file that came with Netscape. If you have installed fixpak 1 for
   Merlin, and selected to update the PMDDEML.DLL file, you need to
   restore it from your archive directory, or to reinstall Netscape
   before Internet Adventurer can function correctly with Netscape.

 - Toolbar colors messed up when running Netscape.
   This only happens in 256-color mode when netscape modifies the
   palette - right-clicking the toolbar, and selecting 'Reset Style'
   sometimes fixes the problem.

 - Hang on startup.
   This can happen if your MMPM is corrupted, and occurs while trying
   to play the IA startup sound. Deleting iastartup.wav, and
   restarting IA should should work. Reinstall of MMPM is recommended.


-------------------------------
4. Missing Features / ToDo List
-------------------------------

 - Password protected folders for news/mail groups

 - I'll clean DCC up a bit, I don't like the way it works now - I'll add
   tons of options for blocksize etc. and I'll make one DCC window that shows
   the status of all the current DCC filetransfers instead of the tons of
   windows you see now.

 - Connections to multiple IRC servers simultaneously

 - Gopher and FTP is currently only supported via the WebExplorer API
   I probably won't touch gopher, but you'l get a beefed up FTP, with support
   for upload/download etc.

 - Telnet isn't supported yet, but I'm working on it...

 - If you have any suggestions for other features, please email me at
   support@inetadv.net and tell me what you want.

 - I have a _huge_ todolist, and tons of small yellow pieces of paper glued
   to my monitor - so don't dispair if you can not see your suggestions here.


-------------------------
5. Command-line arguments
-------------------------

Syntax is: INETADV.EXE [/I:<inifile>] [/P:<pluginfile>] [URL]

Example: INETADV.EXE /I:inetadv.ini www.inetadv.net
Example: INETADV.EXE http://home3.inet.tele.dk/krasmus/
Example: INETADV.EXE irc:/default /P:www_only.cfg

URL is an optional URL to retrive immediately after starting Internet Adventurer.

/I:<inifile> where <inifile> is the name of the ini-file to use for retrieving the
settings. If this option is not specified, OS2.INI is used.
NOTE: This option should no longer be used, since IA now stores it's configuration
in its own database, instead of in OS2.INI - if you want multiple configuration,
start IA from multiple directories.

/P:<pluginfile> where <pluginfile> is the name of a plain text file, where each
line in the file contains the name of the DLL to load - eg. 

---- Cut here ----
IA_IRC
IA_WWW
IA_NWSML
IA_JAVA
---- Cut here ----

or, if NetScape should be used instead of the 'normal' WWW

---- Cut here ----
IA_IRC
IA_NETSC
IA_NWSML
IA_JAVA
---- Cut here ----

Note that only the firstname of the DLL should be present - not the extension !

If you never use IRC, you can just delete it from the file, and same memory by not
loading the IRC DLL. Note that if you do not load it, and have any toolbar buttons
that have some kind of IRC action, InetAdv will complain about the buttons and you
must then change or delete them.

The default pluginfile is called "iaplugins.cfg" - if this file is found in the
current directory when InetAdv starts up, it will use it. If no file is found, all
the DLL's will be loaded.


-------------------------
6. Supported IRC Commands
-------------------------

In a channel window, if you just write a string, it's sent to that channel
if you put a '/' in front, it's treated as a command.
eg. to get statistics (uptime) from you server, type '/STATS U'

All RFC 1459 commands are supported, just type '/' in front, and whatever
you type will be sent to the IRC server directly (with exceptions)

The exceptions are:

/JOIN <channelname>
/CHANNEL <channelname>
   Join a new channel, eg. "/JOIN #os/2" joins the #os/2 channel.

/JOININV
   Join the channel you were last invited to.

/CTCP <nickname> <command>
   This commands send's a CTCP request <command> to <nickname>
   eg. /CTCP Starlord_ VERSION to get the version of Starlord_'s client.

/DCC CHAT <nickname>
   Ask <nickname> to open a private chat conversation with you. This causes
   Internet Adventurer to open a socket, waiting for a call from the other
   client. Data on this session are NOT sent through the IRC server, and you
   are therefore sure that no IRC-Operators can listen in.

/DCC SEND <nickname> <filename>
   This command is used if you want to send a file to <nickname>.
   This causes Internet Adventurer to open a socket, and wait for a call from
   <nickname>'s client. If <nickname> accepts, he will then connect's to you
   for receiving the file from you.

/ME <text>
/ACT <text>
/ACTION <text>
   Use this command to tell that you're performing an action, if your nickname
   is Starlord_, and you type "/me thinka Internet Adventurer is great", it
   will be displayed to the other people on the channel as:
   "* Starlord_ agrees that Internet Adventurer is great"

/MSG <nickname> <text>
   Uses this command to send a private message to <nickname>, this message
   will not be sent to the channel you're in, but only to the <nickname> you
   specify. If you wan't to be sure that no one can intercept your message,
   you might consider using /DCC <nickname> CHAT instead, to get a true
   private connection.

/LEAVE
   This command causes the window for the current channel to be closed, and
   it leaves the channel - it's the same thing as closing the window by
   double-clicking on it's icon.
   If this command is issued in a DCC Chat window, the chat connection is
   disconnected, and the window is closed.

/SIGNOFF
   If issued in a channel-window, this command causes the connection to the
   server to be closed. The windows will still remain on the screen.
   If issued in a DCC chat window, the DCC connection is closed.

/BEGONE
   This command removes all the windows, and disconnects.

/VERSION <nickname>
/VER <nickname>
   These commands do the same as /CTCP <nickname> VERSION - it ask's
   <nickname> for his version.

/USERINFO <nickname>
   This command does the same as /CTCP <nickname> USERINFO - it ask's
   <nickname> for his userinfo.

/FINGER <nickname>
   This command does the same as /CTCP <nickname> FINGER - it ask's
   <nickname> for his finger info.

/PING <nickname>
   This command does the same as /CTCP <nickname> PING - it ask's <nickname>
   to return the ping response, so the delay between the two clients can be
   measured.

/EXECUTE <command>
   This executes the given command, eg. to put a directory listing into a
   file, you can use "/exec dir >\file.txt".

/SERVER <hostname:[port]>
   This command closes the connection to the current server, and connects to
   the new specified server.

/MODE <channel/nicname/*> [mode parameters]
   This command changes the mode of either a channel, or a nick. If * is
   entered instead of channel-name, the current channel is used.
   If no parameters are given, the mode is queried instead of set.

/TOPIC <channel/*> This is a topic
   This command changes the topic of a channel. If * is entered instead of
   channel-name, the current channel is used. If the topic itself is excluded,
   then the current topic is displayed.

/CLEAR
/CLE
   These commands clear/erase the contents of the current window.

/QUERY <nickname>
/PRIVATE <nickname>
   These commands open a private window, where all messages you type are sent
   to the nickname as private messages.

/SCR <script name> [script parameters]
   This command executes a REXX script and passes the script parameters
   (if any) directly to the script. The other parameters passed to the script
   are the same as the one passed to the incoming/outgoing scripts.

/RUN <filename>
   This command executes each line in the file, just as if each line was a
   command, entered on the command-line. This command can be used to "type"
   a file to the channel.

/QUIT <quit reason>
   This quits - you can optionally specify a quit reason, eg.
   "time for dinner", or "gotta install new version of InetAdv" :)

/LOG ON <filename> | OFF | DELETE
   /LOG ON <filename> enables logging, and writes all lines in the window
   you specified to the file you specified. /LOG OFF disables logging again
   /LOG DELETE deletes the current logfile. - when log is started, logging
   is always appended to the logfile.

/IRCTRACE ON <filename> | OFF | DELETE
   /IRCTRACE ON <filename> enables irc tracing, and writes all incoming and
   outgoing lines to the file you specified. These lines are exactly as they
   are received from / set to the IRC server. /IRCTRACE OFF disables tracing
   again /IRCTRACE DELETE deletes the current trace-file. - when trace is
   started, new trace info is always appended to the trace-file.

/URL <url>
   This one will try to fetch the URL you specify, just as if you typed it
   on the WWW URL line, including resolving quicknicks.

//<string>
   This one sends the <string> unmodified to the server. This might be
   usefull for some people.


---------------
7. REXX Scripts
---------------

There are currently 2 kinds of REXX scripts: URL parsing, and IRC scripts.

--- URL Parsing scripts ---
You can specify one script in the General settings in the Settings Dialog.
This script will then be called with the URL as a parameter everytime an URL
needs to be resolved. This can happen when eg. selecting a link in the WWW
Window, or pressing a toolbar button that's linked to an URL.

The script gets only one parameter (the URL) and it _must_ return either an
empty string (if it has handled the URL itself) or the URL that could be
parsed by Internet Adventurer.

These scripts give you a chance to fully customize Internet Adventurer, you
can eg. use them so all ftp:// URL's are parsed to an external FTP client
that downloads the appropriate file - it's up to up, the possibilites are
virtually endless.


--- IRC Scripts ---
Yes, I now support REXX scripts in IRC. I've tried to make them compatible
with GT-IRC, as far as possible, this means that you are able to run eg. the
IceBerg scripts for enhancing the IRC client.

NOTE: IRC Scripts can now also be used to change the messages to/from the
server - see 'Return codes' for info about what to return.

 --- First, a warning ! ---
REXX scripts can really eat away at your CPU, it can take some performance,
especially for large scripts. I'm currently working on it, to see if I can
speed the performance of the REXX scripts up, but for serious scripting, you
should use the DLL plug-in interface that I'll soon be adding.

They work the following way:

You specify the name of 2 rexx script files, one which is called for every
command typed by the user (outgoing), and one which is called every time
the host sends a line (incoming).


The incoming messages scripts are called with 3 parameters as follows:

script.cmd <hwnd> <current_nickname> <string>


The outgoing commands scripts are called with 4 parameters as follows:

script.cmd <hwnd> <window-name> <current_nickname> <string>


The <hwnd> must be used when displaying messages, the <current_nickname> is
for the script to use if it want to, and the <string> is either the command
that the user has typed, or the line received from the IRC server.

The window name is one of the following:
   - Channel name (starting with # or &) - if command is issued in a channel
     window
   - Nickname (not starting with #, & or !) - if command is issued in a
     query/private window.
   - ! if command is issued in another window (usually main window)


--- Return codes ---

The script must return an empty string if Internet Adventurer should not
process the command, they must return "OK" when InetAdv should process the
command unaltered, and finally, they can return a modified command that InetAdv
will then handle. This can come in handy, for eg. scripts that needs to do
translation of special characters.

Example of return codes:
-------------------
return ''               - This causes InetAdv to ignore the command
return 'OK'             - Causes InetAdv to process the original command
return 'anotherstring'  - Causes InetAdv to process anotherstring instead of
                          the original command. This is especially usefull for
                          scripts that do any kind of translation, because if
                          IrcRexxCommand is used, the script is called again,
                          causing delay and it makes the script more complex
                          because it must be sure that it doesn't translate the
                          string again. Returning the modified/translated command
                          does NOT cause InetAdv to call the script again, but it
                          immediately processes the command.
-------------------

There are 5 functions available to the script writer:

IrcRexxDisplay(<text>, <hwnd>)
   This function displayes <text> in the window <hwnd> if <hwnd> is a
   null-string, the text will be displayed in the main irc window.

IrcRexxCommand(<text>, <hwnd>)
   This function let's the rexx script enter a command. This command will be
   processed by Internet Adventurer in the excact same way, as if the user
   typed the command himself. The command will be passed to the script again.
   Note however that playing recursive commands should be avoided, eg. a script
   handling the command "/PLAY" should never send the same command in response
   to a "/PLAY" command.

IrcRexxSend(<text>)
   This function can be used by the script to send a command directly to the
   server. Internet Adventurer will not do any processing of the command, but
   it will forward it directly to the server.

IrcRexxWildCard(<wildcard>, <string>, <options>)
   This function check if a given wildcard matched the string. If a match if
   found, "MATCH" is returned, otherwise "NOMATCH" is returned.
   <option> is optional, and can currently only have one value if specified.
   The value is: 'NOCASE' to turn case sensitivity off.

   Wildcards that can be used are ? to match one char, and * to match any
   number of characters. Use \* or \? to look for * or ? as characters.

   NOTE: The pattern matching matches the whole string, eg. "a" does _not_
   match "abcdef", but "a*" matches "abcdef". "c" does not match "abcdef",
   neither does "*c", but "*c*" does !

IrcRexxIsOp(<channel>, <nick>, <hwnd>)
   This function can be used to query if the nickname is currently operator on
   the specified channel. If channel is "*" then the current channel is
   assumed. This function returns "YES" if the user is op, "NO" if he isn't,
   and "ERROR" if the channel can't be found, or the user is not on that
   channel. NOTE: This command can be used to determine if a user is on a
   given channel.
   
Also, if you need any special function, let me know, and i will probably put
it in.

-----------------
8. REXX Quicklist
-----------------

Internet Adventurer stores all it's quicklist entries in a database. This
database can now be accessed via REXX scripts, and a sample script for
importing the WebExplorer quicklist is also included (import.cmd).

General note about return codes:
   All the functions (except IARX_QOpenDatabase) returns an error code which
   says if the requested operation has succeeded. A return code of 0 means
   that everything went OK, and another return-code indicates an error.

For examples on how to use it, look it the .cmd files - a reference of the
available functions comes here:

IARX_Register
   This function must be the first one to be called from the REXX script.
   It registers all the other functions with REXX, so they can be resolved.

IARX_QOpenDatabase
   This function opens the quicklist database, and makes it available for
   reading. Remember _always_ to close the database after use.
   This function returns a string with an error-message if the database could
   not be opened, and it returns an empty string if the database was opened
   successfully.

IARX_QCloseDatabase
   This function closes the opened database

IARX_QCreate
   This one is use to create a new record in the quicklist, this can be
   either a group or an item.
   It needs one parameter, the name of a stem variable that holds the record
   to insert, eg.  rc = IARX_QCreate("q") - where the stem variable _must_
   have been setup like this:
      q.id            - Record ID
      q.parent        - Parent ID
      q.children      - Number of children
      q.type          - Type (0 = Group, 1 = URL/Item)
      q.title         - Title of Item of Folder
      q.nick          - Nickname of item (must be unique and non-numeric)
      q.url           - The URL (if type = 1)
   Upon successful return, q.id contains the assiged ID.
   If this function fails, it is usually because either the stem variable is
   not setup correctly, or because an item already exists in the quicklist
   with the same nickname.

IARX_QUpdate
   This one is used to update a record in the quicklist, and it will fail if
   it does not already exist.
   It needs one parameter only (look at IARX_QCreate for info about it)

IARX_QDelete
   This one is used to delete a record from the database, note that you must
   only delete a group if it is empty - trying to delete a non-empty group
   could cause bad things to happen to the quicklist database.
   It needs only one parameter, which must contain the ID of the record to
   be deleted.

IARX_QGet
   This function retrieves a record from the database, it requires two
   parameters, the id of the record to read, and the name of the stem to
   place the results in.
   Note that the parent of all quicklist records had ID 0


IARX_QMakeTree
   This function is used to read an entire level of entries, it takes two
   parameters, the first is the name of the stem variable to place the
   results in, the second is the id of the parent record, eg. specifying 0
   as the parent ID gives a list of all the records in the root-level of the
   quicklist tree.
   The stem will look like this on output: rc = IARX_MakeTree("tree", 0)
      tree.items        - Number of items returned
      tree.1.id         - ID of record
      tree.1.parent     - ID of parent
      tree.1.children   - Number of children
      tree.1.type       - Type (0 = Group, 1 = URL/Item)
      tree.1.title      - Title of Item of Folder
      tree.1.nick       - Nickname of item (must be unique and non-numeric)
      tree.1.url        - The URL (if type = 1)

      this continues with tree.2. tree.3. etc. up til tree.items has been
      reached.

   Note that this function will later be enhanced, so it returns the contents
   of the entire tree - this can be done manually in the REXX script now, by
   just calling it again for each group discovered.


WARNING: Before you make your own script to play around with the quicklist,
be sure to take a backup of your quicklist database first, this can be done
by copying quicklst.* to another directory, and copying them back (after
stopping Internet Adventurer) if something goes wrong.
      

-----------
9. Toolbars
-----------

Internet Adventurer supports user-configureable toolbars. That means that you
can create your own buttons on the toolbars, and assign actions to them.

To change the buttons on a tool-bar, click on it with the right mouse button,
and a menu will appear.

You can then select 'Create item' to create a new button, and a notebook will
appear where you can assign actions to it. Select an action, and enter
eventual parameters for it. After assigning an action, you need to give the
new button a name and/or a bitmap. You can select from a list of built-in
bitmaps, or you can load one from a file.

It is also possible to drag/drop buttons from one toolbar to another.


By default, the following actions exist:

1. About InetAdv
   Parameters: None
   Action:     Pop's up an about-dialog for Internet Adventurer.
         
2. Execute program
   Parameters: Programname, and eventual parameters for the program
   Action:     Starts the selected program with the command
               "start /N /I <program>"
   Example:    To start intercom.cmd, you must set the parameters to:
               "cmd.exe /c intercom.cmd" to call the cmd-shell, and let it
               start the .cmd file.
               To start a .exe file, just type the name of the .exe file in
               the parameter list.
      
3. Open URL
   Parameters: The URL to open
   Action:     This command opens an URL.
   Example:    Set parameters to "settings:irc" to open the settings dialog,
               and to "http://www.inetadv.net" to open my homepage.
               You can also type "mailto:support@inetadv.net" to send a mail to me,
               or even "irc:default" to open an IRC connection with the
               default setup.
               Internet Adventurer will look at the protocol, and decide what
               way to initate the communication.

4. Settings
   Parameters: Notebook Tab Name
   Action:     Opens the settings dialog
   Example:    Set the parameter to "IRC.HOST". Pressing the button, will
               open the settings-notebook, and display the Host page under
               IRC settings.

5. IRC: Connect
   Parameters: None
   Action:     Opens an IRC session to a server, this is actually the same as
               opening an URL called "irc:default"

6. IRC: Join Channel
   Parameters: None
   Action:     Opens the 'Join channel' dialog, and let's up select the channel
               you want to join.

7. IRC: Command
   Parameters: IRC Command
   Action:     Executes the IRC command, just as if it was entered on the
               command-line, eg. "/msg Starlord_ Internet Adventurer is great"
               will send the message "Internet Adventurer is great" to
               Starlord_.

8. IRC: Userlist
   Parameters: None
   Action:     This will display the list of active users in the channel. Note
               that this action only has effect if the window it's issued from
               is an IRC channel-window.

9. WWW: Start
   Parameters: None
   Action:     Opens the WWW window if it's not already open.

10. WWW: Back
   Parameters: None
   Action:     Retrieves the previous WWW document

11. WWW: Forward
   Parameters: None
   Action:     Retrieves the next WWW document (only if a Back command has
               been issued)

12. WWW: Reload
   Parameters: None
   Action:     Reloads the current WWW document

13. WWW: Cancel
   Parameters: None
   Action:     Cancels loading of the current document

14. WWW: Add to Quicklist
   Parameters: None
   Action:     Adds the current document to the quicklist

15. WWW: Open File
   Parameters: None
   Action:     Opens a file for display in the WWW window

16. WWW: Save current file
   Parameters: None
   Action:     Saves the current document

17. WWW: View Source
   Parameters: None
   Action:     Displays the source (HTML code) for the current document

18. WWW: Search
   Parameters: None
   Action:     Searches the current document

19. WWW: Search Again
   Parameters: None
   Action:     Searches for the next match in the current document

20. WWW: Print
   Parameters: None
   Action:     Prints the current document




List of URL protocol types currently recognized:

Protocol     Parameter
settings:    <settings-page> (eg. IRC.FONTS)
irc:         <irc-action>    (see explanation)
mailto:      <emailaddr>     (eg. support@inetadv.net)
http:        <http_host>     (eg. www.inetadv.net)
ftp:         <ftp_host>      (eg. hobbes.nmsu.edu)
gopher:      <gopher_host>   (eg. gopher.almaden.ibm.com)
file:        <filename>      (eg. InetAdv.htm)
quicknick:   <nickname>      (eg. yahoo)
quicklist:   None            (brings the quicklist to the foreground)
webwatch:    None            (brings the webwatcher to the foreground)
addrbook:    None            (brings the address book to the foreground)
news:        None            (Starts the newsreader)
mail:        new             (Checks for new mail)
java:        <java-url>      (Executes native java applets)
setupwizard: None            (Starts the setup wizard)

Explanation of 'irc:<irc-action>' :
The action can be:

1 - default
   This causes a normal connection to be established

2 - /command
   This executes the specified IRC command. The command will be treated as if
   it was entered in the main IRC window. (eg. "irc:/join #inetadv"

NOTE: You can use this to create a button that connects to a certain IRC
server, just set the action of the button to "Open URL", and the parameters to
"irc:/server irc.epix.net" - this will open the IRC window, and connect to
the specified server.


Explanation of 'quicknick:<nickname>' :

This 'nickname' will be looked up in the quicklist database, and if a match is
found, the matching URL will be taken instead. Imagine that you have in the
quicklist an item called 'Searc Yahoo', with nickname set to 'Yahoo' and URL
set to 'http://www.yahoo.com'.
When InetAdv sees 'quicknick:yahoo' then it will look up yahoo in the quicklist
database, and change the URL to 'http://www.yahoo.com' This URL will then be
used.

Also note that in the WWW URL-line, just 'Yahoo' can be entered if you want to
connect to http://www.yahoo.com - this can be a _great_ timesaver.


Explanation of 'java:<java-url>'

The 'java-url' is the URL where a java application is found, both file: and
http: URLs are supported. The url must be followed by ?<classname> where
classname is the name of the java class to execute, eg.

'java:http://www.measoft.com/classes/?AquaTv' Will load classes from
'http://www.measoft.com/classes/', and execute the AquaTv class.

If you have installed the java samples, try with this URL:

'java:file:///e:/javaos2/demo/tictactoe/?TicTacToe.class' - (replace e: with
your java drive) - it will run the TicTacToe example shipped with java.


---------------------
10. Database recovery
---------------------

If you quicklist database get's damaged, it is now possible to recover as much
as possible from it. just follow these steps:

 - close Internet Adventurer
 - start an os/2 window and switch to your inetadv directory
 - Now, you should make a backup of your quicklst.* files before tampering
   with them.
 - run qexport.cmd - this will export the quicklist into quicklst.txt
 - delete quicklst.ix* and quicklst.dat
 - run qimport.cmd - this will then recreate the database with all the quicklist
   entries from quicklst.txt
 - exit the os/2 window, and restart Internet Adventurer
 - Now, the database should be fixed again - if you still have any problems,
   please let me know. If you find a way to reproduce any damaging of the
   database, please let me know that also.

If something bad happens to your news database, you can delete the current one
by simply deleting the art* and newsgrp* files. This will cause all your mail
and news to be destroyed, so beware !!
However, before you do this, select 'Compact Database' in the File menu in
the news/mail window - this will rebuild the database, and compact it to save
space.

You should take frequent backups of your news/mail database to make sure that
it won't be totally destroyed. Internet Adventurer contains an auto-recovery
function, which will be able to recover from a corrupted datebase, but there
is no guarantie that you will not lose some information. You can also risk that
Internet Adventurer's tables become inconsistent, eg. the number of articles
reported in a group might not be the same as the actual number, if the database
has been damaged. I'll soon create a utility that will walk though the entire
database, and ensure that it is consistent.


-------------------
11. Version history
-------------------

Version 0.11

 - Fixed nickname size bug, now you can only enter 9 char nickname.
 - Fixed bug with "World Wide Web" menu-item only selectable once.
 - When opening a window, it's now in the foreground instead of in the back.
 - Bug resurfaced, private messages were shown with your nickname, and CTCP
   ACTION command was not recognized.
 - CTCP PING command implemented
 - Bug in DCC Filetransfer, the number of received bytes was not set to 0
   before starting receiving a file.
 - Private messages no longer popup in a window automatically, they are now
   displayed in the main IRC window
 - Profile information is now stored in a .ini file, that makes it easier
   to upgrade without hurting the old configuration
 - Autojoin flag for channels added, if set, the channel will automatically
   be joined when connecting.
 - If nickname already exists, I now cut one character from the nick, and try
   again, until it's not rejected.
 - Yes, I now got rid of the MLE's for the channel-window, and I've made my
   own MLE lookalike, with color support.
 - Fixed WWW, so forms work

Version 0.12
 - Scroll-back in channel-windows now possible
 - Additional colors added for nicknames
 - A list of strings can now be configured, when Internet Adventurer sees
   one of these strings, it will change the color, so you'll be alerted.
   This is extremely usefull for eg. inserting nicknames of friends etc.
 - Firewall-settings for DCC is on the way (it doesn't work yet, but the dlg
   is there)
 - Now you can cancel loading a WWW document, and news, proxy and socks
   settings are now possible for the WWW.
 - Reload and back menu's added to WWW window.
 - It's now possible to interrupt loading of a WWW document, by just selecting
   a new link. The current document will then be cancelled, and the new one
   will be loaded.

Version 0.13
 - Fixed trap when messages arrived in a minimized window :(

Version 0.14
 - Now, word-wrap is really word-wrap, lines are no longer cut in the middle
   of a word, but words displayed whole.
 - Font's are now selectable from a standard font dialog box.
 - Colors are now selectable
 - Fixed trap when a command was sent by the server, without a from name
 - Fixed a trap which occured if no inetadv.ini file was present (oops)

Version 0.15
 - Fixed a few spelling mistakes :)
 - Messages to your nickname now goes to the active window, as well as the
   main IRC window
 - Moved the 'Leave Channel' menu into the action menu
 - Fixed an eventual trap, if a DCC CHAT request was refused.
 - Incoming DCC messages were not shown (oops)
 - If the userlist was minimized, and then restored, it would resize wrong.
 - Fixed a bug in the channel-windows, sometimes if the lines were very long
   the window could get obfuscated while scrolling.
 - Previously, the buttom of the chars on the last line couldn't be seen,
   this is now fixed.
 - Command /leave implemented
 - Command /signoff implemented
 - Command /begone implemented

Version 0.16
 - DCC command-line is no longer disabled when not connected.
 - Command /version implemented
 - Command /ver implemented
 - Command /userinfo implemented
 - Fixed bug: Userinfo wasn't sent to the nick asking for it :(
 - Changed "/DCC <nick> <filename" to "/DCC SEND <nick> <filename>", and
   "/DCC <nick> CHAT" to "/DCC CHAT <nick>"
 - /WHO /WHOIS /ISON etc. replies have been beautified a bit, and are now
   also shown in the active window.
 - Command-line scrollback now implemented. Internet Adventurer now remembers
   the last 20 commands you've typed (much like the cmd shell), use arrows
   up/down to scroll in the commands. You can also use ESC to clear the input
   field.
 - Command /finger implemented
 - Command /ping implemented
 - Command /execute implemented (beware of IceBerg's /exec) use this one
   instead
 - Command /clientinfo implemented
 - CTCP responses are now also shown in the active window.
 - Autodetect IP address now works
 - When a partially overlapped channel-window was scrolled, sometimes the
   contents could get corrupted.
 - It's now possible to specify channel-name and password in the join list,
   just type "#channel pass", that should work.
 - Notify list implemented.

Version 0.17
 - Added '***' to a lot of messages, to make it clear where they come from.
 - When other people are joining a channel, their username/hostname is now
   also shown
 - Fixed a _huge_ memory leak - for every line you've typed, I would loose
   513 byte memory :((( This should fix the problem some people have had
   after running it for a long time. Sorry about that one folks :))
 - Fixed problem with using then newer WebEx API's (1.1a and the Java demo)
   they required that I read the display settings, and set them again - I
   didn't have to change them - in order to view text.
 - User-Configureable toolbars have been added to the main InetAdv window.
 - Nickname list has been added to the channel-windows.
 - Context-menu has been added to the nicklist, try selecting a nickname, and
   right-clicking.
 - User-Configureable toolbars have been added to the channel-windows.
 - Mode command is now parsed and displayed.
 - Fixed a trap, if you scrolled up/down when there was 0 lines in the windows
   it would trap.
 - It now beeps when a /msg arrives, I'll put it on an option soon.

Version 0.18
 - When a user got de-opped, it wasn't shown in the nicklist.
 - Fixed bug that caused that /who, /whois and a few other replies was not
   shown in the active window, if the active window was the first one
   created.
 - CTCP Userinfo, and CTCP Finger added to context-menu for nicklist.
 - Channel-names were case sensitive when saving toolbar settings, they are
   now case insensitive.
 - Fixed a big memory leak related to DCC, all bytes received/sent were never
   deallocated, sorry about that one :(
 - UCMENUS.DLL eliminated, I've compiled it into the .exe instead, because
   come people reported problems with ultimail using the same name for a dll.

Version 0.19
 - Fixed a trap, if a /topic response arrived before the channel-wnd was
   created, a sprintf would go haywire :)
 - Fixed toolbars, so if 'Load Default' is selected on the context-menu,
   the correct default menu is restored.
 - The 'Reset Styles' item on the toolbar context-menu didn't work.
 - Major internal changes ! DLL PlugIn's are now supported, IRC is moved to
   it's own DLL, and used the PlugIn API.
 - All settings have been moved to a single notebook
 - Toolbars are now selectable from the keyboard.
 - Oops, intercom wasn't started from the main menu, the parameters
   /C inetadv.cmd were missing from the command-line.
 - Nuke protection implemented.
 - Very long nicknames could get InetAdv to trap.
 - /whois response (msg 311) was not parsed correctly
 - A DCC SEND from someone with a very long filename (>100 bytes) caused a
   trap.
 - If we received multiple JOIN messages from the same channel, more than one
   window for the same channel would be created.
 - WWW moved to it's own DLL, and now supports interface to IRC and settings.
   You can now start IRC from a WWW Link
 - WWW now saves it's window position
 - When a user got kicked from a channel, the nicklist wasn't updated
 - Oops, you could create empty entries in the notify list, but you (almost)
   couldn't delete them again.
 - I finally managed to get the WebEx API to receive files it hasn't any
   viewer for, there were some undocumented messages that I had to use,
   it took a while to debug them and find out what way to use them, but it
   works now, thanks to some help from one of the WebEx developers.
 - You can now double-click on an entry in the join dialog to join the
   channel.
 - I've reworked the settings save a bit, so no matter how InetAdv is closed
   it will save it's window and toolbar settings. NOTE: Positions for
   minimized windows will not be saved !
 - It's now possible to use the cursorkeys, and page up/down in the WWW
   window.
 - I've added some IRC options (like beep on incoming msgs) see them on the
   IRC Options page in the settings notebook.
 - Fixed a but, page up/down in channel-windows didn't always scroll the
   correct number of lines.
 - Added option to start a private window when an incoming /msg arrives.
 - I hopefully fixed the nickname list, on some channels it didn't occur,
   it should work now, but please tell me if it doesn't.
 - Now the REXX functions are not so strict with checking the number of
   parameters, the IceBerg scripts sometimes specify more parameters than
   needed.

Version 0.20
 - FCF_NOBYTEALIGN now set on all frame windows - this means that you can
   now position the window freely.
 - Found a memory leak in IRC, for every line displayed in the irc channel
   windows, a block of memory was leaked.
 - Size of message queue increased from PM's default 10 messages, to 100
   messages.
 - /server command implemented. Auto-rejoining of channels is also
   implemented.
 - Display options added to WWW settings
 - When downloading a file via WWW, and the user wants to load another URL,
   I now display a warning allowing him to regret.
 - Title of WWW document is now displayed in the titlebar, some status
   messages have also been moved to the title-bar.
 - Progress indicator for loading of WWW documents had been inserted.
 - Hoverhelp now displays the URL in the WWW window. This one looks _nice_ !
 - Pressing 'Back' in the WWW while loading, is now possible.
 - Problem with loading/going back to documents with relative path fixed.
 - /topic command implemented - with * meaning current channel
 - /mode command implemented - with * meaning current channel
 - /clear and /cle commands implemented
 - /query and /private commands implemented
 - Fixed problem with the nicklist sometimes not appearing - the server seems
   to send data differently that the standard defines, but only for some
   channels. Strange, but it works now.
 - REXX function IrcRexxIsOp implemented.
 - Fixed a trap relating to the /names command - strlen(ptr+1) instead of
   strlen(ptr)+1
 - The settings-buttons now link to the correct settings-page.
 - Forward button in WWW implemented.


Version 0.21
 - Improved the nuke protection a bit
 - setting: and irc: URL's were not resolved properly when entered manually
   in the WWW.
 - Pressing ESC on a page in the settings notebook could cause the dialog
   to disapper from the page, this is now fixed.
 - OK button in userlist is now disabled until the whole list is received.
 - In 0.20, I intoduced a bug. When asked to confirm closing InetAdv, no
   matter what was selected, it exited.
 - Fixed bug with WWW URL Bubble showing in other windows.
 - Fixed bug, URL-entry field was overwritten when loading completed.
 - Bug when sending more than one mail to the same person in WWW fixed.
 - Some documents containing forms weren't reloaded even though they should
   have been.
 - /topic can now be used to display the current topic
 - Autodetect hostname now works
 - oops, no matter what socks host you selected, when you started up again, it
   always changed the hostname to the name of the current font - this has now
   been fixed.
 - Fixed bug in UCMenus that caused corruption the menu-bar. It also has the
   side-effect that most windows can now be fully resized (made real small)
 - Finally !! I've put in a quicklist - here, you can organize your URL's into
   multi-level groups, and you can assign 'nicknames' to URLs, eg. assign Yahoo
   to http://www.yahoo.com, then just type 'Yahoo' in the WWW URL entry-field.
   Yahoo will then be looked up in the quicklist database, and converted into
   the correct URL which will then be fetched.
 - Beautified the WWW menus a bit
 - Added another lot's of actions for WWW
 - Fixed a trap in UCMenus when saving toolbars while exiting.
 - Font in WWW window can now be entered.
 - Added search and search-again to WWW
 - Added 'Load File' and 'Save File' to WWW
 - 'View Source' is added to WWW
 - Added option on IrcRexxWildCard function, for turning off case sensitivity
 - Added cache options in WWW
 - Added option for displaying Bubble URL

Version 0.22
 - Fixed bug in UCMENUS, if another program was using UCMENUS.DLL, it tried to
   load it's resources from that dll, instead of from inetadv.exe
 - Fixed trap, when pressing <TAB> and <UP/DOWN> in IRC windows. This means
   that you can also use the keys to scroll up/down in the IRC windows now.
 - When the cache-directory was empty, Drag'n Drop got disabled due to a strange
   feature in the WebEx API. I've fixed it now, so if nothing is entered, I
   use the TMP environment variable setting.
 - Pressing 'Back' while loading a page in www, could trash the history list.
 - If the quicklist database became inconsistent (which shouldn't happen in
   the first place) then inetadv.exe would trap. Now it displays a warning that
   the database is inconsistent instead.
 - Fixed a few traps related to ctcp messages.
 - Fixed trap in WWW after requesting 50 different URLs without pressing back.
 - Registration code inserted.
 - Fixed the nicklist bug that some nicks were not removed from it when they
   exited the channel. - This should also fix a few traps I've heard about
   in connection with deleting a nick from the list.
 - The top part of the status-line in the bottom of the www window was partly
   gone.
 - /SCR commmand added to IRC.
 - Added URL parsing scripts - see more under REXX scripts.
 - Added IRC startup command
 - Nicknames are now only auto-cut on connect.
 - /RUN command added to IRC.
 - All leading blanks are now stripped from the URL
 - If a toolbar button has the action 'Open URL' and it has no parameters,
   a dialog is now shown where the user can enter the URL to retrieve.
 - WWW window now has a list of the 15 previous URL's
 - Entry-field for IRC commands are now changed to MLE's - so you can use
   eg. ctrl+left or ctrl+right to jump between words.
 - Context-menu for nickname list now works when DragText is installed.
 - Courier 8 point is now the default font on startup.
 - Scripts are now GT-IRC 2.00 compatible (window name added as parameter)
   NOTE: You can *not* use scripts suited for previous versions, but it's
   easy to fix this, just change the paramters in the top of the outgoing
   script (put a window name before the nickname)
 - REXX access to quicklist implemented
 - WebExplorer quicklist can now be imported - use import.cmd
 - 'quicklist:' URL added, and 'Switch to quicklist' added to WWW menu.
 - You must now use PGUP/PGDN to scroll through commands in the IRC command
   line.
 - Multiple lines can now be pasted into the command-line

Version 0.23
 - IRC trapped if /run or /scr was entered without any parameters
 - Fixed a trap that occured if you pressed tab + left or shift up - possibly
   other keys too - in IRC.
 - Quicklist window is now restored if minized (when quicklist: URL) is
   selected.
 - The option "Minimized window in foreground when msg arrives" now works.
 - IRC REXX scripts are now enhanced, so they can also filter commands.
   See the REXX Scripts section for details !
 - You can now double-click on a group in the 'Move to group' quicklist
   dialog.
 - Changing colors didn't update the nickname listbox.
 - Quicklist now remembers it's view
 - Drag & Drop now works in the quicklist - you can drag URL objects into
   it, but you can't drag URL objects out of it.
 - IDENTD support added.
 - Pressing ALT to go to the notebook system-menu now fixed. Thanks to Billb
   for helping me find this one :)
 - 'Copy' added to quicklist context-menu
 - The 'you are not registered' box is now system-modal
 - Fixed a trap that occured if InetAdv was trying to remove a nickname from
   an empty nickname list.
 - IRC text can now be marked and copied to the clipboard
 - Added /CHANNEL command
 - if a command is started with // then the rest is sent directly to the
   server - eg. //MODE #os/2 is sent to the server instead of being processed
   by InetAdv.
 - /MODE command can now be issued with only channel as parameter, to query
   the current mode.
 - When the slider was moved to the top in IRC windows, the text didn't scroll.
 - You can now double-click on an URL or quicknick in any IRC window.
 - URL's enclosed in <> () "" or '' is now resolved too.
 - All leading and trailing spaces are removed from any URL/quicknick.
 - If the URL starts with www, ftp or gopher, http:// ftp:// or gopher:// is
   automatically set in front.
 - WWW Window should now always display the correct full URL, as soon as it
   is available.
 - Added options for confirmations and for displaying toolbars
 - Added option for preferred editor (for now, only used for viewing source in WWW)
 - When saving a WWW document to a file, InetAdv now makes an educated guess on
   the filename, and suggests that.
 - If the DCC download directory doesn't exists, it will be created automatically.
 - Context-menu added to WWW window. Currently, it's the same as the normal
   menu, but I'll add more options to it later, like placing the cursor over
   an URL, and adding it to the quicklist without retrieving it.

Version 0.24
 - Fixed the bug that made toolbar bitmaps green in > 256 colors. This was a bug
   in the UCMenus toolkit I use for my toolbars.
 - Moved all configuration from INETADV.INI to OS2.INI - this unfortunately
   means that you configuration needs to be entered again (not the quicklist
   items, but the rest) but it also make InetAdv MUCH MUCH FASTER when loading
   and saving settings.
 - Fixed bug that caused identd to work only once. This also caused InetAdv to
   slow down when connecting to some servers.
 - the /scr command was broken - and the helloscr.cmd needed updating.
 - Fixed a lot of bugs related to the /server command - sometimes you could
   risk being connected to two servers at a time, and receive all messages
   twice :(
 - Changed the /server command, so if it is given without any parameters,
   a list of servers will pop up.
 - The quicklist's view was not saved correctly if it was name-view.
 - Printing added in WWW
 - Removed 'URL added to quicklist' box from WWW.
 - Made IRC a little bit more nukeproff
 - Now, changes on all toolbars, and window positions should always be saved
   even you do not close the windows before closing the main InetAdv window.
 - WWW History list is much improved - now it also shows the title of the
   page, not just the URL. Any given URL can only appear once in the list.
 - You can now double-click the entry-field in WWW to clear it.
 - Quicklist records are now displayed sorted alphabetically
 - I have spent _alot_ of time on news, and it's almost ready - however, I
   have decided to wait a little longer before I put it out in beta - I want
   it to be rock stable when you first try it, so you won't be put off.
   However, I can tell you that it's going to beat all the current newsreaders
   out there - both in functionality and in looks !

Version 0.25
 - If a TMP variable was not defined in the config.sys, the WWW part would
   trap immediately after starting it.
 - In some cases the quicklist database was reported as corrupted, even
   though it wasn't.
 - I've made rexx scripts for importing/exporting the quicklist. Look at
   qimport.cmd and qexport.cmd - These scripts are a but crude at the moment,
   but they are enough for saving your quicklist if the database get's
   damaged.
 - If you double-click with the right mouse button in the WWW entryfield, the
   field is cleared, and the contents of the clipboard is pasted to it.
 - I have changed some of the bitmaps on the buttons - thanks to
   Seth McFarland (ptackbar@vnet.net) for the new bitmaps !
 - Sometimes, the IRC nicklist was empty when joining a channel - this should
   be fixed now - please let me know if you see this problem again !
 - Fixed a trap in WWW - sometimes, when moving back and forth between pages,
   InetAdv would trap trying to deallocate an invalid pointer.
 - Nicknames in IRC can now be up to 32 characters - REMEMBER: this is only
   possible on some servers - eg. on EFNet servers you can only have nicks
   up to 9 characters long.
 - Newssupprt is now added - both online and offline newsreading is possible,
   and support of up to 10 simultaneous connections to the newsserver is
   implemented. This means that eg. while you are retrieving the list of new
   articles, you can still download a single article and look at that.

Version 0.26
 - If the IRC notify list was large, the server would think I was flooding
   it when I sent ISON requests for all the nicknames in the list - so now
   I send one name at a time.
 - 'gopher://' URL's were replaced by 'gopher://gopher://' oops :((
 - Fixed a trap in news, that could occur after retrieving marked articles
   twice.
 - Names sometimes still didn't show up in the userlist - I thought it was
   fixed in 0.25, but obviously it wasn't :(
 - Channel-list window implemented in IRC
 - A command-line parameter has been added to inetadv.exe - /I:inifilename
   This allows you to specify another .INI file than the default, which is
   to use OS2.INI - Using OS2.INI is much faster than using a private ini
   file, but it uses a little extra memory (around 20K, depending on number
   of channels, nicknames etc.) in OS/2 for caching OS2.INI
   A private ini file has the advantage over OS2.INI that you can copy it
   to another computer.
 - copyini.cmd added - copyini.cmd can be used to copy settings to / from
   OS2.INI.
 - install.cmd and uninst.cmd added.
 - When unsubscribing a group, or deleting headers, the articles did not
   get deleted.
 - Select/Unselect all headers in news is now possible.
   NOTE: If the newsgroup is very large, and contains many articles, this
   will take a long time. I will look at these performance problems once
   the basic functionality is completed.
 - Cross-posted articles generated error 2 if they were retrieved in
   more than one group.
 - You can now doubleclick on an URL inside the article-window - this
   will load the URL.
 - IRC would trap if a string > 500 chars was entered on the command-line.
 - News articles can now be sorted by article-id, subject, author, date and
   by number of lines. Sorting can be both ascending and descending
 - You can now select all headers (the ones without articles) and delete
   them.
 - Search in headers implemented - later search inside articles will come
   too.
 - Colors added - unread articles / headers have other colors in the
   subject than the ones that are read.
 - Marking messages / headers read / unread now possible.
 - Presentation parameters (colors/fonts) now saved for quicklist and for
   all the news windows.
 - News toolbars now follow the 'show toolbars' setting.
 - URL Command-line parameter added - you can now load an URL when you start
   InetAdv.exe - just add eg. http://something or news: or irc: etc.. to
   the parameters.
 - IRC - if scrolling back using the mouse to move the slider, cut/paste
   could get corrupted.
 - Authinfo support added in news.
 - News and WWW statusbars enhanced visually
 - Offline posting of news articles now possible - the articles will be
   sent as soon as you are online again - InetAdv will periodically try
   to send articles.
 - Posted articles are saved in a 'sent' group, for later reference.
 - Articles can now be saved to a file (right-click the article window)
 - New option for doubleclick on an article header - should it mark it for
   download, or retrieve it ?
 - Option for wrapping posted messages on x (default 72) characters
 - IRC /QUIT command now works with spaces in the quit reason - eg.
   "/QUIT will be back later" - previously, only "QUIT will" was shown.
 - Support for signature files added.
 - Multiple newsserver support added - every group now has it's own
   newsserver.
   NOTE: Only registered users can specify multiple newsservers !
 - Support for autogetting all new article bodies added - usually this
   function should be used on a per-group basis, and only for groups with
   relatively few messages - eg. comp.os.os2.announce
 - Option for marking all articles headers read before retrieving new
   headers added.
 - In IRC, you can now see who changed the topic.
 - Alt/Ctrl up/down can now be used to scroll between messages.
 - Ctrl-U and Ctrl-A can be used to select the next unread header, or the
   next unread article.
 - Option for specifying the desktop as parent of all the news windows now
   implemented. This was a pain - all menu accelerators had to be resolved
   manually, because the windows are no longer children of the one which
   contains the menu.
 - Newsgroup names can be changed before subscribing them - this means you
   can now subscribe to any newsgroup/server.
 - Clicking on the news-icon now puts the newswindow in the foreground
   instead of giving an error message.
 - All dates (in the newsreader) are now parsed and displayed in national
   language format.
 - Download directory moved from IRC settings to main settings
 - News can now decode single-part UUEncoded files.
 - % counter now shown when retrieving article bodies.
 - If an old news-database is found, the user is warned that he should
   delete it.
 - UU-Decoded files can now be viewed - great for all those alt.binaries
   groups :)

Version 0.95
 - Blank (empty) lines were not always shown in the MLE window.
 - When sorting on subject, and 2 equal subjects are found, they are now
   sorted by date.
 - Memory allocation tweaked here and there - a few people have experienced
   traps, relating to memory overwrites.
 - Fixed a strange bug - if sorting on article-id was selected, selecting
   to sort articles descending caused a trap.
 - Logging added to IRC
 - The signature file was not used when creating new messages.
 - In the outgoing folder, and the sent folder, CR characters were
   displayed as a flag - they shouldn't have been there at all.
 - After unsubscribing a group, all database operation would slow down.
 - Doubleclicking on an article header where the article exists, brings
   the article window to the foreground.
 - When deleting articles, you now get asked if you want to delete the
   headers as well as the articles, or if you want to leave the headers.
 - Fixed a huge bug in the newsreader - if the newsserver was fast (really
   fast) then news could halt/hang and required restart of InetAdv.
 - /irctrace command added to IRC.
 - Fixed a bug, when doubleclicking on an URL in News, a linefeed could
   sneak it's way into the URL.
 - If an URL ends with a . then it is now removed. This ensures that links
   like "(http://www.something.com)." can be resolved.
 - If settings for a group was opened, while the database was heavily used
   then sometimes the settings couldn't be found.
 - install.cmd has been modified to handle directories with spaces in them.
 - When retrieving news articles, the last already retrieved article was
   retrieved again.
 - The WWW Window now jumps to the foreground whenever you tell it to load
   a new URL.
 - If posting a follow-up message to multiple newsgroups, the server for
   the newsgroup would not be used, and the message could not be sent.
 - When a quicklist item was edited, and the nickname was empty, the
   change was not always saved in the database.
 - Even if CTCP replies was disabled, an error-msg would still be sent if
   a partial CTCP command was received.
 - News database performance increased a lot, but it has been change to
   single-user mode, which means that only one instance of InetAdv can
   use the database at a time - if you want to invoke multiple instances,
   you have to run them from different directories.
 - Added option to only show unread articles/headers, and hide read ones.
 - Max. number of simultaneous connections to the newsserver had been
   increased to 20
 - Mail is ready - up to 5 simultaneous accounts are supported now - if
   you need more than one account, you must register. Mail can be
   retrieved via POP, and sent via SMTP.
 - Added checkmarks to the sort menuitems, so you can see which one is
   selected.
 - Fixed a trap that sometimes occured when DCC ended.
 - Added <unread>:<total> number of messages to the groups list, so you
   can get a quick overview of how many unread/total messages a group
   contains.
 - Added the /P: option, so now you can select which DLL's to load. eg.
   if you never use IRC, you can leave that out - see the command-line
   options section for details.
 - Changed the quicklist database to single-user mode - this means that
   you can only run one inetadv.exe from any give directory - if you
   want to run more than one, you have to do it from different
   directories. You also can not run eg. import.cmd while InetAdv is still
   running.
 - Fixed a bug where a few garbage characters sometimes were appended to
   posted articles.
 - Automatic recovery of a corrupted database is now added.
 - News and mail articles can now be viewed threaded ! The threads are
   sorted alphabetically by subject, but with threads containing unread
   messages at the top.
 - Expired article headers (the ones that are not on the server anymore)
   are now deleted after retrieving the article list, instead of being
   deleted one the group is shown.
 - It is now possible to perform actions on entire threads, eg. you can
   delete all articles in a thread, mark them read/unread etc.
 - Presentation parameters are now saved for both the news and www
   statuslines. Colors can now also be changed.
 - A new article window can be spawned from the current one. This window
   will not change content when another article is selected, so you can
   thus view the contents of multiple articles simultaneously. The window
   positions and presentation parameters are saved (for up to 10 windows)
 - Option to confirm delete of articles added.
 - New icons added, and toolbars have been modified a little, so now you
   can set the size of the bitmaps to 0

Version 0.96
 - Flushing of the news database is now only done after no activity has
   occured in 10 seconds. This should make retrieving of articles faster.
 - News database compaction added - this also means that news.p is no
   longer needed. Compation can significantly reduce the disk-space
   requirements of the news database - during desting, I reduced it from
   9 MB to 5 MB by simply compacting it. Compaction is available from
   the file menu.
 - If you have a registered version, your real name will no longer be
   displayed as part of the header in any sent messages.
 - Older newsservers, which does not support the XOVER command are now
   also supported, note however that the byte count will be 0, since that
   information is not available. Also note, that these servers are slow,
   and it takes considerably longer time to download from them.
 - IA_NETSC.DLL added - This adds support for using Netscape for all
   WWW and FTP url's, instead of the browser in IA_WWW.DLL. In order to
   use it, change a line in iaplugins.cfg (ia_www to ia_netsc).
 - When deleting the last thread in a newsgroup, the articlelist was not
   cleared properly.
 - Whenever a program was started from inetadv, it inherited it's file
   handles, thus causing InetAdv to think that the database was opened by
   another process after re-loading, without shutting down the started
   apps. This is now fixed.
 - Huge bug concerning threading fixed ! Whenever deleting an articlelist
   record from the database, it's assotiating thread was also deleted,
   even if there were other records in the same thread.
 - /URL command added to IRC
 - Enhanced the install.cmd script a lot
   The .zip file now has no quicklst.* files, but comes with a orgquick.lst
   file that the install script imports into the quicklist database, of no
   existing quicklist is detected.
 - Added impnetsc.cmd, which imports Netscape Navigator's Quicklist
 - The newsgroup list didn't remember it's container view
 - Custom folders can now be created, and articles/mails can be moved or
   copied to them.
 - /joininv IRC command added - will join the channel you were last
   invited to.
 - Private messages will no longer be shown in the current channel, if
   a private window is pop'ed up to show the message.
 - Bug in copying to the clipboard from an IRC window fixed.
 - WAV support added !! The following WAV files are played by InetAdv:
   - ialoaded.wav when inetadv is started
   - newmail.wav  when new mail has arrived
 - Added Java support, using IBM's JEmpower tool - the same one that
   Netscape is using to support Java inside their browser !
 - Changed the name of any runtime DLL's to a unique name, so IA will no
   longer conflict with other program DLLs. All IA DLLs now also uses a
   single runtime library, to minimize memory requirements.
 - Changed the name of exceptq.dll to ia_trap.dll, to avoid conflicts with
   PowerWeb which used an older version of exceptq.dll
 - Help is finally added - few items are still in the help, but the list is
   growing rapidly...
 - You can now doubleclick on an email address anywhere, to prepare an email
   and send it to that specific address.
 - Registration menu item moved to the main menu.
 - Filtering now implemented. This is a really useful feature, refer to the
   help for details on what can be done with filters.
 - Stuffed Xref support into the database
 - The IRC notify-list only worked for nicknames of max. 9 chars, this has
   now been fixed.
 - Right-clicking the IRC nickname list only worked for nicknames less than
   10 characters.
 - Timestamp has been removed from all messages that goes to the IRC log.
 - If posting a news article while offline, InetAdv would only try to send
   it 3 times, and then give up, and require a restart in order to try to
   communicate with the newsserver again.
 - 'Mark all read' menuitem added to news.
 - True Xref handling added, this means that if you mark one article read,
   if it's crossposted, it will also be marked read in all the other groups
   that the article also appears in !!!!
 - Headers formatted according to RFC1522 (eg. =?iso8859-1?q?=3F?=) are now
   translated to a more readable format. Charactersets are also converted
   from iso-8859-? where ? is 1-9 to your current codepage. The following
   codepages are supported: 437, 850, 852, 857, 860, 861, 863, 865.
 - Drag'n droping URLs from Netscape to Internet Adventurer's quicklist is
   now possible.
 - MIME is now supported, both MIME attachments, and uuencoded attachments
   are shown as one line representing them, instead of showing the whole
   attachment in the article window.
   The following codepages are recognized: 437, 850, 852, 857, 860, 861,
   863 and 865. Conversion between all these codepages and iso-8859-* is
   supported. (* is 1 to 9)
 - Quoted lines are no longer wrapped, when replying.
 - Received dublicate messages are now shown as independed messages in the
   inbox - this means that IA's dublicate handling has been disabled for
   incoming mail messages.
 - MIME and UUDecoding attachment support added

Version 1.00
 - The speed of UU-Decoding has been increased dramatically. Previously,
   viewing articles with UU-Encoded attachments was slow.
 - impnetsc.cmd did not always import URLs from within folders.
 - If a multipart MIME message didn't contain an ending boundary, the last
   attachment wasn't decoded. (This only happened for messages that
   violated the MIME specification)
 - If more than 32 calls to the newsserver failed, IA would never try to
   call again, but just report that the call failed.
 - The filters didn't count some Xref headers properly, so for some
   newsservers, IA thought that the article was crossposted to 4 groups
   even if it was only crossposted to 3.
 - UUDecoding could cause traps for very long lines.
 - IRC now sends/receives data in iso-8859-1 the characterset
 - If an article with particularly long references was added to the
   database, IA would sometimes trap after corrupting memory.
 - When compacting the database, it is now also checked for consistency,
   and all the article/thread counters are rebuild.
   If any lost articles are found, they are created in the custom folder
   "Lost'n Found". Also, before compacting anything, all index files are
   deleted and rebuilded.
 - In Incoming filters for mail, rexx scripts could not change the contents
   of the message. This has now been fixed.
 - Avoided a huge memory-leak in VisualAge C++'s runtime library, by telling
   it to walk though it's freelist, after reallocating memory. This leak
   occured while downloading huge emails/news articles.
 - All notebooks now have the 'Merlin look' when running under Warp 4 or
   above.
 - MIME messages without any text in them are now handled better,
   previously the first part of a mime message was always displayed as
   text, even if it wasn't text/plain.
 - 'To' email address was not properly stored in IA's database, when creating
   emails - this should be fixed now.
 - The titlebars have just had a facelift - they are now looking much better.
 - The Netscape WWW interface has been expanded with tons of extra options
   eg. for opening new windows, showing the URL list, and the commandline
   for starting Netscape. (Useful for the people who want to start it as
   'netscape.exe -3')
 - Fixed Object-REXX bug in qimport.cmd
 - Changed the entire GUI in news/mail - instead of containers, now a custom
   control is used with multiple resizeable columns. This also makes it much
   faster, and you can now select which items to display, and also what to
   sort after, in each group.
 - Implemented WebWatch - you can periodically check www-pages, and get an
   email sent to either you, or someone else whenever the page has been
   updated.
 - The icon is now updated for messages that are currently being downloaded,
   so you can no longer doubt if you have doubleclicked on it.
 - Address book is now ready (although a bit limited) - You will soon get
   mailing-lists and multiple address books.
 - Option to expand all trees added
 - You can now specify sorting and viewing setting independently per group,
   this means that you can eg. view the 'To:' email address in some groups,
   and not in others. You can also sort by subject in some groups, and by
   line-count or whatever you want in other groups. This works for all
   kinds of groups, news, mail or custom.
 - File Viewers can now be specified per MIME Type, or file extension.
 - Email account settings are now moved to the settings notebook, to keep
   all the settings in one place.
 - Fixed a trap when trying to save attachements from an article that
   didn't have any attachments.
 - The Kon editor is now build into IA's article and compose window - this
   means that you get a great editor with syntax hiliting to display your
   articles in, and compose new email in. Syntax hiliting is supported, so
   URLs are shown with different colors, and quoted lines also have
   specific colors.
 - As a side-effect of using Kon, printing is now also supported !
 - Added toolbar buttons for surfacing the quicklist, webwatch or address
   book.
 - IA Smartguide added - this will only work with Warp 4 - run install.cmd
   to create an icon for it in the IA folder.
 - You can now doubleclick on the filename in an email that has an
   attachment if you want to view it faster than you can do while using the
   menus.
 - In IRC, if a nickname was given or taken permission to speak, the
   nickname list was not updated.
 - Filters didn't work on specific email accounts, it only worked if all
   email accounts were selected.
 - Leading '>' are now removed from URLs, so you can doubleclick on quoted
   URLs to load them.
 - The 'show-only-unread' option has been removed - instead, change the
   sorting settings to show all unread articles before the read ones. These
   settings has the advantage that they can be specified per group.
 - Word-wrap has changed, the setting has been moved to the editor
   settings, and posts are sent as they appear in the editor - this means
   that if wordwrap is turned off, long lines are sent.
 - Each email account now has a signature file - and an account is needed
   also for just sending news replies, since the From: name and signature
   is taken from the account.
 - A navigation page is now shown when IA starts up - it provides buttons
   for easy navigation in Internet Adventurer.
 - Messages in the outgoing and the sent box can now be edited and resent.
 - Messages can now be forwarded to other receipents.
 - Timezone handling is now improved - select your timezone in the general
   settings.
 - IA would trap trying to decode zero-length attachments - this has now
   been fixed.
 - Newsgroups can now be resyncronized with the newsserver, if you eg.
   have changed to another newsserver, or if the server for some reason
   has come out of sync with the newsgroup.
 - Voice +/- added to the popup menu in IRC
 - The settings window will now save it's position and size
 - Buttons added to the compose window, for sending email, executing an
   editor command, and for editing messages externally
 - Support for running external programs, such as SecureIt for creating
   PGP signatures on messages is now added. The programs get the entire
   message, including any attachments in one file, and can then change
   the text/header or whatever it wants. The only limitation is that headers
   that have been added by such a program will be removed by IA before
   sending. If headers need to be added to the message before sending, it
   can be done with filters and REXX scripts.
 - Now, an email address can be added to the killfile directly from the
   articlelist window.
   This is a great feature for getting rid of annoying users!
 - New installation program.
 - The case-sensitive option in filter settings was not properly saved.
 - If a REXX filter script was taking long time to complete, the PM message
   queue would hang while the script was running, sometimes hanging OS/2 !
   This has now been fixed.
 - A browse button has been added to IRC.

Version 1.01
 - Email address > 32 chars could not be entered in the compose window.
 - Doubleclick on the compose window caused it to close (Oops)
 - A rare attachment type could cause IA to trap.
 - IA could trap trying to a too long address
 - When sending an email from the compose window, the RealName was not shown
   as being part of the email address in the to: list.
 - Content-Transfer-Type was missing from the header in sent messages.
 - Hotkeys didn't work for the articlelist window if the windows were set as
   'parent of desktop'
 - The database cache size has been reduced, so the memory usage is less now.
 - In the compose window, if editing the message via an external utility
   program was selected, and no message was entered, IA would trap.
 - Certain mime multipart messages were not recognized by IA
 - A CR+LF is now always added to the end of email/news messages - some
   SMTP mailservers cannot seem to live without it.
 - Filtering on the number of lines in a news message didn't always work.
 - Fixed a bug in the scrolling titles which caused a trap on some VGA
   drivers, if the title was empty.
 - After compacting the news database, the news window did not always close
   completely.
 - The grouplist window has been split up into multiple pages.
 - URLs in the compose window will now be retrieved when doubleclicking on
   them.
 - The list of all groups can now be limited to showing only groups with
   certain words in them, eg. 'os2'
 - Depending on how you specified the file extension in the viewer setup,
   IA would sometimes hang when trying to view an attached file.
 - Descriptions of the newsgroups is now shown in the 'all groups' list, if
   the newsserver supports it.

Version 1.20
 - Pressing Ctrl-Up or Ctrl-Down sometimes confused the treeview control, so
   it could loose track of the current cursor position.
 - '+' and '-' can now be used to expand/collapse in the treeview.
 - Attachments of type <message/rfc822> are now shown in a 'spawned' window
   so attachments within attached messages can be decoded.
 - If more than 30000 groups exists, IA would choke when trying to display
   them, causing the scrollbar to be grayed out, and only about 20.000
   groups to be shown in the 'All groups' list. Now, a max. of 60.000 groups
   can be shown in the list.
 - Wordwrap now only wraps on whitespace (space, tab etc.) - previously, it
   would wrap in the middle of URLs, at these characters: ".;:,?!"
 - If exactly one new message existed in a newsgroup, it would not be
   retrieved - if 2 or more message existed, they would both be retrieved.
 - FTPPM.EXE and TELNETPM.EXE are now used instead of their command-line
   equivalents.
 - Totally new PM Install program - makes installation much easier !
 - IRC Nuke detection/avoiding improved !
 - New popup in the unregistered version - you can now register directly from
   the initial screen.
 - The navigation buttons sometimes didn't 'go up' when the mouse was moved
   away from them.
 - The news database format has been changed, and there is now one set of files
   for each newsgroup. This should make access to the article list a lot faster,
   but it also makes compacting the database a little slower, because there are
   more files to compact.
 - The cursor was not always displayed in the edit window initially, when
   composing email/news messages.
 - Clicking on the fieldbar in treeview controls didn't change the window focus.
 - The 'Download marked articles' menuitem in the articlelist popup menu didn't
   do anything.
 - A setup wizard has been added - it will run the first time you start IA, and
   can be started manually later - it makes configuring the basic parts of IA a
   lot easier, and advanced setup is still available though the settings
   notebook.
 - Proxy support added to WebWatcher, so you can now check www-pages though your
   company firewall !! Use of the proxy can be disabled for individual entries
   in the list, so both internal and external sites can be checked.
 - The quicklist would sometimes be corrupted, and not save the latest change.
 - If a subject was more than 512 characters long, IA would trap trying to
   display it.
 - Headers marked as 'not on server' were not deleted automatically when expired
   headers were deleted.
 - Search news/mailgroups added, you can search on all the things a filter can
   search on, and it is also possible to save search templates for later use.
 - Stability under warp3 has been improved, and a few userinterface glitches has
   been taken care of.
 - Draft and trash folders added, drafts can now be saved, and re-edited or sent
   at a later time. The trash-folder can guard against unwanted deletes.
 - If a group contained less than 100 articles, and IA was told to load the last
   100 articles from the server, nothing would be loaded.
 - The action 'download body' in the filters didn't work.
 - A compose wizard has been added, this makes composing new messages easier,
   since the newsgroup, subject, and email address are all entered on the same
   page.
 - IA previously thought that any line that began with "begin" meant that the
   rest of the file was uu-encoded - now, it is a bit more intelligent.
 - A bug in uu-decoding has been fixed - if a message didn't have a newline
   after the word 'end' then the last part of an uu-encoded file would be
   lost.
 - CTCP SOUND support added to IRC - make sure that any eventual REXX scripts
   you are using is not filtering SOUND requests out.
 - The <Enter> key now works as doubleclick in the articlelist.
 - Alt-1, Alt-2 and Alt-3 in the news window, previously restored maximized
   windows, now they keep their size. Also, 1 2 and 3 can be used without the
   ALT key.
 - Reply-To and Forward wizards have been added - you can now also send carbon
   copies to all other receipents of an email.
 - WordWrap now also wraps when viewing articles, not just when composing them.
 - Column sizes are now saved for all treeview controls, including the
   webwatcher, address book and group list.
 - A subject can now also be added to the killfile, from the menu.
 - Database compaction has now been split into two - one for compaction only,
   and one for the whole show with full error-recovery.
 - The help system has now been changed, so all the help is in HTML format.
   This makes integrating graphics and links much easier, and it also allows
   for some nicer looking help.
 - The last used email account in a compose-message is now remembered for the
   next compose.
