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


25. August 1996

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

Beta release v0.25.

Copyright (c) 1996, Kim Rasmussen
All rights reserved.

SEE MY WEB PAGE at http://www.belle.dk/~kr/ 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 $30 US. When Internet Adventurer
is out of beta, this price will grow for new registrations, so
register now while it's cheap !.

Note that after v2.99 I might select that your registrations have
expired, and you need to re-register in order to upgrade to versions
higher than 2.99. This is solely my decision, but on the other hand
I might select to make your registrations valid for up to version
3.99 or 4.99 or forever.

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 ?


===================================================================
                     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 :)

Also, WebExplorer from IBM is required. At least BETA web0814 is
required, you can get the newest from ftp.ibm.net /pub/WebExplorer
You also need to have internet software, at least TCP/IP v3.0 (or what
your WebExplorer needs) is required.

Also, I recommend installing fixpack 17, and the updated PMMERGE.DLL.
Doing so, really fixes alot of traps especially in PMCTLS and PMMERGE.

I haven't tried fixpack 22 yet - I've heard conflicting stories about it
some say that after installing it, they couldn't open the settings dialog,
and some say that it has improved pretty much everything. I've also heard
of problems with the InetAdv settings-notebook - please let me know if you
have any problems there.

===================================================================
                  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 :)


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

1. Contacting the Author (that's me)
2. Current Features List
3. Known Bugs/Workarounds
4. Missing Features / ToDo List
5. Supported IRC Commands
6. REXX Scripts
7. REXX Quicklist
8. Toolbars
9. Database recovery
10. 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:          Kim Rasmussen
               Gartnervang 2C, 3tv
               DK-4000  Roskilde
               Denmark
 
Web:           http://www.belle.dk/~kr/

Internet:      kr@belle.dk - but if at all possible, _please_ 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:   Cliff Wood has setup a mailing list for me, to join it send a
               mail to <majordomo@infinity.beve.blacksburg.va.us> This mail
               MUST have the first line in the BODY of the message set to
               "subscribe inetadv-l" - without the quotes.

Support:       I can't promise anything, but go to #inetadv on IRC, or use
               the mailing list.


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

 - 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. The entire IRC is written as a PlugIn DLL.

 - 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://www.belle.dk/~kr/

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

 - 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


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

 - News and Mail is getting my full attention now !
   News is almost ready for beta, but I will wait with putting it out until
   it's rock stable, and has most of the features you will want !

 - The quicklist needs options for sorting/moving items around in it.

 - Example REXX scripts - I'm currently working with the authors of IRC/2 and
   GTIRC to create a standard for REXX scripts that we can all agree on, so
   when we are ready, there should be lots of sample scripts.

 - Presentation mode in WWW - for now, you can disable the toolbars to
   make the window overhead as small as possible.

 - I'll document the PlugIn DLL API real soon, I have already gotten some
   indications of people wanting to write either new plug-ins, or write
   scripts in C - mail me if you have anything specific you want, and I will
   try to rush it even more.

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

 - WAV file support, I'll add lots of options, for playing different WAV files
   depending on what is going on. I'll also add more options for eg. switching
   the WWW window to the foreground after an URL has completed loading.

 - Connections to multiple IRC servers simultaneously

 - DCC firewall support is almost ready

 - Flood protection to come...

 - 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

 - If you have any suggestions for other features, please email me at
   kr@belle.dk 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. 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.

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

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


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

-----------------
7. 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, but
   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.
      

-----------
8. 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 <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.belle.dk/~kr/" to open my homepage.
               You can also type "mailto:kr@belle.dk" 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. kr@belle.dk)
http:       <http_host>     (eg. www.belle.dk/~kr/)
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)


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.


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



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

