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