Changes since ViRC 2.0pre9:
--- Additions ---
* Visible controls now have the Parent property available. This could be
  used to move built-in controls into a group box or tab sheet.
* TListBox, TComboBox, and TListView now have an ItemText property. For
  TListBox and TComboBox it's equivalent to the ItemIndex'th element of
  the Items list; for TListView it's equivalent to the Caption property
  of the Selected item.
* Server tab buttons now show "connecting" while waiting to connect.
* A gratuitous credits display is hidden in the about box.
* DCC entries now stay in the list after an error occurs.
* $GetDCCInfo() has two new fields: errnum and errmsg. 'state' can also
  return 'error'.
* New '@e' command to set one-line event handlers. For example:
    @e $form.OnMouseDown = MessageBox $Button
  Now when you click the form, you will see a message saying "mbLeft" or
  "mbRight" depending on which button you used. Note that the $Button is
  evaluated when the event handler runs, not when it's set (as with @p).
  This is equivalent to:
    @p $form.OnMouseDown = Eval MessageBox $$Button
  ... but it makes more sense.
* New <default> event for server lines that aren't handled by anything
  else. New "show unrecognized server numerics" script setting, to show
  the entire unrecognized line.
* New associative array syntax:
    @ $foo[key1] = value1
    @ $foo[key2] = value2
    @ $foo[key3] = value3
    MessageBox $foo[key2]
    -@ $foo[key1]
    // when the key contains brackets, $, etc...
    @l $temp = ]special characters[
    @ $foo[$temp] = value4
    foreach ($key, $value; $foo)
      MessageBox key: $key, value: $value
    endforeach
    // stored array
    @s $stored[key] = value
    -@s $stored[key]
    // local array
    @l $local[key] = value
* New functions for arrays: $ArrayKeys($array), $ArrayValues($array),
  $ArrayLength($array). These only work with arrays created with the new
  syntax as shown above.
* ViRC now automatically checks for updates 5 minutes after you start it.
  You can disable update checking or change settings in client setup, and
  you can force it to check immediately with /checkforupdates or the
  file menu item.
* New functions: $URLEncode(text), $URLDecode(text). URL encoding replaces
  space with '+' and all other non-alphanumerics with '%xx', where xx is
  the hex code. Decoding is the opposite.
* New function $MD5(text) to return an MD5 digest. The digest is a 128-bit
  fingerprint of the input text, given as 32 hex digits. The chances of
  two separate texts having the same MD5 digest are one in 2^128.
* New function $ParseColor(string [type]) to get a color's RGB value.
  <string> can be an mIRC color number (0-15), a hex color in the form
  $BBGGRR, a decimal color (as returned by $prop($obj.Color)), an
  event color name like ecJOIN, or a color name like clGreen.
  <type> can be 'dec' to return it as a decimal color (for use with
  @p $obj.Color or with TextOut) or 'hex' to return it as a hex color in
  the form RRGGBB (for use with \d). 'hex' is the default.
* ViRC will try to reconnect to the server if the connection is lost. You
  can adjust the delay between attempts (and other settings) in client
  setup. ViRC can also try other servers on the same network if enabled.
  Note that disconnecting with '/raw quit' will make ViRC think the server
  disconnected you, and it will try to reconnect.
* New "don't hop away" server list option. If reconnection fails on a
  server with the option enabled, ViRC won't try other servers from the
  same network. However, if ViRC was trying the "don't hop away" server
  because reconnection failed on a different server, it will still hop
  away.
* ViRC's tray icon now has a customizable popup menu (MT_TRAYPOPUP).
--- Changed features ---
* <OnStart> events are now run after the toolbars are set up and the
  splash form is hidden.
* The script editor no longer saves menu items that have no code. This
  means you can add items in local.lib without having to copy all the
  code from virc.lib.
* The server debug log now contains all text that is sent or received.
  'recv' marks a received line, 'send' is a sent line, 'send_brk' is a
  sent line that is broken to avoid DCC proxies, and 'send_idle' is a
  sent line that doesn't reset $idletime(). If you use debug logging, make
  sure you edit any passwords out of your logs before you send them to
  anyone.
* Channel, query, and DCC chat window positions are now stored with an MD5
  digest of the network and channel/nickname instead of the actual plain
  text. This prevents others from looking in your registry to see who
  you've talked to, and also lets you have separate positions for the same
  channel on different networks.
* The 'News and updates' link has been removed from the about box.
--- Fixes ---
* DCC requests are always sent correctly with reverse DCC enabled. You can
  also send DCC when SOCKS is enabled, as long as reverse DCC is also
  enabled.
* No more errors when using /exit with queries or channels open.
* Major DCC bugs fixed.
* Menu definitions can now have spaces before the bitmap filename.
* Fixed hexadecimal values in expressions.
* Errors in ActiveScript language blocks are handled better.
* GetVar() in ActiveScript code now works correctly for numbered parameter
  variables.
* $getwindowid() now works in <OnCreateWindow> for all window types.
* Timers are now disabled correctly when the timer command takes longer
  to run than the timer interval.
* Text windows free expired script links correctly.
* Importing ViRC 1.x settings now works correctly when there was no server
  list defined.
* Ending color codes now correctly clears the background color.
* Leaving the personal script filename blank is now acceptable.

Changes since ViRC 2.0pre8b:
--- Additions ---
* ViRC can now autoload more than one script at a time - a master script
  (virc.lib), a personal script (local.lib), and multiple add-on scripts
  (winamp.vsc, etc.). You can now install an add-on script simply by
  adding it to the list on the configuration window's Scripts page and
  rehashing.
* The script editor now has a "New" button, and loads the personal script
  by default.
* New 'server list' button in toolbars.vsc.
* New channel list window. Try '/list *mp3*' or just '/list'. The list
  can be loaded and saved to a file, using the same format as mIRC.
  Right-click on a channel to get a menu.
* New /who window, accessible with /wwho or /windowedwho. Try '/wwho' to
  get a list for the active channel, or '/wwho #virc' for another
  channel. You can also double-click on a channel in the /list window to
  see who's on.
* '/clear -h' or '/clear #virc -h' can now be used to clear the input box
  history.
* The server notify list and channel nick list can now be resized by
  dragging the border between the output pane and list box.
* Scripts can now create tray icons with the TTrayIcon class. Properties:
  - Active: Boolean
  - Hint: string
  - Icon: TIcon
  - PopupMenu: TPopupMenu
  Events:
  - OnClick
  - OnDblClick
  - OnRightClick ($Shift, $Button, $X, $Y)
* If you move ViRC to a new directory and it can't find the scripts (the
  old paths are saved in the registry), it will look in the new location
  of ViRC.exe. If it finds them there, it will load the files and update
  the settings.
* Scripts can now use TListView, which is the control used in the ban
  list, /who list, and Explorer windows. The actual implemented classes
  are TListView, TListItem, TListItems, TListColumn, TListColumns, and
  TImageList. See ovs.txt.
* Scripts can use TCanvas to draw on forms and some controls. This also
  means owner-draw list boxes and list views are available.
* A color palette now appears when you start typing a color with ctrl-K.
* Attribute codes (^B, ^K, etc.) now work for the real name and default
  messages settings in configuration, and for the topic in channel
  control. Scripts can use TInputCombo for a combo-box that allows
  attributes.
* New reverse DCC support for firewalls, compatible with mIRC. Enable
  "Use reverse DCC" on the DCC settings page. Note: This won't work if
  both users are behind different firewalls.
  Special note to Khaled: Please put more thought into your next
  invention.
* When reverse DCC is enabled, ViRC will attempt to trick some proxies
  that intercept DCC requests (specifically, the one at my apartment
  complex that inserts the wrong address).
* The setup wizard is now implemented. Choose "I'm new to IRC and I
  want detailed help" on the import settings form for new users.
* New function: $SameNick(nick1 nick2). Considers [ the same as {,
  \ the same as |, and ] the same as }, like ircd.
* New commands/functions for DCC management:
    $DCCList() returns a list of DCC list entries
    DCC Accept <entry> [filename]
    DCC Resume <entry> <offset> [filename]
    DCC Reject <entry>
    $GetDCCInfo(<entry> <key>) where key is chatform (returns a mapped object
      handle), chatwin (returns a window name like =1), filename, id, kind
      (chat/send/tsend/get/tget), mynick, myport, nick, origfilename,
      remoteaddr, remoteport, reverse, reversetoken,
      server (returns the server ID), servername, socket (returns a mapped
      object handle), startpos, starttime (compare to $mtime()), state 
      (request/connecting/connected/waiting/resuming/socks), totalsize,
      transferred, or whiteboardform (returns a mapped object handle)
  Note that when an incoming request is accepted, the request entry is deleted
  and a new entry is created to connect. Firewall DCC entries are similarly
  recreated during connection.
* New events for DCC:
    <OnDCCConnect>  ($0 = chat/send/tsend/get/tget, $1 = DCC entry ID)
    <OnDCCFinished> ($0 = chat/send/tsend/get/tget, $1 = DCC entry ID,
                     $2 = socket error number, $3- = error message.
                     error number is 0 if completed or -1 if aborted.)
* Ident and DCC socket errors are now shown on the main status bar.
--- Changed behavior ---
* Menu bitmaps will now be made square when they're loaded, by setting
  the width to be the same as the height. This means you can use the
  same bitmaps for menus and toolbars if the toolbar bitmaps have
  disabled versions.
* New users now have "strip attributes from logs" turned on by default.
* ViRC no longer freezes while looking up the server's IP address.
* Menu items aren't forgotten when the menu tree is updated, so you don't
  have to duplicate the code for the entire menu just to add one item.
* No more AddNickToChan/RemoveNickFromChan errors.
--- Fixes ---
* The tile and cascade buttons in toolbars.vsc now work correctly.
* The tray icon refreshes itself automatically if Explorer crashes.
* The server toolbar is correctly updated after an error causes the
  server to disconnect.
* The internal QUIT event now works correctly if the server doesn't send
  a reason.
* The new TDCC handshake is now actually implemented.
* Continuous backgrounds work correctly with toolbars, and turning
  continuous backgrounds off works as expected.
* ViRC now looks in its own directory for menu/toolbar images if no path
  is given.
* Incoming messages and notices directed to the ops or voices of a channel
  (@#virc, +#virc, @+#virc, etc.) are now shown in the correct window.
* Logging for nicks with \ in them works correctly.
* The ident server is now much better behaved.
* IAL expiration should be faster in large channels.
* Nicks are now compared correctly ('{' is the same as '[', etc.).

Changes since ViRC 2.0pre8:
--- Additions ---
--- Changed behavior ---
* Exceptions caused by scripts are handled differently. Functions that
  raise exceptions will return an appropriate message.
* The upgrade message will now go away even if the configuration can't be
  saved completely.
--- Fixes ---
* Menu bitmaps work correctly.
* Class definitions with blank lines work correctly.
* Switching between OVS-created MDI children doesn't give errors.
* Destroy/SafeDestroy no longer explicitly close forms. This will prevent
  errors when a form's OnClose handler destroys the form.
* Calling methods of user-defined classes no longer loses local variables.
* List items quoted with angle brackets are now extracted correctly.
* '/dns  www.yahoo.com', with an extra space after /dns, works correctly.

Changes since ViRC 2.0pre7:
--- Additions ---
* RGB color codes are now supported, a la Bersirc. Press ^L (or use \d
  in a script), followed by a RRGGBB hex color code (like HTML). A comma
  separates the foreground and background colors.
* ViRC can now be set to recognize ^V as inverse colors instead of italics.
  It will always recognize ^R as inverse, and now also always recognizes ^]
  ($char(29) or \s) as italics. Pressing control-N or control-R will insert
  the correct italics or reverse code whether compatibility mode is on or off.
  New users will default to new color mode, existing users will default to
  compatibility mode.
* New text window options: "old italic compatibility mode" and "script link
  merge mode".
* New versions of a few string functions to allow tokens/substrings with
  spaces (just quote the token as a list item): $StrPosEx(), $StrPosFromEx(),
  $StrTokLEx(), $StrTokREx(), $RStrPosEx(), $RStrTokLEx(), $RStrTokREx().
* New versions of pattern matching functions to allow patterns with spaces
  (quote the *text* as a list item): $WildMatchEx(), $WildMatchCaseEx(),
  $GlobMatchEx(), $GlobMatchCaseEx().
* Ctrl-enter can be used to type multiple lines in the input box and send
  them all at once.
* The script editor gives a warning when it loads a file where code between
  aliases/events/menus will be lost.
* /wallops has been added as a built-in command.
* New variable $exebuild to return the build number of ViRC.exe. This can
  be found by opening ViRC.exe's properties and looking at the version page;
  if $build is 200 and $exebuild is 42, the file version will be 2.0.0.42.
* New command: Inflate [window]. This makes the window as big as possible
  without maximizing it, so switching windows will be faster. If no window
  name is given, all windows will be inflated. Clicking a window's maximize
  button will now inflate it instead of maximizing (turn off "maximize button
  inflates" to go back).
* New function $ListCat(<item1> .. <itemN>) to append list items. This will
  be faster than appending them as strings when the new script engine is in.
* Screen information can now be retrieved by mapping !Screen: see the
  properties ActiveControl, ActiveForm, DesktopHeight, DesktopLeft,
  DesktopTop, DesktopWidth, Height, Width, HintFont, IconFont, MenuFont,
  and PixelsPerInch.
* ViRC will strip out the PGP headers when loading a script that has been
  digitally signed with PGP. It will not verify the signature itself, though.
  If you sign a script, make sure to keep the original script text intact -
  you can do this by opening it in a text editor and signing it with PGPtray,
  *not* by using the PGP right-click menu in Explorer. Make sure you have
  "word wrap clear-signed messages" turned off in PGP's email options.
* DCC Whiteboard is back, and much more powerful. See vircwb.txt for details
  on how to control the whiteboard from scripts. This whiteboard is
  compatible with ViRC 1.x's whiteboard, but some features will be unavailable
  (the 1.x user may see "CAN use-wb2" as ViRC 2 tries to negotiate this).
* New commands/functions to interact with other windows:
  $FindWindow("class" ["title"]), $SendMessage(<hwnd> <msg> <wparam> <lparam>),
  $GetWindowText(<hwnd>), SetWindowText <hwnd> <text>.
* New commands/functions to allocate and edit memory, intended for use with
  SendMessage or DLLs (ViRC may crash if you don't know what you're doing):
  $GetMem(size), FreeMem <ptr>, PokeLong <ptr> <offset> <value>, and
  $PeekLong(<ptr> <offset>). PokeWord, PokeByte, PeekWord, and PeekByte are
  also available, and PokeString/PeekString can be used for C-style strings.
* New persistent DLL support with $LoadDLL(<filename>), FreeDLL <filename>,
  and an extended $DLL(). See vircdll.txt for details, or fpu.dpr for an
  example.   Note to DLL authors: although you can have mIRC-style functions
  and persistent functions with the same name in the same DLL, persistent
  calls use different function names and parameter types.
* Built-in timestamping for text windows. Turn on the "show timestamps"
  option to see them by default, or right-click in a window to turn it on
  and off. Timestamps are saved even when timestamping is turned off, and
  toggling timestamp display affects lines that have already been added,
  as in AIM. 
* The script editor now has syntax hiliting and auto-indent.
* Custom toolbar support, using Toolbar..EndToolbar blocks (similar to menu
  trees). See toolbars.vsc.
* virc.lib now includes responses for CTCP USERINFO, FINGER, SOURCE, and
  CLIENTINFO, and an /sv command to brag about your client version.
* These server form properties can now be used in scripts: Hostname,
  Nick, Ident, IRCName, Servername (read only), Port (read only), Connected
  (read only), ConnectedAt (read only), LastSent (read only). These channel
  form properties can also be used: ServerID (read only), Server (TForm),
  Channel, JoinString (read only), Mode, Key (read only), Limit (read only),
  Topic, TopicSetter, TopicTime, TopicHistory (TStringList).
* Menu tree definitions can now contain an optional bitmap filename,
  surrounded by double-quotes before the caption.
--- Changed behavior ---
* The mouse wheel code has been changed. If your wheel hasn't been working
  properly (*cough* Gnowknaym), try turning off the "Mouse wheel fix" option.
* 'Nop' event handlers in OVS now work the same way as they did in 1.x; that
  is, it sets a handler that does nothing. To actually unset an event handler
  (as 'Nop' did in pre7), use 'Nil' instead.
* $ListReplace() now creates empty items in between:
  $ListReplace(2 2 foo a b c) => a b foo
  $ListReplace(2 2 foo a) => a "" foo
* /kb now deops the victim.
* Internal socket error handling has changed.
* The configuration window now appears the first time running ViRC.
* <OnConnect> events now get the server name in $0 and the network name in $1.
  $1 will be () if there is no matching network.
* TDCC now works with a parameter at the end of CTCP DCC SEND, instead of
  using CTCP DCC TSEND. This means that if you TDCC send to an mIRC user, it
  will go through as regular DCC (with send-ahead) instead of being ignored.
  Turn on "use old TDCC handshake" to go back.
* Tab characters are no longer copied to the clipboard.
* 'true' and 'false' can be used in expressions to mean 1 and 0 respectively.
  Among other things, this means you can do 'if $prop($checkbox.Checked)'.
* A default value can be specified to AddScriptControl:
  AddScriptControl config edit "Auto join:" autojoin = #virc
* Commands sent in the background by ViRC (such as ISON commands for the
  notify list) will no longer reset $idletime(). Use 'Quote -idle <text>' or
  'Raw -idle <text>' to do this from scripts.
* Existing aliases, events, and toolbars will now be removed from memory
  before rehashing the script (with /rehash or the script editor).
* Aliases are now stored in a hash table rather than a slow sequential list.
--- Fixes ---
* Focus for newly created windows is now correct again.
* Clicking empty spots on the tab bar no longer causes it to grow. Closing
  the first window no longer leaves an extra separator.
* The script editor's "this script loads" list no longer includes
  files that don't exist.
* "%%" and "*%" in patterns will now work as expected.
* Deleting items in the script editor doesn't break the last item.
* Rearranged virc.lib again, it's now completely safe to edit from ViRC.
* TextOutBitmap -nohilite works correctly.
* Variables can now contain $char(0).
* <OnDCCRequest> event handling is improved.
* Hexadecimal values ($$a40c) work in expressions again.
* Text windows no longer scroll to the bottom when they are resized.
* The tab bar no longer appears when it's empty.
* Menu items now run in the correct channel.

Changes since ViRC 2.0pre6:
* New window tab bar. This one docks at all four sides, puts all the
  tabs on one bar, and automatically updates the tab icons if a script
  changes a form's icon (not just for TTabbedForm).
* New options: "no separators on window tab bar", "hide window tab bar",
  "automatically show DCC list" (for incoming or outgoing requests).
* A channel control dialog is in. Use /ChannelControl [channel] or double-
  click in the channel window. It can be mapped as !ChannelControl.
* New command: /exec <program> <parameters>.
* The script editor no longer loses <DoubleClick> menu items. It's also
  stay-on-top instead of modal, and it will go back to the same file
  and item when it's closed and reopened. It can be mapped as
  !ScriptEditor.
* /dde is fixed and can now poke data as well as reading and executing.
* ViRC now has a DDE server. See vircdde.txt.
* If ViRC can't load the default script, it will bring up the config form
  so the script path can be corrected, then quit.
* $isdccchatting() now accepts a leading equal sign (=1 or =Atrox).
* Only the most specific <OnNewDCCChatText> event will be fired, unless
  FallThrough is used. Use 'FireEvent -one' to fire your own events
  this way.
* Text scroller fixes: gaps between bold and non-bold text are gone,
  ^R now correctly draws the background color.
* The help menu has descriptions for the included files, and the
  scripting help files are on a submenu.
* /^ no longer causes text display to be stuck off.
* Script engine fix: an OVS event handler that sets a new handler for
  the same event on the same object will no longer cause access violations.
* TInputMemo is now available in OVS - it's like TMemo but it handles
  attribute keys (^B, ^K, etc) and attribute pasting. TForm's OnClose event
  is also supported. Set $Action to caNone, caHide, caFree, or caMinimize.
* The DCC list's position is saved and loaded correctly.
* New properties for channel windows: TopicSetter (string), TopicTime 
  (unixtime), and TopicHistory (TStringList).
* New method for TMonkeySex: GetText(). Returns all the text in the control.
* ViRC.lib has been rearranged so that the script editor won't lose the
  active nicks/modes code.
* New function: $UnixTimeOf(dd/mm/yy hh:mm[:ss] [am/pm])
* $DecodeInterval() and $DecodeMInterval() now accept a second parameter, a
  format string containing characters w, d, h, m, s. The default format is
  'dhms'. Lowercase characters are optional fields, uppercase characters
  are required fields.
    $decodeinterval(123 hms) => 2 minutes 3 seconds
    $decodeinterval(123 HMS) => 0 hours 2 minutes 3 seconds
    $decodeinterval(123 hm) => 2 minutes
    $decodeinterval(123 h) => 0 hours
* The controls on server/channel/query/chat forms are now in their own
  panels (OutputPanel, InputPanel, NotifyPanel, NickListPanel). This should
  make it easier to fit new controls in.

Changes since ViRC 2.0pre5:
* VSInterp fixes: '@p $obj.Items.CommaText' wouldn't work, even though
  the property could be retrieved. RemoveFromSetProp was broken.
* New functions: $getmode(), $gettopic(), $getkey(), $getlimit().
* New "keep channels open when dropped" option.
* New script editor. Right-click on the tree to add or delete items.
  Remember that ViRC 2 load scripts from a file, not the registry - the
  editor works on files, not a "working copy" of the script as in 1.x.
  The header and footer appear before and after the script in the file,
  respectively; don't define aliases, events, or menus in the header or
  footer. The editor will load any ViRC script file, but if you load a
  file that wasn't created with the editor, you'll lose everything that
  appears between definitions (comments before events, etc.). Comments
  should be put in the header/footer or inside definitions.
* Friendlier welcome/"import settings" dialog.
* /load will now default to looking in the ViRC directory if no path is
  given.
* The following built-in commands no longer display text: /say, /msg,
  /notice, /ctcp, /rctcp, /me, /desc. Instead, they fire script events:
  <OnMyChanText>, <OnMyPrivMsg>, <OnMyNotice>, <OnMyCTCP>, <OnMyRCTCP>,
  <OnMyChanAction>, <OnMyPrivAction>, <OnMyQueryText>, <OnMyQueryAction>.
  $0 is the target or window, $1- is the text. The events will be fired
  even if the text display is suppressed with the ^ prefix. DCC chat uses
  the same events as queries (this is the only time $N can be used on the
  global interpreter). $C is set to the target for channel and query events,
  and the active window for the others.

Changes since ViRC 2.0pre4:
* New "continuous backgrounds" option. This causes each window's background
  image to be tiled from the same starting point.
* A wallpaper image can now be displayed behind the child windows. Combine
  this with continuous backgrounds for an interesting effect.
* Numeric operators are now left-associative, like they should be: $(1-2+3)
  returns 2 ((1-2)+3), instead of -4 (1-(2+3)).
* $notify() no longer displays text in the active window when used as a
  function.
* The mouse wheel should now work again. Moving the wheel over the nick list
  will scroll the list; moving it anywhere else will scroll the output pane.
* Channel window titles are now only set to the first 100 characters of the
  caption. This should prevent access violations in channels with very long
  topics.
* New DCC options: "Force DCC IP address" and "force port range" (for
  incoming connections only). This is useful if you're behind a firewall or
  NAT (aka Internet Connection Sharing). The IP address will be evaluated
  if specified, so you can point it to a file on your NAT server:
    $readline(1 $noattribs(\\win2kbox\c\currentip.txt))
* Instead of /command, you can now also type //command (to evaluate it
  first) or ///text (to evaluate some text and show it in a message box).
* /DNS will now accept a nick. If you have a hostname that looks like a
  nickname (no dots, doesn't start with a number), use /dns *host to
  prevent this.
* New TSockets method: SListenRange(lowport highport). Attempts to listen
  on any port within the range, returning the port if successful, or 0
  if not.
* New "auto connect to servers" script setting. Set this to a
  comma-separated list of servers to connect to when you open the client.
* Updated script documentation is included.

Changes since ViRC 2.0pre3:
* Logging paths containing \b, \i, \u, etc. will now work correctly.
* OnServer works on server 16.
* Text scroller updates:
  - Multiple lines of text are copied to the clipboard correctly.
    Attributes are also terminated at the end of the selection.
  - TextOut bitmaps are drawn transparently. Any pixels that are the same
    color as the bottom-left corner will be transparent.
  - Background images are available again.
  - A lock icon is now displayed in the bottom-right corner when a window is
    scrolled up, indicating that new lines will not be visible as they are
    added.
* DLL calls are now supported. Use '/dll foo.dll funcname data' or
  $dll(foo.dll funcname data), surrounding the filename with quotes if
  necessary. The same format as mIRC's DLLs is used:
    type
      TDLLCall = function (Main, Active: HWND; Data, Params: PChar; Show,
         NoPause: BOOL): Integer stdcall;
  The Params buffer is initialized to "ViRC 200", where 200 is the current
  ViRC build. A return code of 0 (halt script) is treated the same as 1
  (continue script).
* The script log form can be mapped as !ScriptLog, when enabled.
* New function: $striplinks(). This only strips hyperlinks and script links;
  $stripattrs() does neither.
* Links are now correctly stripped from logs.
* Built-in timers:
  /timer [timername] seconds repeats command
  /mtimer [timername] millisecs repeats command
  /timers ['all']
  /untimer timername
  $timerexists(timername)
  $timerlist([serverid])
  $gettimer(timername) => millisecs repeats server command

  A "repeats" value of 0 means the timer repeats forever. Timer names are
  shared across all servers, and any timers created on a server are deleted
  when that server is closed. Timer names may not start with a digit. If the
  timer name is omitted in /timer or /mtimer, an available name will be
  generated automatically. $timer() and $mtimer() can be used as functions,
  which will return the name of the newly created timer. Commands will not be
  evaluated when they are run (if you want it to happen, use Eval).

Changes since ViRC 2.0pre2:
* Script link colors are now averaged correctly.
* 'TextOut -nohilite' (or TextOutBitmap -nohilite) can be used to prevent
  the window tabs from lighting up.
* 'DNS hostname' now correctly performs the reverse lookup instead of just
  repeating the hostname you supplied, and only shows it if the result of
  the reverse lookup is different from the supplied hostname.
* Part messages are now handled correctly. This may eliminate AddNickToChan
  errors.
* \L and \S are now stripped from logs when attribute stripping is turned on.
* A splash screen is now displayed as ViRC starts.
* #172 is now handled correctly in patterns, as is % followed by * or #172.
* Punctuation is now stripped from the end of URLs more reliably.
* Variables removed by mask (with '-@ $foo.*' or when local variables are
  removed) are now matched case-sensitively. This is available to scripts as
  $wildmatchcase().
* $new() now works correctly if there is more than one space between 'ownedby'
  or 'position' and its argument.
* The Active, ActiveMDIChild, FormState, ModalResult, and TileMode properties
  of TForm are now available.
* Destroying an object from one of its event handlers will now work in *some*
  cases. Which ones work is dependent on the internals of Windows and the VCL.
  The command 'SafeDestroy' has been added which will always work, but won't
  actually destroy the object until the event handlers finish running.
* $mapobject(#virc:WindowTab) can now be used to find the button on the tab
  bar corresponding to a given window.
* $globmatch() and $globmatchcase() are now available, which only use '*' and
  '?' as wildcards. $maskmatch() is the same as $globmatch().
* New DCC config options: send ahead and block size.

Changes since ViRC 2.0pre1:
* TextOut on the global interpreter will now display to the active window.
* $?="" now returns INPUT_CANCELLED if the user presses Cancel.
* ViRC will no longer attempt to send data to the server from an
  <OnDisconnect> event.
* <OnCreateWindow> will now be fired with "TDCCChatForm =nick =1" for DCC
  chat forms (with the appropriate =ID in $2).
* New functions to get the nicks involved in a DCC chat: $LocalNick(=ID),
  $RemoteNick(=ID).
* Objects created with OVS are no longer freed by the interpreter when it is
  destroyed - this fixes access violations, 100% CPU usage, and so on when
  closing ViRC.
* Some more 1.x settings are now imported as script settings.
* Kick/KB messages and exit/X messages are now evaluated as in 1.x.
* New function: $IsA(<obj> <class>).
* RPL_UMODEIS events with a colon before the user mode are now handled
  correctly.
* Script link aliases now get $X, $Y, $Shift, and $Button, just like
  OnMouseDown handlers. They also get $Text (the visible text of the link)
  and $ScreenX and $ScreenY (the screen coordinates of the mouse click,
  suitable for use with TPopupMenu.Popup).
* A form can now be destroyed from one of its event handlers. However, other
  controls should not be.
* $UnixTime() is back to using 32-bit numbers. This prevents uncommon but
  bizarre flaws with the 64-bit numbers, such as all unixtimes being off by
  136 years.
* Server list changes: New server entries are now saved correctly the first
  time. You can now choose which servers and networks to export/import.
  Importing is now implemented.
* The join and part bitmaps have been changed to a white arrow on a red
  background, which should be easier on the eyes.
* Object handles are now shared between interpreters.
* New method: TMenu.LoadFromMenuTree. This creates menu items to match the
  menu tree, and puts their handles in the local _item array; for example,
  an item named M_CTCPVERSION will be created with its handle in
  $_item.M_CTCPVERSION. Note that OnClick handlers are not set up for these
  items.. clicking them will not make anything happen by default.
* MenuTree..EndMenuTree can now be used to define custom menu trees by giving
  a non-standard name. They will not be used by ViRC and cannot be used with
  MenuItem..EndMenuItem; they are intended for use as shown above.
* AppendText now creates the file if it doesn't already exist.
* New commands: ShowScriptLog,
  FireMenuItem [> channel] <item> on <tree> [= parameters].
* Ident requests are now answered with a CRLF at the end, which should make
  ident work with more servers.
* The main menu no longer forgets all the hints and items when the menu tree
  is changed.
* $prebuild can now be used to find the current prerelease version.
* TMonkeySex's events can now be set:
  OnClick, OnDblClick: gets $Sender
  OnCopyText, OnHyperlink, OnLogging: gets $Sender and $Text
  OnScriptLink: gets $Sender, $Command, $Text, $Button, $Shift, $X, $Y
* The default script link color has been changed. Script links are now
  displayed using the average between the regular text color and the script
  link color.
* ViRC.lib now generates script links, which you can turn on and off with the
  checkboxes on the script settings tab. "Active nicks" brings up the nick
  list popup when you right-click a nick, "Active hosts" runs a DNS lookup
  on a hostname when you double-click it, "Active modes" lets you undo a mode
  change by right-clicking it, and "Active invites" lets you join a channel
  when you're invited by double-clicking it.
* Hyperlinks and script links are now stripped before a TextOut to a
  TRichEdit.
* Magic is now properly applied to channel nick list popups.

Changes since ViRC 2.0pre-1:
* Event masks like "% FOO" will now match either "xyz FOO" or "xyz FOO bar",
  but not "xyz FOOABC"; that is, the line from the server can contain extra
  words at the end that aren't in the mask. $wildmatch() still works as usual.
  You can get the same effect from $wildmatch() by putting an alt-0172 at the
  end of your pattern.
* $currentserver_activewindow() is now an alias for $activewindow().
* TTrackBar and TNashButton are now available for scripts to use.
* New commands: FlushIAL, SetInputLine.
* New functions: $GetInputLine(), $MapProp().
* New syntax to uncache one bitmap: FlushBitmapCache <filename>
* ViRC 1.x user/server lists are now imported.
* New "timestamp logs" option.
* The version info on virc.exe is fixed.
* The script log window can now be resized, and right-clicking on it will let
  you change the buffer size.
