V1.11

   COM1-COM9 is now supported

   Statistics stopped working with older tcpip stacks, this is
    now fixed.

   The 'Disable Autostarts' flag is now set again after dialing,
    not setting it caused autostarted programs to restart when
    redialing.

   German SLIP is now also supported

   Statistics timer was still counting after connection was
    dropped.

   A ton of stability problems has been fixed, and cases where
    iLink/2 ran out of filehandles could cause various errors.

   To introduce backwards compatibility for meter functionality
    netstat.dll is now required again.


V1.10

    netstat.dll file is no longer necessary

    Newer TCPIP fixes broke iLink/2's statistics - this is now fixed.

    'Disable Autostarts' flag was set after dialing, even if it should
      have left alone.

    Deleting an entry in the autostarts program now requires confirmation.

    Option to exit iLink/2 on timeout is now implemented

    iLink/2 can be started with the connection name as
     parameter, to force it to autodial - the check for the
     parameter name is now non-casesensitive.

    Occationally, empty lines would be displayed in the listbox
     - this is now fixed.

    Sometimes, iLink/2 could trap, when displaying output from
     PPP.EXE - this should not be fixed. v1.02

    Switching desktops with Object Desktop no longer corrupts
     the status windows.

    Fixed - Nasty Auto-start bug would cause program to crash.

v1.01

     Fixed - Traps relating to output window fixed.

     Fixed - Logfile broken from 1.00 release.

     Fixed - Buttons, windows, and Settings Notebook resized.

     New - Exception handling added.   If iLink/2 crashes it will
            generate a trap file (.trp file) which tells what and why
            the crash occurred.


v1.00

     First Non-Beta Release

     New - Merlin style settings notebooks

     New - If not set for Redial a message box warns of disconnect

     Fixed - Window Postition Saved (Broken in .99d)

v0.99d

     First release by BMT Micro.

     This is a maintenance release.   The .99c code has been ported to
      Visual Age CPP for the 1.00 release.

v0.99c

     Completely rearranged the autostarts page.  This does require you to
      reselect the programs you wish to autostart (although the ones you
      have setup before will still be listed).  It also provides for
      partial drag and drop support in the add field.  Programs dragged
      from the drives section should be inserted properly (it requires
      the filename to be the "text" for the icon).  Other icons are not
      supported at this time.  The whole autostarts page should be much
      more user-friendly, and also is more stable.
     Because of a bone-headed error on my part, the field in the TCPOS2.INI
      file that lets other programs know which provider you have connected
      with was being erased.  It now not only DOESN'T get erased, it properly
      saves the provider you are using.  NOTE: This fixes the "NR/2" problem.
     More stupidity on my part (this is becoming a trend, isn't it?).  Right
      before the last version was released, I proceeded to break the "General
      Help" selection.
     A logic hole was creating situations where when the program stopped
      dialing for any reason other than the hang up button, you'd need to
      close and restart the program to redial.
     Added support to autostart .CMD files as well as the .EXE files.
     Did a major overhaul of the pointer system to try and eliminate some
      of the sys3175's people were experiencing.  Unable to do many tests
      with this (since I seem to not be able to duplicate the errors), so
      I'll simply cross my fingers.
     I claimed I lengthed the limit of the strings in the previous version
      (which, in fact, I had).  What I neglected to check, however, was the
      length limit of the strings when they were read back in.  So it would
      save the strings at a longer length, but cut them off reading them
      back.  Needless to say, that is now fixed.
     Added support for an optional second DNS entry.
     The help file mistakenly claimed that [LOGIN] was the proper format
      to use in a script to use your login ID.  It has been replaced by
      [LOGINID], the correct format.
     The method used to save Presentation Manager Parameters (window position,
      size, colours, fonts, etc) retained the information even when changing
      the resolution of OS/2.  To stop this, the resolution is saved, and
      compared when iLink/2 is run.  If it detects a change in the resolution,
      it resets all of the windows.
     Some of the windows were still responding to the ESC key (which closes
      dialogs).  This is changed for all windows but the About and the Demo
      notice.

v0.99b

     Rearranged this history file to go in correct version number order.
     Pop-up menus now check to ensure they remained on screen.
     When exit is called from the main window, the stats windows positions and
      attributes (colours/fonts) are saved.  The windows are then closed
      before the main window.  This should eliminate some errors that occurred
      when the stats windows remained open.
     Autostarts were failing when the path was either non-existant, or when
      the path ended with a trailing "\".  It now works under both conditions.
      (As a slight addendum, it NOW works.  The previous "fix" didn't
      actually work, since it fixed the wrong location)
     The TCPOS2.INI file now has the "CURRENT_CONNECTION" field updated
      properly.  This means that programs that use that information to
      ascertain which configuration to read should identify it correctly.
     It seems for some unknown reason IBM decided to identify TRUE/FALSE
      flags by indicating "TRUE." when TRUE, and "." when FALSE.  Since I
      had assumed them to use "FALSE." for FALSE, this led to a problem
      with all boolean flags. (which I've fixed)
     Removed the outdated code that was checking the OS2.INI file for the
      location of the ilink2.ini file.  It now uses the current directory.
     After in depth discussions, I modified the way iLink/2 handles the
      unregistered demo version.  Instead of hanging up after one hour,
      it simply pops up a notification every 30 minutes to "nag" you
      (taking iLink/2 from the realms of "crippleware" to "nagware").
     Neglected to add a "," after the disable sequence.  It is now properly
      added.
     Created resolv files.  Creation may not be correct for users of Connect
      and a LAN.
     The major problem numerous people have had where it doesn't dial and
      sits at 100% CPU should be fixed.  I say should because I'm not
      completely sure.  However, heads will roll if it isn't.
     Lengthed the limits of numerous strings to prevent some cutting-off
      that was taking place.
     Added support of a kind for $IPADDR and $IPDEST.  Since I'm not quite
      sure which way they are suppose to take information (do they READ, or
      WRITE the IP addresses?) I'm not sure if they work.
     Added some more checks to make sure information that hadn't been filled
      in wasn't trying to be added to the ppp/slip commandline (most notably,
      if the password field wasn't filled in, the entire string wouldn't
      work).
     Autostart programs now work if the path field isn't filled in.
     Programs were being minimized no matter what Autostart setting was.
      Things are now fixed so it will use the proper setting.
     Added basic support for session logging.  A file called 'logfile' will
      be created (or appended) to with the start and end time of your
      session.
     Idle Timeouts will no longer interfere with the Reconnect on Disconnect
      feature.  You may use both without any problems.
     If things worked correctly, I've managed to filter out Advantis
      accounts.
     Created a special Debug version.  For those people who run into
      particularily troubling problems, this version should help find
      the cause.  (Note, this version will be on a 'per request' basis)
     Fixed a case of constant beeping after a connect was made.  Of course,
      no one actually had this problem, except a few people testing interim
      betas, but nonetheless, it's fixed.
     TaiyoTech is now handling registrations for the Asian/Pacific area
     Added a bit of "what's still going on" code to the exit routine to
      try and eliminate some of the problems in that area.  Key word is
      "try".  I could no longer get it to crash, but some people seem to
      have the knack for it.  :)
     Made a bunch of minor changes that are too trivial to mention and
      probably will go unnoticed by the majority of people.  But writing
      this down made me feel better.  :)

v0.99a

     The popup menu would not function after switching between condensed
      and normal windows (or vice versa).  It now functions correctly for
      both windows.
     The cond and norm buttons were not toggling the "use condensed window"
      flag.  Consequently, the listboxes were displaying the wrong amount
      of information.
     The init strings were checking for the presence of a capital "A" to
      ensure they were present.  They now (properly) check the length of
      the string.
     Added support for commandline execution.  Typing "ilink2 <name>" will
      auto-dial a provider, assuming "name" exists.  However, early tests
      have indicated that iLink/2 will freeze under certain conditions while
      dialing in this method, so I do not recommend using it yet.
     The normal menu was not being properly greyed out.  It now should grey
      out dial/hang-up properly.
     Fixed numerous memory leaks.
     The redial feature was not being handled properly.  Fixed the logic to
      ensure that it checked the number of redial attempts.
     The debug button now works.
     Added the missing Timeout feature.  Currently, I believe it will
      conflict with the "reconnect on disconnect" feature, and recommend
      that one of the two be turned off.
     Implemented a new main window design.  Thanks go to [OS3] for the
      layout!
     Implemented routines to save all colour/font changes to the main windows
      (normal/condensed).
     Changed most windows to all the save of Presentation Parameters.  This
      includes the 3 stats windows, and the notebook window (as well as the
      main windows, which were already done).
     Cosmetic changes to the notebook window.
     After autostart programs have run, the "disable autostart programs"
      button is automatically toggled to prevent the programs from re-running
      after a reconnect.
     Removed the buttons from the stats windows, and replaced them with a
      popup menu.
     Added double-check for deletion.
     Reworked (again) the program autostarts control.  I will be modifying
      page layout, and button controls, but for now, I needed to get the
      logic working.
     Noticed Borland's realloc was screwing up for some reason.  Wrote my
      own realloc command, which seems to have fixed some SYS3175's.
     Modified the autostarts delete button to allow for self-correction.  If
      you (still) have fault programs listed, simply delete until they are
      all removed, and save.  Then, add any programs back.  There (hopefully)
      won't be any further high-ascii.
     Autostarts page would SYS3175 if you deleted all entries, and then tried
      to add a new one.  That is now fixed.
     Startup Minimized flag wasn't doing anything.  Program will now startup
      minimized, if box is checked.
     Finally fixed the problem with copying/changing provider name.  It now
      properly checks if the name you are using exists or not.  So, you
      shouldn't have to worry about overwriting other accounts by accident.
     Spent the last couple days getting help working.  It's not all there,
      but mostly just needs to add some write-ups.

v0.98a

     If no entry was selected, iLink/2 would crash if the "Edit" button
      was pressed.  It now checks to make sure an entry is selected.
     The Program Autostarts was allowing blank entries to be added.  It
      now makes sure that the Program Name is filled in.
     The Edit option wouldn't allow you to change the name of the entry.
      It now allows this.  (and, after a bit of modification, you can even
      use the full 8 characters <sigh>)
     The Add option should now work correctly.  Previously, it would
      overwrite other entries, or SYS3175.
     The Delete option should work.  Note, there is NO confirmation for
      this, so you had better mean it!  :)
     Pressing the modify or delete buttons in the Program Autostart was
      having VERY strange results if a program wasn't selected.  It
      should require you to select something.
     Was not processing a Blank Script entry for SLIP.  Now handles it
      the same way as "NONE".
     SLIP dialing was not checking for whether the IP fields were actually
      filled in.  It now checks.
     Finally recovered after HD crash...  iLink/2 only lost a few days work,
      and has been brought back up todate.
     Start work on modifying the data structures to minimize memory corruption
     Numerous problems arose from the modifications.  However, long standing
      errors were also brought to light, and fixed.  Hopefully this will
      drastically cut back on the number of sys3175's being reported.
     Started adding support for the second mouse button.  Now has a popup
      menu for the Connections Listbox.
     Added checking to the Notebook.  It will now check the fields that are
      required for dialup to make sure they are filled in.
     The copy entry now works (from the popup menu).
     Added missing hang-up option to popup menu.
     Rearranged dialog items to make the tabbing order correct.

v0.97a

     Isolated and fixed problem that was causing the Stats window to not
      recognized that it was open when switching between full size and
      condensed windows.
     iLink/2 assumed the Netmask field was filled in whether it was or not.
      It now checks whether it is filled in.
     Some sort of memory corruption was occurring for a few people in the
      connection read-in procedure.  Slight modification in the way it handles
      the variables seems to have eliminated the problem.
     Did a lot of work on the design/look of iLink/2.  Added option for
      debugging, ability to allow an exit regardless of setting, and a toggle
      to disable the program autostarts.
     Worked on a modification of the Stats window to allow more control over
      the layout and placing.
     Continued work on the design of the stats window.
     Blank script entry field was not responding properly.  Fixed.
     NONE in script entry field was behaving the way blank was suppose to.
      Fixed.
     NONE is script entry field now properly uses PAP/CHAP to establish
      connection.
     When selecting Add, the modem spin buttons weren't being filled in.
      Fixed.
     A change in the stats window resulted in the time fields not being
      filled in properly.  Fixed.
     Added buttons on condensed and normal window to quickly switch back
      and forth.
     Made a REAL About window.  :)
     Program wouldn't add the extra application keys in the TCPOS2.INI file
      to entries created with SLIPPM, after the first execution.  Fixed.
     Program was not using the call waiting disable sequence.  Fixed.
     Autostart entries were being erased before they were saved.  They now
      save properly.
     Fixed some memory leaks.
     By trying to match the strings passed to ppp and slip exactly as the
      IBM dialer was sending them, I triggered IBM's notification about
      disconnection window.  This window was interfering with the iLink/2
      reconnect on disconnect function.  I have removed the option that
      was causing it, and it seems to be working normally again.
     Really stupid error made trying to detect the presence of entries added
      with IBM's dialer.  This resulted in a bunch of strange high-ascii
      entries being placed in the TCPOS2.INI file.  This is now fixed.
     Modified the stats windows (again).  The individual windows are now
      movable, and save their locations.  The control bar was removed, and
      controls were added to the main windows.
     At certain points, pressing the hangup button would have no effect.
      It is now adjusted to re-check for the hangup button being pressed
      before it restarts PPP/SLIP.
     The statistics were not being reset after a disconnection.  This resulted
      in very strange numbers appearing.  The statistics now reset properly.
     The Session time, and Total time used slightly different calculation
      methods which resulted in the Session time increasing faster than the
      Total time (allowing the Session time to be greater than the Total,
      an impossible situation).  The Total time format has been modified to
      compensate for this.
     Some testers were switching from condensed to normal windows (or vice
      versa) during or after dialing.  They noticed that the information
      was not saved back and forth.  The condensed and normal windows were
      NOT designed to be switched interactively during dialing.  They were
      designed as an either-or situation.  To make sure people don't run into
      the same problem, I have disabled the ability to switch back and
      forth while dialing.
     The dial and hangup menu items weren't being disabled or enabled.
      They now match the state of the dial/hang button.
     Seems I neglected to properly assign the close buttons on the stats,
      with the result that they wouldn't close properly (using the "C" button)
      This should be fixed.
     Made sure that hitting buttons of options that weren't in place yet
      didn't exit the program.

