Visual IRC explained

Visual IRC
Developer:Adrian Cable and Tara McGrew
Operating System:Windows
License:GPL

Visual IRC (ViRC) is an open-source Internet Relay Chat client for the Windows operating system. Unlike many other IRC clients, nearly all of the functionality in ViRC is driven by the included IRC script, with the result that the program's behavior can be extended or changed without altering the source code.

History

Development of the second incarnation slowed and by 2000 Visual IRC appeared to be dead. The original author MeGALiTH (Adrian Cable) passed the source code to a user, Mr2001 (Tara McGrew), who had previously contributed some code, and who had secretly been developing a clone called Bisual IRC (BIRC). Rather than restarting development of the ViRC '98 code base, he merged some of ViRC '98's features into BIRC and released it as Visual IRC 2.

Much of the source code to BIRC, ViRC 2, and the related utilities has been released under the GPL through the project's web site and SourceForge.

Versus

Versus is a scripting language originally developed for the IRC client Bisual IRC, and currently used with Visual IRC. It is similar in many ways to the scripting languages used by ircII and mIRC, as well as Tcl and C.

The name "Versus" was chosen because it could be shortened to "VS", which was a common abbreviation for ViRCScript, the language used by Visual IRC '96 through '98. Versus remained mostly backward compatible with ViRCScript, so existing documentation and commentary that mentioned "VS" remained mostly accurate when applied to Versus. The name also alluded to BIRC's origins as a replacement for ViRC.

Object Versus, or OVS, refers to the object-oriented features of Versus. Scripts can define classes and work with objects and methods instead of textual data and aliases; however, in practice, OVS is mostly used to manipulate the VCL objects that make up ViRC's interface.

Script storage

Scripts are stored in files, usually with a file extension, though the .lib extension is sometimes used. A Versus script file simply contains statements to be interpreted when the script is loaded; any blocks defined in a script (see below) will replace blocks defined with the same name by previous scripts.

Blocks that can be defined in a script

Aliases, methods (including constructors and destructors), events, menu items, and toolbar items are referred to as routines or code blocks.

Data storage

Files

Variables

Associative arrays

Pseudovariables

Code examples

Here is the Hello World code example:

Alias HELLO
  TextOut > $C clBlack Hello, world!
EndAlias

Here is an example to count to ten:

Alias TEN
  for (@l $i = 1; $i <= 10; $i++)
    TextOut > $C clBlack $i
  endfor
EndAlias

Here is an example to make everyone in the current channel an operator:

Alias MASSOP
  foreach ($a,$b,$c,$d; $nicklist($C))
    Mode $C +oooo $a $b $c $d
  endforeach
EndAlias

Further reading

External links