09/11/2000 - mIRC v5.81

Fixes/Additions:
1.Fixed $did().seltext not working in some cases.
2.Can now enter control chars in channel central topic editbox.
3./splay will now accept LFNs even if they're not enclosed in quotes,
  error messages are now also wrapped.
4.Moved "internal sound" to sounds dialog, the internal sound is now
  only played for event beeps. mIRC uses the default windows sound
  for errors etc.
5.Fixed custom dialog icons not being displayed inside box controls.
6.Fixed bug in highlight feature when using identifiers as highlight
  items.
7.$inmp3.fname now returns case of original filename.
8.Fixed $send()/get() .cps if transfer took < 1 second.
9.Fixed Alt+S not working in DCC Send dialog.
10.Added /play -fN switch, plays file from line N onwards.
11./run will now keep the quotes in any parameters that you specify.
12.Added $sdir(dir,title) and $sfile(dir,title,oktext), title and
   oktext are optional.

   The $sdir, $file, $hfile, and $dir identifiers are still supported
   but are no longer documented in the help file.

13.If you select a topic from the topic history in channel central,
   it will now be set as the new topic when you press OK.
14.Fixed url double-click bug under WinME (?)
15.Fixed hour-glass bug in Editor dialog when using Ctrl+S.
16.When using a popup menu in a channel, the $1- identifier will now
   always be set to the selected nicks in the nicklist.
17.Fixed "!nick sound" sound request not working for mp3s.
18.Fixed agent bug, wasn't allowing you to turn agent on/off on a per
   channel/query window basis.
19.Fixed custom dialog tab control display bug.
20.Fixed bug in on WAVEEND/MIDIEND/MP3END if /splay was used within
   the event to restart playing.
21./splay can now handle longer filenames.
22.Fixed /splay seek not triggering on MP3END.
23./did -eb now works on icons in custom dialogs.
24.$window().state now returns "hidden" if a window is minimized and
   its icon is not visible.
25.$mp3().length now works with VBR mp3s, $mp3().variable and
   $mp3().crc also fixed.
27.Channel central no longer stores duplicate topics.
28.Fixed ctrl+copy not working in @windows.
29.Fixed internal ban list not seeing bans set by servers.
30.Fixed $ibl().by for undernet which doesn't provide an address for
   the user setting the ban.
31.Added built-in uninstaller to 32bit mIRC under 95/98/etc., adds
   item to Add/Remove in control panel, uninstalls the last mIRC that
   was run, will tell you which mIRC is being removed. Also removes
   all registry changes.
32.Fixed bugs in multimonitor support.
33.You can press the ! button in the sounds dialog a second time to
   stop a sound playing.
34.Added "pc speaker" option to sounds dialog.
35.Editbox in channel/query windows no longer limits the amount of
   text you can paste into it. It will still beep if you enter lines
   longer than 450 characters though.
36.Fixed bug in /colour not updating background picture colours.
37.Fixed $mid() bug when handling a negative index.
38./colour -r <N> now resets colour box N to default rgb value, and
   $colour(N) now returns rgb value for the Nth box.
39.Fixed flood protection feature in options/irc dialog.
40./splay seek no longer resumes an mp3 if it has been paused.
41.Added $hget().data property, works same as .item.
42.Added $hfind(name/N, text, N), searches table for the Nth item
   which matches text. Returns item name.

   $hmatch(name/N, wildtext, N) allows you to match wildcard text,
   also works if the item or data itself is wildcard text.

   Specify .data property if you want to match on the data of an
   item. Also returns item name.

43.Editor dialog now displays size of text in k's instead of bytes.
44./play now buffers a text file before playing it. /play messages
   are now also subject to flood protection (if enabled in options
   dialog).
45.Changed $round() rounding method.
46.Added /dcc ignore on/off command.
47.The . command prefix now overrides -s for hash commands.
48.Improved tab key nick completion method. Also can now complete
   nicks beginning with a prefix, eg. +nick
49./queryrn now allows _ in the new nickname.
50.Fixed $file() bug.
51.Fixed nicklist being double-spaced when you changing the line-
   spacing for a channel.
52./echo -d now opens the message window if it's not already open.
53./background now works even if window isn't currently open, also
   allows you to set defaults.
54.Fixed Control+F find bug.
55.Fixed /vol command not working in 16bit.
56.Added "All" menu items to Position menu item in system menu.
57.Fixed Control+Shift+Insert not working when pasting /commands as
   plain text into a single-line editbox.
58.Fixed channels list window popup menu gpf bug.
59./ignore /auto /protect now display info in active window.
60.Can now call file dialog identifiers from a custom dialog event.
61./titlebar no longer changes case of @window name.
62.Editor dialog now indents lines following a $&.
63.Fixed /renwin allowing @window names > 90 characters.
64.Fixed auto-tile/cascade not working when selecting a window from
   the window menu.
65.Added /drawrot -hnbfc @ [colour] <angle> [x y w h], rotates area
   of bitmap by specified angle.

   -b indicates you've specified a background colour value.
   -f fits the newly rotated bitmap into the original width/height.
   -c centers the rotated image if -f isn't specified.

66.Removed support for "Start in" folder in shortcut icons, was
   causing too many problems.
67./firewall -c now clears userid/password.
68.Top level submenus in popup menus are now merged if they have
   the same name.
69.You no longer need to use [ ] inside $iif() to evaluate items.

   $iif() now only evaluates the 2nd and 3rd parameters after the
   if comparison itself has been evaluated.

70.mIRC now recognizes "IRCX" token in numeric 005 for ircds that
   support IRCX extensions.
71.Fixed $hotline not returning proper results with indented lines.
72.Improved log view dialog.
73.Fixed editor dialog tabs display bug when on desktop.
74.Added /play and /playctrl dialogs to control the /play queue.
75./window can now resize a minimized @window.
76.Changes to /hop, now clears the topic before a rejoin, also no
   longer parts a channel if you /hop to it while it's already open.
   Added /hop -c #channel switch, cycles any open channel, you can
   use -n to minimize the channel.
77.Fixed $readn bug.
78.$ini() no longer halts a script with an error if the ini file
   doesn't exist.
79./sockwrite and /sockudp no longer halt a script if they fail, they
   now set $sock().wserr to the error value, and also trigger the
   on sockwrite event with an error.
80.Fixed $sock().wsmg bug.
81.Fixed custom dialog "icon" property not accepting quoted LFNs.
82.The /draw -p and -r switches will now work together properly.
83.$readn is now set to zero if a $read -w search fails.
84./anick no longer changes your nick, unless altnick is the active
   nick. /nick will try to prevent nick and altnick from becoming
   identical nicks.
85.Integrated .chat file support into the exe.
86.The script parser no longer replaces ]] with ] if ]] has other text
   appended to it, eg. ]]sometext
87.Added SJIS/JIS option to IRC/Messages dialog for 32bit mIRC. When
   this option is turned on, the display and mark/copy of multi-byte
   characters should also work better.
88.Changed cps calculation method for dcc sends/gets.
89.Added /dcc get <dir> to redirect an incoming dcc send to dir (must
   be subdir of the main mIRC dir), and /dcc reject to reject the dcc
   send. These must be called from within the CTCP dcc send event or
   the on DCCSERVER send event. $filename returns name of file.
90.Added on EXIT event, ie. on 1:EXIT:/echo exiting mIRC
91.Extended ignore method in dcc options/folders dialog.
92.A notice will now add a user to your IAL if the user is on the same
   channel as you.
93.Fixed $nick().colour, was returning incorrect values.
94./hadd now allows you to add items without a data value.
95.Fixed on dialog event being triggered incorrectly for some controls
   when dialog is first created.
96.Fixed /unset bug when first character of variable is a wildcard,
   eg. /unset %*
97.Fixed while loop bug.
98.Added "match on" option to Highlight section edit dialog.
99.Added support for URL links in web pages, using the format
   <a href="irc://address:port/channel?key"></a> for example,
   <a href="irc://irc.undernet.org:6667/mIRC">#mIRC</a>

   Note: currently this format only seems to work with IE.

100.Can now set localinfo manually with /localinfo <host> <ip>.
101.Fixed $portfree() bug.
102.Improved channels folder dialog. Can now specify password,
    network and auto-join for each channel.

    If you try to join a channel, either via the toolbar channels
    folder popup menu, or in the channels folder, and you're not
    connected, mIRC will auto-connect to the server.

    You can now enter more than one channel per entry, where the
    first word is the group title, in the form:

      grouptitle #chan1 #chan2 etc.

103.Added "show topic" item to popup menu when right-clicking on
    a #channel name.
104.Added support for http proxy connections in firewall dialog.

05/09/2000 - mIRC v5.8

Fixes/Additions:
1.Fixed agent bug, was speaking channel actions even if only private
  actions were enabled.
2.Fixed bug in /filter, /loadbuf for handling custom dialog controls.
3.Fixed $nick().colour not working if a nickname is specified instead
  of the Nth item.
4.mIRC now uses it's own internal beep.wav sound for event beeps, added
  as option to general dialog.
5.Fixed bug in dual monitor display support.
6.Fixed /did bug when changing text in the Tabs of a tabs dialog.
7.Can now use negative numbers in $mid, eg.$mid(text,-N,-N).
8.Fixed /firewall -mN bug.
9.Fixed /font not working with dcc chat =nicknames.
10.Fixed bug in $bytes().
11.Fixed /play -b switch only sending at 1000ms.
12.Can now use a part message with the /hop command.
13.Can now preview wav/mid files in file dialogs by holding the ALT
   key and double-clicking a filename.
14.Fixed bug in the 8.3 format of log filenames.
15.Fixed bug with $disk() and ntfs drives.
16.Changed "!nick sound" feature to ignore any text specified after
   the sound filename.
17.The local port used by the server connection is now limited to
   the range specified in the DCC Options dialog.
18.Custom dialogs now display any size .ico files properly.
19.Fixed $did().state and .enabled not working with menu items.
20.Added /dcc send -c switch, closes send window on completion.
21.Fixed DCC Options Max Gets bug in DCC Server.
22.Added "show on desktop" item to Editor "options" menu.
23.The old default /hop alias is now ignored.
24.The channel nick list now retains nick colours across /names
   listings.
25.Only ban types 3 4 8 and 9 now have the encrypted = part of an
   address replaced with a wildcard.
26.Can now use /cline -r to reset nickname in channel listbox to
   default colour.
27.Fixed Control+F not scrolling to correct line in a window in
   some cases where lines are wrapped.
28.$binvar(&var,0) now returns 0 if &var doesn't exist.
29.Notify list now shows users address.
30.Added /btrunc <filename> <bytes> command, truncates/extends a
   file to specified length.
31.Changing the contents of a link item in a custom dialog now
   works if the link isn't currently displayed.
32.$banlist().by now returns the full address of the person setting
   the ban.
33.Fixed bug with icons in custom dialogs, they were clickable even
   if they were not visible.
34.Fixed ESCape key not working with "hide when minimized" option.
35.$pic() now also supports JPG and PNG.
36.Extended /colour <name> <index>, can now also use /colour <index>
   <rgb> to change the rgb value of a colour.
37.Can now specify "noborder" in an "icon" definition in custom
   dialogs to prevent a border from being drawn around a picture.
38.BURK codes are now stripped out of logfile names.
39.Fixed bug in highlight feature, was matching against nicknames
   incorrectly in some cases.
40.Fixed bug in /filter -n switch.
41.Can now use /font -d switch to set font as default for window.
42.The flash message in the highlight feature can now contain
   %vars and $ids which will be evaluated.
43.Fixed highlight bug in "link" custom dialog control.
44.Colours in the channel nicklist are now reset to default if
   you rejoin the channel after a kick/disconnect.
45.Added $banlist().ctime, returns $ctime time format for ban date.
46.Added isban comparison, uses $banlist() to check if an address
   is banned, eg. if (*!*@*.net isban #channel) ...
47./window -h can now hide non-custom windows again.
48.Fixed while loops bug, weren't working properly in custom menus.
49.Added $scriptline, returns current script line number.
50.Fixed bug with Order dialog in Editor when ordering scripts.
51.Improved support for DLLs via /dll and $dll().

   You can now keep a DLL loaded by including a LoadDll() routine
   in your DLL, which mIRC calls the first time you load the DLL:

     void __declspec(dllexport) __stdcall (*LoadDll)(LOADINFO*);

     typedef struct {
       DWORD  mVersion;
       HWND   mHwnd;
       BOOL   mKeep;
     } LOADINFO;

     mVersion contains the mIRC version number in the low and high
     words.

     mHwnd contains the window handle to the main mIRC window.

     mKeep is set to TRUE by default, indicating that mIRC will keep
     the DLL loaded after the call. You can set mKeep to FALSE to
     make mIRC unload the DLL after the call (which is how previous
     mIRCs worked).

   You can unload a loaded DLL by using:

     /dll -u <filename>

     $dll(N/filename) returns the list of loaded DLLs.

   You can also define an UnloadDll() routine in your DLL which
   mIRC will call when unloading the DLL to allow it to clean up.

   mIRC will automatically unload a DLL if it is not used for ten
   minutes, or when mIRC exits, UnloadDll() will also be called
   in these situations:

     int __declspec(dllexport) __stdcall (*UnloadDll)(int mTimeout);

     The mTimeout value can be:

     0   UnloadDll() is being called due to a DLL being unloaded
         when mIRC exits, or unloaded with /dll -u.

     1   UnloadDll() is being called due to a DLL not being used for
         ten minutes. The UnloadDll() routine can return 0 to keep
         the DLL loaded, or 1 to allow it to be unloaded.

52.mIRC will now properly parse server messages that aren't prefixed
   with a server address, and will use the server address prefix in
   numeric 001 for such non-prefixed messages.
53.Fixed bug in flood protection feature.
54.Nick changes now update nick in query window titlebars.
55.Added $server().pass property for server password.
56.Added /echo -n switch, prevents /echo from hiliting switchbar
   icon.
57.Fixed handling of throttle error message on undernet servers.
58.Added Advanced dialog to connect/options dialog, allows turning
   on/off of random local ports, and specifying bind address.
59.Find dialog now allows you to search for BURK codes.
60.On keydown/keyup now capture all key events in custom windows.
61.Cancel away on keypress option now works for /me messages.
62.Fixed bug in $did().seltext, it now also returns $crlf between
   each line.
63.Added /filter -b key, strips BURK codes when matching text.
64.Added $onpoly(n1,n2,x,y,x,y,...), checks if two polygons are
   overlapped, returns $true/$false. n1 is the number of points for
   the first polygon, n2 is for the second polygon.
65.Added $bvar(&var,N).word,nword,long,nlong, returns values in host
   and network byte order.
66.Fixed bug in $isalias() not recognizing local -l aliases when
   called from the local script.
67./splay now supports .mp3 files, also added on MP3END event,
   $inmp3, and $mp3dir (folder can be specified in Sound requests
   dialog).

   Added $mp3(filename) identifier, with properties: album, title,
   artist, year, comment, genre, track, length, version, bitrate,
   variable, sample, mode, copyright, private, crc.

   The /splay command has also been extended to:

   /splay -wmpq [filename | stop | pause | resume | seek | skip] [pos]

   Where w = wave, m = midi, p = mp3, and q = queue for playing.

   If you specify [pos] value when playing an mp3, mIRC will play
   from that position, eg. /splay ipanema.mp3 1000

   You can seek to a position in an mp3 while it's being played with
   eg. /splay seek 1000

   You can skip the currently playing sound with /splay [-wmp] skip

   Extended $inwave, $inmidi, and $inmp3, with properties .fname,
   .pos, .length, eg. $inmp3.pos

   You can use the /vol -wmpvuN [volume] command to set the volume on
   your system for waves, midis, mp3s (same as waves), or -v which
   sets the master volume, range 0 to 65000. The -uN switch sets the
   mute, where N = 1 is on, N = 2 is off.

   You can use $vol(wave|midi|mp3|master) to get the current volume,
   and $vol().mute returns the mute setting.

68.Changed behaviour of on HOTLINK event, /halt in one script will
   no longer affect the event in a following script.
69.$os should now recognize ME.
70.Added test button to agent lexicon dialog.
71.Can now use N = 0 in $did(name,id,N) to access the edit control
   in a combobox, and N = 0 in /did to modify it.
72.Fixed /did -g not handling quote-enclosed filenames.
73.Fixed /play -b requiring delay value, now uses default if none
   specified.
74.The B and C parameters in $width(text,font,size,B,C) are now
   optional.
75.Added $wrap(text, font, size, width, [word,] N), returns Nth line
   wrapped to width. If optional word parameter is 1, text is wrapped
   at whole words (default).
76.Improved handling of \\network paths. mIRC can now also be run
   from a network path and will correctly use that path as root for
   ini files, folders, etc.
77.Channel central now enables Op settings for IRCops.
78.Identifiers called in popup menu titles can now use $1- to refer
   to the selected listbox item.
79.Added /play -n switch, sends a notice instead of a message.
80.Fixed /close bug, wasn't closing multiple sends/etc. properly.
81.Added /drawpic -l switch, tiles picture in specified area.
82.Added $keychar to on keyup/keydown events, returns the actual
   character being pressed as opposed to the key code.
83.Editor now defaults to last used folder when displaying the load
   file dialog.
84.The D parameter in $round(N,D) is now optional.
85.Added identifiers to encode/decode %vars or &binvars:

     $encode(%var | &binvar, mubt, N)
     $decode(%var | &binvar, mubt, N)

   The last two parameters are optional.

   The second parameter consists of switches, where m = mime,
   u = uucode (default), b = &binvar, and t = text (default).

   The final encoded line is made up of 60-character chunks.
   You can specify N if you want mIRC to return the Nth chunk.
   N = 0 returns the total number of chunks in the line.

   If encoding/decoding a &binvar, the identifiers return the
   actual number of characters written to the &binvar.

   Encoding uses 33% more storage space.

86./query now displays address in titlebar if user is in IAL. The
   Message window now also displays the address in the titlebar for
   the last received message.
87.Selecting a server in the connect dialog now makes it the default
   server even if you press the OK button in another section of the
   options dialog.
88.Fixed $mouse.x/y/dx/dy returning invalid values in some cases.
89.Can now close Editor dialog while script initialization warning
   dialog is displayed.
90.The $banlist() identifier has been changed to $ibl(). Also the
   $chan().banlist property is now $chan().ibl. The old formats are
   still supported.

   The IBL (internal banlist) is now updated every time it sees a
   ban. You can fill it completely with /mode #channel +b.

91.mIRC no longer sends a default quit message if you haven't
   specified one.
92./dcc send and /fserve now handle LFNs better.
93.Added /queryrn <nick> <newnick> changes nick of an open query.
94.Added /var -s switch to show local variable being set.
95.Added /anick command, allows you to change your alternate nick,
   even while connected. Also added $mnick and $anick, return your
   main and alternate nicknames.
96.Added right-click popup menu for url hotlinks.
97.Added $window().hwnd and $dialog().hwnd property.
98.Added $window().icon, returns "on" or "off" depending on whether
   a window icon is visible. Note that $window().state no longer
   replies with "hidden".
99.Custom windows can now be logged, "logging" item in system menu.
100.$ulist(*,N) now returns all matches in user list including just
    nickname entries.
101.$fline() now allows you to search for BURK codes.
102.Fixed resizing channel nicklist bug when channel is placed on
    the desktop.
103.Added "include network" switch in logging dialog, includes name
    of network in log filename.
104.The popup menu in the Channels List window now allows you to
    join channels/etc. while retrieving the channels list.
105./log now allows you to log a file to any directory.
106.Fixed auto-tile causing a maximized window to de-maximize when
    resizing the main mIRC window. Auto-tile should also work better
    now when a minimized window is restored.
107.Fixed lexicon not being applied to all agent messages.
108."No such nick/channel" message is now shown in query windows.
109.Background pictures in custom dialogs now behave better when
    mixed with other controls.
110.Fixed bug with $ctrlenter when text was pasted into editbox,
    also added $inpaste.
111.Fixed infinite while loop bug.
112.Fixed click events on icons in custom dialog events, is now
    more precise.
113.Development notes: mIRC 32bit in future may not work under win32s
    win3.1. This will allow me to support new technologies in the
    32bit. mIRC 16bit may continue to be developed, with bugfixes,
    where possible.
114.Fixed $findfile() bug, if full path wasn't being specified may
    not have worked.
115.Added /set -n switch, treats following values as plain text
    instead of a calculation.
116.Added $nick().pnick property, returns .@%+nick format.
117.Added $remote, returns ctcp/event/raw on/off status or'd together,
    ie. 1 | 2 | 4, eg. if ($remote & 1) ctcp is on.
118.Fixed resource leak in DCC Send/Get windows display.
119.New channel central dialog, made display of banlist info  clearer,
    and now shows related auto-unban info. Also added Edit button,
    allows editing of an address.
120.Added /timer -h switch, creates a multimedia timer. Only works in
    32bit mIRC. Also added $timer().mmt property.

    Since multimedia timers are a scarce resource, and cpu intensive,
    mIRC allocates one multimedia timer and uses it for all of your
    -h timers. In order to keep cpu usage down to a minimum, the
    delay of this timer is dynamically changed as /timers are created
    or destroyed so as to use the lowest common denominator delay.

    The moment you don't have any -h timers running, mIRC frees the
    multimedia timer. If mIRC is unable to allocate a multimedia
    timer, it uses the normal /timer -m millisecond timer.

121.Made changes to mouse leave event, should work better when used
    for drag events.
122.Channel nicklist and IAL routines now use hashtable lookups to
    speed processing.
123.mIRC now displays the "files changed" dialog if you try to exit
    mIRC while the editor dialog is open.
124.Fixed /window command not handling floating point values for
    x y w h paramters.
125.mIRC can now be run as a service under 95/98 by specifying
    -service on the shortcut command line.
126.Custom window menu/mouse events now process the script which
    created the /window before looking through other scripts.
127.Fixed bug in $dbuw and $dbuh not returning the correct values.
128.Added hash table support for scripting. A hash table can be
    created/destroyed/modified using:

      /hmake <name> <N>           -  create a new hash table size N
      /hfree <name>               -  destroy an existing hash table

      /hadd <name> <item> <data>  -  add an item
      /hdel <name> <item>         -  delete an item

    You can use -s with all commands to show output, and -w with
    /hfree and /hdel to make them treat the name or item as a wildcard
    to free all matching items.

    A hash table can store an unlimited number of items regardless
    of the N size you choose, however the bigger N is the faster it
    will work, depending on the number of items stored.

      /hload <name> <filename>    -  load table from a file
      /hsave <name> <filename>    -  save table to a file

    By default, these load/save plain text to a text file, with item
    and data on separate lines ($cr and $lf characters are stripped
    from text before saving). You can use -b to load/save binary files.
    You can also use -n to make them load/saves files as data only,
    with no items.

    /hsave also supports -o to overwite an existing file, and -a to
    append to an existing file.

    To reference the contents of a hash table, you can use:    

      $hget(name/N)        -  returns name of a hash table if it exists,
                              or returns the name of the Nth hash table.
                             .size property returns the size of table

      $hget(name/N,item)   -  returns the data associated with an item

    You can also reference the table as an index from 0 to N using
    $hget(name/N,N).item which returns the Nth item name in the table.
    If N is zero, returns the total number of items in the table. This
    method is provided as a convenience, it is not an efficient way to
    use the hash table.

    Note: the hash table is case-insensitive.

129.Changed $ial(mask,N) to make N optional (defaults to 1), and mask
    can now be just a nickname.
130.Can now use $did().seltext on a listbox/combobox to return the text
    of the first selected item.
131.Fixed $isdir() bug.
132.Added "Save and Log As" item to system menu, allows saving buffer
    and starting a log in one selection.
133.Fixed hotlink bug on ircx servers with .nick owner prefix.
134.mIRC no longer splits logs at midnight for chats, it only does this
    for channel logs now.
135.All matching mouse events in custom window menus are triggered now,
    previously mIRC was only triggering the first matching event and
    ignoring all remaining scripts.
136.Fixed dcc chat bug, initiating a dcc chat from behind a firewall
    wasn't working properly.
137.Fixed notify list focus bug.
138.mIRC now uses the "start in" folder in a shortcut icon as the
    root folder. Can override with -r command line switch.
139.Added $notify().addr property, works on watch-enabled ircds.
140.Fixed dcc send/get/chat time-out gpf bug.

-

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.

