Beta development progress (up to ViRC '97 1.00final)
----------------------------------------------------

This file charts the development of ViRC '97 from 0.94pre9 to 1.00final. This
might be interesting to anyone who wants to know exactly what was added when,
and for a more detailed, more complete list of what's new than you'll find in
VIRC97.HLP.

1.00final fixes a very small number of bugs, increases some limits (for
example, you can now set V97 to scroll up to 50 lines at once for faster text
output, instead of just 25 lines), corrects some spelling mistakes in the
actual application. and includes a full help file and updated VIRCDDE.TXT,
along with the final versions of VSCRIPT.TXT and OBJECTVS.TXT. Also added is
the ability to pass extra parameters to the constructor of an OVS class, you
can no longer sort the channel list while it's building (previous versions
behaved oddly if you tried this), and some stuff like WHOIS and some DCC stuff
has been added to the standard query text popup in DEFAULT.LIB. I've also fixed
a severe memory leak bug where local array variables were never released.

1.00almost-final3c fixes some IAL bugs, fixes a bug where V97 would not run if
the title bar format string evaluated to an empty string, and uses a new
method for grabbing your local IP which should get the correct IP if you have
more than one TCP/IP interface installed (test this out - it might not work
properly!! :).

1.00almost-final3b fixed a few bugs and adds a few new features. The IAL has
been vastly improved and should now track addresses better, and a new AddToIAL
command has been added. Added new UserDelete and UserDeleteByWildcards
commands. I've also (hopefully) fixed a major crash bug in the TDCC Voice code.
Also, I've changed the order that some internal things are done - for example,
the auto-rejoining of channels is now done after <OnConnect> is called, and a
few other things too.

1.00almost-final3a was almost exclusively a bug-fix release. No new features
have been added. The MAKEBANMASK function now works properly, the OnServer
command now works properly, a small bug in the GlobalChat .chat file support
has been fixed, and the splash screen now comes up a little earlier than
before, and, by request of CricketP, the version number text on the
splash screen is now white rather than light blue. Also, a bug which made
OVS fsMDIChild forms flicker when they're closed has been worked around (check
your OVS stuff that uses fsMDIChild forms to make sure that it still works!!).
And finally - the only new feature - a new Clear button in the channel box.
That's about it. :)

1.00almost-final3 was largely a bug-fix release. Closing the server window now
closes all channel/query windows, a bug concerning backup nick switching with
long nicks on networks that only support short nicks has been fixed, a bug
causing a spurious "waiting to reconnect" message to appear on a normal server
disconnect has been fixed, and the ISWATCHDOGACTIVE function now works properly
(it always used to return 0, regardless of whether the watchdog feature was
active or not). The only new feature added here is the addition of 2 new popup
menu levels - this allows popups to be made up to a depth of 5, whereas in
previous releases, a maximum depth of only 3 was supported. Also, user, ban
and prot levels of up to 1048578 (1M) are now supported (instead of just 999),
and there's a new custom level, too, only accessible from scripts, which can
store a line of text, not just a number. There's also a new MAPPEDOBJECTEXISTS
function for OVS. Finally, the list of help files and text files added to the
Help menu is now alphabetically sorted (with help files first, and then text
files). Finally, attributes are now always stripped from log file timestamps.

1.00almost-final2 added a few new features, but mostly consists of a large
number of bug fixes and stability improvements. New features include a delay
option to wait a few seconds between server connection attempts (so as not to
throttle the server). A fair number of (mostly minor) bugs have been fixed.
These include the following. Pressing the Abort button on the Install form will
no longer erase your current ViRC '97 configuration in the registry, some
logging bugs have been fixed (when you're kicked, the kick is logged to the
channel log, rather than to the server log), the position of the events editor
is now correctly saved, the width of the panes in the alias, events and menu
editors is now saved, and the width of the channel nicks pane is now saved.
The BREAK statement should now work in a FOREACH/ENDFOREACH block. A little
problem with the channel list feature has been fixed. The Active Scripting
feature has been fixed so that it now correctly loads IE3-standard Active
Scripting language DLLs (without causing an exception when the code has
finished executing). The "cannot initialize GSM drivers for real-time voice
chat" message box has been enhanced with how to solve the problem (go into
Control Panel/Multimedia etc.). A nice new splash screen has been added
(thanks, CricketP ;), pressing Esc now clears the entry boxes in
server/channel/query/DCC Chat windows (Mr2001, obviously smitten by Ircle,
requested this). The menu code in DEFAULT.LIB has been improved so that
multiple nicks can be opped/deopped etc. from the channel nicks popup, and
that's about it, really. It's getting closer and closer to release now.

1.00almost-final fixed a bug where <OnConnect> and <OnDisconnect> were being
fired at the wrong times, adds an option to auto-rejoin the channels you were
last on when you reconnect to a server, fixes a bug which caused attribute
stripping not to work at all, fixed another bug which caused $U and $H to
be empty usually, and does not allow the flood protection level to be set below
3 (as this makes connecting to servers impossible, apparently), and that's
about it. Oh ... and I fixed a bug where installing V97 over V96 caused two
(harmless) exceptions. I'm away on work for about 2 weeks now (until
August 28th/29th), and hopefully when I get back, the Delphi 3.1 update I
ordered should have arrived, and recompiling under that should fix the
remaining VCL glitches, and might even speed it up a little!!

1.00rc6b added what many people have requested for a long time. First of all,
there's a new option to choose whether you want channel and query windows
closed when you quit from the server (this is on by default now, so channel
and query windows ARE closed when you quit the server connection), and there's also an option, which is on
by default, so that when you're kicked from a channel the window doesn't close.
The new options are in Client setup/IRC settings/Server and channel options.
Also, the size (not just the position) of the channel box is now saved. In
addition, the Ctrl+O (clear bold/underline/italic attributes) and Ctrl+R
(reverse video) attribute keys are now supported (they correspond to \o and \r
in scripts, respectively - this is documented in VSCRIPT.TXT). In addition,
query window popups are now supported, and a number of documentation
inaccuracies in VSCRIPT.TXT have been fixed.

1.00rc6 reverted to the original infix numeric expression evaluator, as the new
evaluator used a different order of evalation which broke many scripts. This
makes script execution slightly slower, although the slowdown shouldn't be
noticable at all. I've also added loads of new ViRCScript functions (mainly
DCC handling functions) and hopefully fixed lots of bugs. I've also added a new
setup mode for total newbies - test this out, even if you aren't a total
newbie. :) This release also has improved script editors with a find/replace
feature and line number and byte count display, and all HLP and TXT files in
the V97 directory are automatically added to the Help menu on startup. There's
also the new option to automatically minimize query windows when they open
(yes, this really _is_ there ... it's on the Miscellaneous page).

1.00rc5a fixed a bug in the numerical expression evaluator which caused many
scripts to fail.

1.00rc5 now works properly under systems that don't have IE 4.0 Platform
Preview 2 installed, unlike rc4. The Microsoft Wheel Mouse is now supported
(well, it should be anyway ... I don't have one to test my supporting code
with!!). The numerical expression evaluator has also been rewritten, making
numerical expression evaluation in scripts at least twice as fast, and a core
routine in the ViRCScript parser that had a bug which caused it to take 1000
times (!) longer than necessary to execute has been fixed, so you'll see a
performance improvement of at least 2-3 times in your ViRCScript code.
Switch/Case has also been greatly improved, adding a number of new keywords,
including Expr, Is, Matches, Multi, and Range (see VSCRIPT.TXT for more info).

1.00rc4 mainly fixed bugs. Lots of bugs. Major bugs fixed include a bug with
the finger server text disappearing, a few notify bugs fixed, the IAL is
improved (although still a little buggy - wait for the final release), a few
scripting bugs were fixed, a few documentation bugs were fixed, and the new
$OpenPictureDialog() and $SavePictureDialog() functions were added. Oh, and
TDCC Voice and TDCC Whiteboard should work now, the DCC Performance graph
should stay on once it's turned on ;), and a few of the buttons have been given
a new, shaded 3D look. Some of the captions for the window tabs have been
changed (e.g. "[x] Server notices" is now "[x] server.name.com", and "[x] DCC
Receive - file from nick" is now "[x] DCC Get - file".

A belated thanks to dr_eclipz for originally suggesting that ANSI colour
support should be added!! :)

New in 1.00rc3 were a number of minor bug fixes, support of user-installed
Active Scripting DLLs, and a cool, new DCC Performance toolbar in DCC transfer
windows (it's off by default, but you can turn it on by clicking on the system
menu). Also made DCC transfer toolbars configurable via the DCC transfer
window's system menu. Added a few new scripting features. In addition, the TDCC
Voice and TDCC Whiteboard features should now work properly again (phew!!) :).
Also, nick completion should work properly in query windows now (for both you
and the person you're querying). Also ANSI colour support is now in. That's
about it.

1.00rc2 was the second public Release Candidate version of ViRC '97 that was
compiled under Delphi 3.0. It should fix many bugs in 1.00rc1, but probably
introduces a few more as well, as many code sections had to be rewritten to
compile cleanly under Delphi 3.0. The major new feature is the addition of
ActiveX Scripting - see AXSCRIPT.TXT for more details on this.

New in 1.00rc1 were the option to timestamp logs, and a number of small bug
fixes (a visual glitch when the topic toolbar was pulled out is now fixed, the
toolbar options in the system menus of child windows now work when the windows
are maximized, and the $ischannel() function, documented for ages, was finally
actually implemented ;). Also fixed a visual glitch with TBestScroller where
the window behind showed through at the bottom occasionally. Also added a new
request-for-donations form on exit, although it can easily be turned off. Added
new \k code in ViRCScript to easily do mIRC colours, fixed another bug in
TBestScroller where coloured lines beginning with numbers showed in the wrong
colours, added a new loading servers dialog box, fixed a sort of crash bug when
importing mIRC client settings. Now just press tab in a query window to bring
up the other person's nick (requested by Dymphna on #virc). Also, the text
controls in the DCC Chat windows are now TBestScrollers, not TRichEdits, so you
can now use mIRC colour etc. in DCC Chat windows. Thanks also to Jeff Wheeler
for the new V97 logo in the About box in 0.94pre10c and above too!!

New in 0.94pre10c were a number of small bug fixes, along with the new ability
for V97 to automatically load up your web browser (if necessary) when selecting
hyperlinks, the option to strip attributes from logs, a few new VS functions
and statements (including a new list manipulation function, $listIndexOf(),
and the ability to enable and disable the built-in response to XDCC requests),
some VS/OVS fixes (Switch/Case now work properly, parameters can be passed to
methods defined for your own OVS classes), and other minor enhancements.

New in 0.94pre10a were loads and loads of bug fixes (0.94pre10 was a little
unstable), the ability to add buttons and other objects to the toolbars, an
extension to the NEW function which makes visual object creation easier and
faster, support for some new objects (TToolbarButton97, TToolbarSep97,
TEdit97). Also fixes a memory leak.

New in 0.94pre10 were a new Office 97-like look, with draggable cool toolbars,
object-oriented class support, a few little minor improvements (server name now
displayed in title bar, /list can now be used with a parameter to search for
channels containing that string without going through the filter dialog box),
and lots of bugs have been fixed.

New in 0.94pre9 were lots and lots and lots and lots of bug fixes. Oh, and
you can send messages to someone at the same time as opening a query window to
them with:

        /query nick message

I've also added a few new events. <OnErrorConnecting> is fired when there's an
error connecting to the server. The error number is in $0, and the error
message is in $1-. I also have <OnAcceptDCCQuery> (yes!! :). This event is
fired BEFORE the user is prompted whether to accept the DCC or not. Lots of
information is available here - $nick, $user, $host, $dcctype, $dccfile,
$decodeip($dccip), $dccport, $dccsize. You can call the CancelDCC command in
here to reject the incoming DCC immediately with no further prompting.
CancelDCC doesn't stop execution of the script, as it just sets a flag, so you
can put it right at the beginning of the event if you want.

There's also things like a new "Who's on" button in the channel box, new
$isvoice() and $voicelist() functions, /me is now logged and supported in DCCs,
and some major logging problems have been fixed.

I've also added support for the TIcon object (see OBJECTVS.TXT) so you can
change a form's standard VS icon to whatever you want.

Also, thanks to Josh Hays, I've now got a nice, reorganized version of
VSCRIPT.TXT that you can actually find stuff in. Thanks Josh!!

I don't anticipate the addition of many new features before the final release,
which should be soon, as long as too many bugs aren't found.

