15/06/2001 - mIRC v5.91 Fixes/Additions: 1.Fixed $eval() bug. 2.Link control in custom dialogs triggers sclick event again. 3.Fixed $var() bug. 4.Fixed /channel display info bug. 5.Standardized on the word 'color' in identifiers and commands, and in the help file. 6.For Undernet servers CHANTYPES is now set to #&+ by default. 7.Fixed install program always creating desktop shortcut icon. 8.Fixed mIRC taskbar icon being redisplayed in some situations after you've minimized mIRC to the tray. 9.Fixed function keys not working in non-joined channel window if "keep open" switch is turned on. 10.Fixed tab completion not working with $? and $input properly. 11.Fixed /userhost not updating IAL. 12.Added ctcp and whois protection options, and queue op commands option, to Flood dialog. 13.Fixed window icon highlighting when switchbar is turned off. 14.Added support for numeric 005 NETWORK=name token (not supported by any servers at this time) which tells the IRC client the name of the IRC network it's connected to, eg. NETWORK=DALnet. 15.Fixed status window log filename not being updated when a new day begins and you have when the "log by day" option enabled. 16./font can now handle quotes around font name. 17.Fixed Script Editor dialog 64k limit bug. 18.Fixed Info section not working in address book if you typed in a nick and pressed the ctcp ping, etc. buttons. 19.Fixed the way /dialog and $dialog() windows are centered around other windows. 20.Fixed numeric 433 triggering script twice if nickname in use. 21.Fixed dir -b not displaying bytes in fileserver. 22.Added "Method" and "Notify list" options to Nick color list Add dialog. 23.mIRC now supports servers that send a /names list which contains a full nick!id@host format in the reply, enables mIRC to fill the IAL on joining a channel (no servers do this yet, so this hasn't been tested). 24.Fixed fserve max cps feature not being turned off if set to zero. 25.Fixed $rand() behaviour. 26.Can now /filter blank lines by specifying $crlf for matchtext. 27.Added "Use query for notify nicks" option to IRC dialog. 28.Fixed switchbar right-click popup menu bug. 29.Fixed $readini() not handling filename enclosed in quotes. 30.When you have the "keep channel open" option enabled, mIRC now clears the nicklist if a channel window is open but not joined. 31.The listbox in the Control dialog is no longer sorted. 32.Fixed $regsub() not returning original text if there were no substitutions, and not handling backreferenced values correctly when global modifier is used. 33./tokenize now correctly resets all $N to $null if no parameters are specified. 34.Can now use $style() in custom dialog menu definitions. 35.Added Up/down buttons to Control dialog to allow re-arranging of listbox entries. 36.Fixed Control+H scroll bug. 37.Improved the way $null is handled in scripts. 38.mIRC now reroutes text to the status window if it can't display text in the current window, eg. a picture @window. 39.Added $window().ontop property. 40.Fixed Line marker bug when text buffer reached maximum buffer size in Options/General dialog. 41.Fixed font size bugs, relating to positive/negative font sizes, in /font, $width(), $height, $wrap(), /drawtext, /window, etc. 42.Fixed $readini() bug when used without the -n switch. 43.Added "Blink icons" option to Display dialog, blinks switchbar icons for channel/query windows if there's a message/highlight event, or a flash event. 44.Fixed !$identifier not prefix bug. 45.Fixed editbox bug in 16bit mIRC under win3.x. 46.Added /drawrect [-d] x y w h [w h], draws rounded rectangle, must specify width and height of ellipse used to draw corners. 47.Notify no longer triggers on a nick change if nick has only changed case. 48.Added "monitor file changes" option to Editor dialog. 49.$count() can now handle multiple substrings. 50.Added $+(n1,...,nN) identifier, combines parameters. 51.Added /hadd -uN, unsets item after N seconds, and /hsave -u, by default /hsave excludes items that are in the unset list, -u forces it to include the unset items. 52.Dcc Chat/Get windows are now re-used if they are inactive and the same person tries to chat with you again, or tries to re-send the same file. 53.Added back notify options to show address and time. 54.Extended Hash commands to allow storage of binary variables: /hadd -smbc [data | &binvar] The -b switch indicates that you're adding a &binvar item to the hash table, the -c switch chops the &binvar up to the first null and treats it as plain text. $hget(name/N,item, [&binvar]) Assigns the result of a $hget() lookup to a &binvar. All other Hash commands handle binary variables as well, eg. /hload, /hsave, etc. 55.Fixed alias/script recursion gpf bug. 56.Added multibyte characters option to options/messages dialog. 57.Can now use /did -z name id [min max] to reset a scrollbar range in a custom dialog. 58.Added -i indent switch to /aline, /iline, and /loadbuf. 59.Fixed minimized icon and editbox bugs in 16bit mIRC. 60.Fixed /whois on query option not working in single message window. 61.Token identifiers can now be made case-sensitive by adding "cs" to the identifier name, eg. $addtokcs(). 62./filter -g switch now treats wildcard text as a regex expression. 63.Added /aline and /iline -n switch, doesn't add line if it already exists in window. 64.Added two new variable types to $com(), dispatch and unknown. These allow you to pass dispatch/unknown pointers as parameters in a $com() call, or to retrieve dispatch/unknown pointers from a $com() call, by reference. To pass a dispatch/unknown pointer as a parameter in $com(), specify the variable type as dispatch/unknown, and specify the name of an existing $com() connection as the value. To retrieve a dispatch/unknown pointer through a call to $com(), specify the variable type as dispatch/unknown with *, and assign it a variable name. When $com() returns, mIRC will create a new $com() item with that variable name and assign it the dispatch or unknown pointer. In the case of retrieving an unknown pointer, mIRC will extend it to a dispatch pointer if it can, allowing you to call it directly via $com(). You can use $com().dispatch or $com().unknown to see if a pointer exists for that $com() item. 65.mIRC now treats mode format +k * as a hidden key on all servers, for servers that hide the key from non-ops. 66.Fixed /dcc send -l max cps bug. 67.Added "mp3 playing" to confirm section in IRC options dialog. 68.Added on *:unload:/command event, triggers only in the script that is being unloaded. Also triggers if unloading via the Unload menu in the Editor dialog. You can use /unload -n to unload a script without triggering the on unload event. 69.Added history listbox to Control+F find dialog. 70.Added /timer -pr switches, pause and resume a timer. 71.mIRC now waits 30 seconds before a re-connect attempt if the server says that you were throttled for connecting too fast. mIRC looks for the word "throttled" in the ERROR Closing Link server message. 72.Fixed /ignore -uN not resetting nick color list colors when ignore removed after N seconds. 73.Fixed ignore button in dcc send/chat dialogs not working. 74.Fixed Flood protection ignore feature not working for dccs. 75.Pressing the enter key in the Channels folder now joins a channel when you have an item selected in the listbox. 76.Fixed $abook() gpf bug. 77.Undo no longer works in a disabled editbox in a custom dialog. 78.Fixed drop event not working properly in custom dialogs. 79.Binary variables can now be 8192 bytes in length. 80.Added /filter -a switch, allows you to specify a sort alias which is called to sort the filtered lines. 81.Added /cline -m switch, makes mIRC color a nick in channel messages with the /cline color. 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] 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 @ : 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 [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 correctly 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 @ [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 connection 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/versions.txt - 28/02/95 - mIRC v2.1a First public release.