26/04/2001 - mIRC v5.9

Fixes/Additions:
1.Fixed wheel mouse bug when meeces were set to scroll by page
  instead of by line.
2.Fixed line marker not being reset in some situations when mIRC
  isn't the active window.
3.Fixed line marker text indent bug in following line.
4.Log view dialog can now display large numbers of log files far
  more quickly.
5.The mIRC tray icon now displays the letter A for Active to
  indicate the active mIRC window, if you are running more than
  one mIRC at a time.
6.Fixed DCC Send/Get cps calculation display.
7.Fixed function key focus bug while in channel windows.
8.Added /echo -m switch, indicates that the line should be
  processed as a user message instead of an event.
9.Fixed line marker being lost if lines in a window exceeded max
  line buffer size.
10.Agent support no longer strips out high-ascii characters used
   in non-english languages.
11.Fixed tray icon refresh bug.
12.Fixed custom dialog display bug, controls weren't being re-
   displayed properly in some situations.
13.Added Hide channel key option to IRC dialog.
14.Fixed /play -e not working with custom windows.
15.$duration(seconds,N) now accepts its own output and changes
   it back into seconds, and if N == 2 returns format without
   seconds.
16.Fixed line marker bug, was being set inbetween lines in some
   situations.
17.Log view dialog now maintains cursor position in listbox after
   you delete or merge files.
18.Added on 1:APPACTIVE:echo $appactive event, triggers when the
   mIRC active application state changes. $appactive is $true if
   any mIRC window is active.

   Also added on 1:ACTIVE:@#?=!*:echo $active $lactive event,
   triggers when a window in mIRC is activated. $lactive returns
   the previously active window. If the previous window is no
   longer open, $lactive returns $null.

19.Added on 1:AGENT:echo $agentname finished speaking! event.
20.Added new DDE Topic, EVALUATE, makes mIRC evaluate identifiers
   or variables in a line of text.
21.Added 'auto-minimize on join' option to channels folder edit
   dialog.
22.Control section in Options dialog has been moved to the Address
   Book dialog, and has been improved.
23.Added /ignore -d switch, ignores DCCs such as Sends/Chat/etc.,
   /ignore -t ctcp no longer ignores DCCs.
24.Added auto-voice list to Control dialog.

   Changed /auto command to /aop, isauto to isaop, $auto to $aop,
   the old formats are still supported for now.

   Added /avoice command, isavoice if comparison, and $avoice.

   Added identifiers $aop(address/N), $avoice(address/N), and
   $protect(address/N), all with .type property.

25.Channels which are auto-joined on an invite are now minimized
   on join.
26.Added Options section to IRC dialog with default flash settings
   for channel/query windows, and mIRC exit confirmation options.
27.Extended /flash to /flash [-wbrN] [window] <text> which allows
   you to flash the desktop icon of any open mIRC window including
   custom windows.
28.Can now specify a titlebar icon for a custom dialog using
   icon filename, index
29.Scrollbars can now handle up to 64000 lines in a window.
30.Fixed $timer().secs bug.
31.Changed max cps method in fileserver, now represents total max
   cps for all dcc sends combined. This also limits dcc sends
   initiated with /dcc send -l. If you use /dcc send -l0 this
   prevents a script-initiated dcc send from being limited.
32./ignore /aop /avoice /protect now allow you to properly remove
   #channels one by one with -r.
33.Added agent dialog speech option to avoid repeating channel
   name in channel messages/actions.
34.Can now use SendMessage() to communicate with 32bit mIRC:

   SendMessage(mHwnd, WM_MCOMMAND, cMethod, 0L)

   mHwnd         mIRC window, or Channel/Query/etc. window
   WM_MCOMMAND   WM_USER + 200
   cMethod       1 - As if typed in editbox
                 2 - As if typed in editbox, send as plain text
                 4 - Use flood protection if turned on
                     Can be or'd with 1 or 2
   Returns       0 if fails, 1 if successful

   SendMessage(mHwnd, WM_MEVALUATE, 0, 0L)

   mHwnd         mIRC window, or Channel/Query/etc. window
   WM_MEVALUATE  WM_USER + 201
   Returns       0 if fails, 1 if successful

   The application that sends these messages should create a
   mapped file named "mIRC" with CreateFileMapping(). When mIRC
   receives the above messages, it will open this file and use
   the data it contains to perform the command or evaluation.

   In the case of an evaluation, mIRC will output the results
   to the mapped file.

   The mapped file must be at least 1024 bytes in length.

35.Added Position Default Save/Forget menu items to system menu
   for Channel and Query/Chat windows.
36.Auto-tile/cascade no longer trigger if a window is opened in
   a minimized state.
37.mIRC now supports the numeric 005 tokens: CHANTYPES=# and
   PREFIX=(ohv)@%+ and can handle a dynamic set of channel and
   nick prefixes.

   mIRC assumes that @ is supported on all networks, any mode
   left of @ is assumed to have at least equal power to @, and
   any mode right of @ has less power.

   mIRC has internal support for @%+ modes.

   $nick() can now handle all mode letters listed in PREFIX.

   Also added support for CHANMODES=A,B,C,D token (not currently
   supported by any servers), which lists all modes supported
   by a channel, where:

     A = modes that take a parameter, and add or remove nicks
         or addresses to a list, such as +bIe for the ban,
         invite, and exception lists.

     B = modes that change channel settings, but which take
         a parameter when they are set and unset, such as
         +k key, and -k key.

     C = modes that change channel settings, but which take
         a parameter only when they are set, such as +l N,
         and -l.

     D = modes that change channel settings, such as +imnpst
         and take no parameters.

   All unknown/unlisted modes are treated as type D.

   When not connected to a server, mIRC uses default values
   of CHANTYPES=#& PREFIX=(ohv)@%+ CHANMODES=bIe,k,l

   Also added identifiers $chantypes $prefix $chanmodes.

   Notes:

   1. mIRC doesn't support @ or $ as a channel prefix, or $ as
      a nickname prefix, these are used internally by mIRC.

   2. Ircd coders should be aware that prefixes can change
      the way an IRC client behaves.

      eg. If a server uses the same prefixes for channels and
      nicknames, this could cause certain features in mIRC
      to behave oddly, eg. scripts, hotlinks, tab completion,
      etc. which, depending on the prefix, provide a different
      behaviour or interface in non-context situations.

38.Added support for the numeric 005 token: MODES=N where N is
   the number of items allowed per /mode change. Added $modespl
   identifier.
39.Fixed server port not being randomly selected on each new
   connection.
40.Fixed treelist in options dialog not scrolling to selected
   item in some situations when options dialog is opened.
41.Fixed local info server lookup bug, was failing if the irc
   server returned an ip address in a /userhost reply.
42.Added $var(%var,N) returns Nth matching variable name. You can
   use a wildcard for the variable name. If N is zero, returns
   total number of matching variable names. This searches both
   local and global variables. $var().value returns the value of
   the variable, $var().local returns $true/$false.
43.Added $rgb() 3dlight value.
44.Added support for numeric 005 WALLCHOPS token, mIRC will use
   /NOTICE @<channel> :<text> if this token is set, instead of
   using multiple targets.
45.DCC Get no longer offers resume option if incoming filesize
   is smaller than existing file.
46.$window().state and .icon return values for -2 now.
47.Fixed handling of /msg +#channel messages.
48.Changed behaviour of Notify dialog, no longer changes Add
   button to Update. When you edit an item it is automatically
   updated.
49.Fixed bug in DNS routine, might have caused a gpf in some
   cases where the address didn't resolve.
50.Added 'Show All' menu item to notify window popup menu.
51.Added 'Grayed text' item to Colours dialog, used to gray nicks
   in notify list.
52.The protect list in control dialog can now protect a full
   nick!user@host address by using the IAL. The address can use
   wildcards.
53.Added 'Position' menu to System menu of all windows.
54.Can now set a @window icon with /window @ iconfile [N].
55.Script editor editbox can now handle 64k of text in 32bit mIRC.
56.Added $uptime(mirc | server | system, N) returns uptime in
   milli-seconds for specified item. N is optional, if N = 1 it
   returns the same format as $duration(), if N = 2 returns same
   format but without seconds, and N = 3 returns seconds instead
   of milli-seconds.
57.Added $regex([name], text, re) to parse regular expressions.
   Returns N number of strings matched.

   The list of strings for a match are referenced through
   $regbr([name], N), N = 0 returns total number of strings.

   $regbr([name], N).pos returns a strings position in text.

   $regbr() remembers the results for up to 10 names. Each time
   you do a match with $regex(), and you specify a name, that
   name's previous results are overwritten with the new results.

   $regsub([name], text, re, subtext, %var) same as $regex() but
   performs a substitution, returns N number of substitutions
   performed, and assigns result to variable %var.

   If you don't specify a name, all identifiers use a default
   name which is overwritten with each call.

   Note: mIRC uses the PCRE library (www.pcre.org)

58.Fixed bug in $ctime() wasn't handling certain date formats.
59.Added support for ! not prefix in if statements for use with
   $identifiers and %variables, eg. if (!%moo) echo no cows
60.Added nick colors section to address book, allows you to assign
   colors to a nick/address which is used to color the nick in
   messages and in the channel nick list.

   The /cnick command allows you to add or remove items from
   the colour list:

     /cnick -raniovp [nick[!user@host]] [color] [modes] [levels]

   You can use /cnick -r nick/N to remove first item that matches
   nick in the nick color list or the Nth item in the nick color
   list.

   To add or refer to an item as Any nick you can use the * char
   as the nick, * char as the mode for any mode.

   Also added $cnick(N/nick, [M]), if N returns Nth item in list,
   with properties: color, modes, levels, anymode, nomode

   If you specify a nick, returns Nth position of item in list that
   matches nick. If nick doesn't match any items, returns zero.

   To get a nick's color, you can use $cnick(nick/N).color. If nick
   doesn't match any items in the list, returns 'Normal Text' color,
   or if M = 1, returns 'Listbox text" colour.

   You can specify %vars or $identifiers as the nick.

   Note: /cline over-rides color settings in the nick color list.
   You can use /cline -r to reset a nick to default color to make
   the nick color list apply to a nick.

61.Fixed bug in Tray popup menu handling.
62.Fixed DCC Send cps limit not working in DCC Server Fileserver.
63.Added /window -C switch, centers @window on creation.
64.Replaced old $dde $read and $readini identifiers with:

   $dde(topic, name, item, [N])
   $read(filename, [ntsw], [matchtext], [N])
   $readini(filename, [n], section, item)

   The old identifiers are still supported for now but no longer
   documented.

65.Added built-in ctcp flood protection for ctcp version, ping,
   finger, and time:

     5 second ignore all users for that type of ctcp
     10 second ignore that user for that type of ctcp

66.Added transparency support for desktop windows under win2k,
   options/display dialog.
67.Can now use $line() $fline() (with T = 1) and $sline() to read
   the channel nicklist.
68.Added /run -p switch, sets working path to path of the application
   being run.
69.Added support for http proxy 'basic' authorization which uses
   base64 userid/password encoding.
70.$os should now recognize XP.
71.Popup menus should now set $1 to nick for query/chat windows.
72.Fixed !nick sound requests getting through /ignore -p.
73.Fixed text wrapping bug in highlight feature when using custom
   identifiers as highlight items.
74.Tab key completion now works on items separated by commas.
75./hadd -s and /hdel -s now show item name. Also added /hadd -m
   switch, which creates the hash table if it doesn't exist.
76.IAL is now permanently switched on.
77.Moved "Highlight nicks in messages" option to new nick color
   list dialog.
78.Added "Keep channels open" option to IRC/Options dialog, keeps
   channel windows open after you're kicked. $chan().status now
   returns "kicked" in this situation.
79.Added $hregex(name/N, retext, N), searches table for the Nth
   item which matches regular expression. Returns item name. You
   can use .data property if you want to match on the data of an
   item.
80.Can now /halt numeric 433 on connect to prevent mIRC entering
   /nick in editbox if nick and altnick are in use.
81.Redesigned dcc send/get windows interface, added 'open' and
   'open folder' buttons to dcc get dialog, and 'resend' button
   to dcc send dialog.

   Added $send() and $get .done property, returns $true if the
   transfer was succesful, $false otherwise.

82.Added scrollbar control support to custom dialogs:

   scroll "text", id, x y w h, style (top left bottom right
   horizontal range N)

   on 1:dialog:name:scroll:id:etc.

   The /did -c switch can be used to set the scroll position,
   you can use $did().sel to find current position.

83.Added /ialmark <nick> [text] command, marks IAL entry for nick
   with the specified text. You can use $ial().mark to retrieve
   the mark.

   Changed /clearial to /ialclear, the old command is still
   supported but no longer documented.

   Can now use /ialclear [nick] to clear the entry for a specific
   nickname. /ialclear without a nickname clears the whole IAL.

84.Fixed $iif() gpf bug.
85.Added /savebuf -o [dialog id] which saves text in a custom
   dialog control to a file.
86.Fixed /hload -b bug when loading items with empty data.
87.Added switchbar multi-line and width option to display dialog.
88.Fixed right-click popup menu bug during mark/copy text.
89.Fixed dialog -s dbu resizing bug.
90.Fixed /window -b not working corrctly with tabstops in custom
   window listboxes.
91.Fixed hotlink right-click popup menu not working on nicknames
   in some situations.
92.Can now check/gray menu items in popup menus by using $style(N)
   as the first word in the menu definition, where N can be 1 for
   checked, 2 for grayed, or 3 for both.

   $iif($server == $null,$style(3)) Server:
   .Motd:/motd
   .Time:/time

93.Added $input(prompt,N,title,text) identifier, prompts the user
   for input.

   prompt is the prompt text message.

   N can be a combination of values added together:

     1  - show input editbox
     2  - show input password editbox
     4  - ok button
     8  - yesno buttons
     16 - yesnocancel buttons
     32 - return $ok, $yes, $no, $cancel for buttons.

     By default, buttons return $true or $null, same as $?,
     If there is an input editbox, the ok/yes buttons always
     return the contents of the editbox.

     64, 128, 256, and 512 show the info, question, warning,
     and hand icons respectively.

   title is the titlebar text.

   text is the default text placed in the input editbox.

   N and text are optional parameters.

   Note: $input() replaces $?. $? is still supported but no
   longer documented.

94.Fixed fileserver file-sorting bug.
95.Added $eval(text,N) identifier, repeatedly evaluates text N
   times. If N isn't specified, the default is N = 1. If N is zero,
   text is not evaluated.
96.Added /drawreplace -nr @ <color1> <color2> [x y w h], replaces
   color1 with color2 in the specified picture window.
97.Added /splay -cwmp switch, clears splay queue without stopping
   currently playing sound.
98.Can now use /channel [#channel] to open channel central for a
   specific channel, if the channel window is currently open.
99.mIRC now allows you to call COM objects via scripts. You must
   have experience with COM objects in order to use this feature.

   /comopen name progid

   This opens a COM connection to object progid eg. Excel.Application,
   and assigns the connection a name.

   /comclose name

   This closes the specified COM connection.

   /comreg -u filename

   This registers/unregisters a COM DLL with windows.

   $comerr

   This should be checked after a call to any COM command or
   identifier. Returns 1 if there was an error, 0 otherwise.

   $com(name,member,method,type1,value1,...,typeN,valueN)

   This calls a member of an open COM connection with the specified
   method and parameters.

     name   - connection name.

     member - member name.

     method - Combination of the following values added together:
              1 = DISPATCH_METHOD
              2 = DISPATCH_PROPERTYGET
              4 = DISPATCH_PROPERTYPUT
              8 = DISPATCH_PROPERTYPUTREF

     type   - the variable type, can be: i1, i2, i4, ui1, ui2, ui4,
              int, uint, r4, r8, cy, date, decimal, bool, bstr,
              variant, error.

              VB equivalents are: boolean, byte, currency, date,
              double, integer, long, single, string, variant.

              To make a variable by reference, use * in the type
              name, eg. i1*

              To assign a name to a variable for later reference
              after a call, append it to the type, eg. i1* varname

              When using a variant you must also specify the variable
              type after it, eg. variant bool.

     value  - the value assigned to the variable type.

     Returns: 1 = ok, 0 = fail.

   After you've opened a COM conection or made a call to $com() you
   can use the following forms of $com():

   $com(name/N)

     Returns: name if connection is open, or name of Nth connection.
              N = 0 returns number of open connections.

     Properties: progid, result, error, errortext, argerr

       progid - object name.

       result - the value returned by the COM object member after
                the call.

       error  - error value, if there was an error.

       errortext - error description associated with error.

       argerr - Nth argument that caused the error, if the error
                was due to an invalid variable type.

   $com(name/N,varname)

     Returns: value of the specified variable name

100.The on EXIT event now triggers after the on DISCONNECT event
    if you exit mIRC while connected.
101.Fixed windows not being positioned correctly when mIRC starts
    up minimized.
102.Fixed /did -i bug.
103.Fixed $$ prefix not working for custom identifiers.
104.Identifiers now evaluate their contents without needing []
    brackets around each item in a parameter.
105.Can now detect mouse events in a custom dialog using on
    dialog event with an id of zero, and events mouse, sclick,
    uclick, dclick, drop, eg.

    on 1:dialog:*:mouse:0: echo 5 $dname $devent $did $mouse.x
    $mouse.y $mouse.win

106.Added $fullname and $emailaddr identifiers, to go with the
    /fullname and /emailaddr commands. The previous identifiers
    and commands for these are still supported.
107.Changed the way /run works, should now work the same way as
    the Run dialog via the windows Start menu.
108./window now handles quotes around the font name, and accepts
    @ or "" as an empty popup name.
109.Fixed link control in custom dialogs not being sized properly
    when using DBUs.
110.Tab nick completion now accepts *? wildcards.
111.The 'Beep on:' sounds in the Sounds dialog are now disabled
    if the "Enable Sounds" switch is unchecked.
112.Changed ishelp to ishop, and helper to halfop in help file.
113.Can now use /window -ngN switch when a @window is created
    in a minimized state.
114.Right-click popup menu in Message Window will now work even
    if no nick is active.

-

The full versions.txt has become too large to include in the
distribution, so only the version information for the current
version is being included from now on. You can however still
download the full versions.txt file from the mIRC website at
http://www.mirc.co.uk

-

28/02/95 - mIRC v2.1a

First public release.

