Hans Prestige Visual IRC
Visual IRC
   Features & Screenshots
   Download ViRC!
   Scripts

   Visual IRC Forum
   Chat in Undernet #ViRC

   Awards and Reviews
   About the Author
   About the Technology
ViRC Antique Shop

Search change log

What's new in Visual IRC 2.0pre8?

Additions (23)
Bug fixes (13)
Changed features (14)

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.

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

Changed features

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

Change log history:
© Jesse McGrew 2001-2007