[ Old mIRC Versions ] Sep 23, 1999 - mIRC v5.61 Fixes/Additions: 1.Fixed lock dialog password bug. 2.Improved support for IRCX servers: Added property $nick().owner, isowner if comparison, and "q" property to $nick(#,N,aohvrq,aohvrq) where "q" is for owners. Added on OWNER/DEOWNER events, work the same as on OP/DEOP, and $mode().owner/deowner properties. mIRC also now automatically sends /ircx to the IRCX server the moment it connects. If you have a large notify list, the notify list will now work on IRCX servers, a maximum of 30 nicknames at a time are sent in the ISON request. The "raw" event can now trap all events that mIRC doesn't internally recognize, so IRCX events can be processed, eg.: raw prop:*:echo 4 PROP: $nick $address $event $1- The DATA event from microsoft chat clients is now hidden, and any privmsgs of the format :(#G2<:E:10M1) or :(#G810E21:RM1) are trimmed to the text after this token. This is only done on IRCX servers. mIRC now sees the CREATE event, interprets it as a JOIN, and also displays the KNOCK, EVENT, and WHISPER events. The PROP TOPIC event now updates the topic in a channel window titlebar. The +dhuwx channel modes are now displayed in the titlebar. 3.The text entered for the highlight words list no longer strips out extra spaces. 4.The RAW event can now handle unknown NAMED events, eg.: raw eventname:*:echo 4 $nick $address $event $1- 5.Limit channels section in Lock dialog now allows any length channel name to be entered. 6.Added "play flash sound N times" option in Highlight dialog. 7.Fixed /tokenize bug with non-space delimited tokens. 8.Rolling/unrolling windows now only works if you hold down the shift key when right-clicking on the window titlebar. 9.Added $lock(item/#chan/N) identifier, returns $true or $false if item is locked, where item can be: send, get, chat, fserve, run, dll, channels. You can also use $lock(N) where N returns the Nth channel in the limit channels list, or you can specify a channel name instead of N. 10.Added "show in channel: ctcps" switch to IRC dialog, to display ctcps sent to a channel in the channel window. 11.Extended $duration() to handle larger numbers. 12.mIRC intercepts Control-F4 to close desktop windows now. 13.Support for $parmN and *N will be removed next version. 14.Fixed invalid cps value at start of dcc get resume. 15.Fixed on PLAYEND bug. 16.Made change in /goto behaviour and how it finds :goto points. 17.Sound messages are now time-stamped. 18.Fixed bug in $crc(), it's returning the correct standard 32bit CRC value now. 19.Added $dccignore, returns $true if ignore types in dcc folder dialog is on, otherwise $false. Also added $dccignore(N/filename), if N = 0, returns number of items in ignore types list, otherwise returns Nth item in list. If filename is specified, returns $true if it matches item in list, otherwise $false. 20.Fixed BURC codes being stripped from channel topic. 21./font, $width(), $height(), /drawtext, now allow you to specify a negative number for the font size, this matches the font size you'd see in the font dialog. 22.Fixed on INPUT not working with dcc chat/fserves. 23.Fixed memory bug in /drawsave. 24.Fixed bug in $read when using both -w and -l switches. 25.The Help menu in the menubar now lists .chm and .html files. 26.Can now specify "hsbar" horizontal scrollbar property for listbox and combobox in custom dialogs. To reset the width of the hsbar you can use /did -z after adding/deleting lines. 27.Extended $chat/$fserv/$send/$get, to $chat(nick,N), $fserv(nick,N), $send(nick,N) and $get(nick,N) for nicks with mutliple dcc sessions open. The old format of $xxx(nick/N) is still supported. Also extended /close -cfsg to allow you to specify Nth chat/fserv/ send/get, eg. /close -s5 nick, would close the 5th send to nick. 28.$highlight now returns $true if highlighting is enabled, otherwise $false. Added $highlight(N/text) identifier, with properties .text, .colour, .sound, .flash, .message, .nicks. Returns Nth highlight line in highlight listbox, or if text is specified, returns the properties for the highlight line that matches text. 29.Fixed + prefix bug in $target identifier for /msg +#channel. 30.Added if (v1 isalnum) comparison to test if v1 is alphanumeric text. 31.Online timer and Idle time now remain valid even if you change your computer time. 32.Tooltips now pop up over incomplete switchbar button names. 33.Fixed gpf bug in colours dialog when pressing Ok button, and in /colour command. 34.Can now Control+Q to cycle through query windows. Cycled windows are minimized when you cycle out of them. 35.Ctcp sound now handles quoted LFNs, and you can specify a quoted LFN with the /sound command. 36.Made a change in the way mIRC submits /list *wildcard* on the new DALnet servers, the method mIRC was using before wasn't being recognized, so the entire channels list was being sent. 37.The Find dialog in the Editor now remembers past searches. 38.Fixed bug in /writeini and $readini relating to items prefixed with [, windows writes multiple items of the same name in this situation, mIRC changes the [ to ~ to prevent this. 39.Fixed local variables memory allocation bug. 40.Fixed bug with Control-K inserting text in a read-only editbox. 41.Added $dialog() .cw and .ch properties, return width and height of client area of dialog, ie. not including titlebar, borders, etc. 42.Added custom dialog {} item "option" with properties "dbu" and "pixels", allows you to specify whether the dialog uses dialog base units for measuring control sizes and dialog width/height. Using dialog base units ensures that your dialog will appear the same size for all users on any size display etc. Also added /dialog -bp switch, indicates that the width/height is in dialog based units or pixel units. 43.$fline() now strips BURC codes from the text before tying to find a match. 44./did -g no longer makes an icon visible if it was hidden before. 45.$did().visible now works properly for icons. 46.$did() on an icon now returns the index and filename of the icon. 47.Fixed bug in drag-drop onto channel nick listbox. 48.Fixed bug with "always get..." switches being turned off in some situations. 49.Improved hotlinks to recognize %#channels only on ircx servers, and !#channels only on ircnet servers. 50.Added event on 1:HOTLINK:wildtext:*/#/?/@/=:/commands, works slightly differently from normal events, eg. on ^1:HOTLINK:*help*:#:{ if ($1 == helpme) return halt } on 1:HOTLINK:*:*:echo clicked word $1 in line $hotline The first hotlink event is triggered when you move your mouse over a word that matches *help*. You can then check $1 to see if you want the hotlink hand to appear over the word. If you halt the event, no hand will appear. This allows you to filter a word based on context. The $hotline identifier returns the line which contained the hotlink trigger. Note: the script for this event should be as small and as fast as possible since it triggers each time the mouse is moved over a word matching *help* The second hotlink event is triggered when you double-click on a word which has been filtered through the first hotlink event. 51.mIRC now expands tab characters in text in custom @windows. 52./window -c now works with the Link list window. 53.Fixed tab key nickname bug in query windows. 54.The procedure in the DLL being called by /dll and $dll() must now be of the form: int __declspec(dllexport) __stdcall proc(HWND, HWND, char *, char *, BOOL, BOOL); 55.You can set the tabstops for tab-delimited text in a custom @window using /window -t <name> T1 T2 ... Tn 56.Fixed bug in Urls list "Send To" option. 57.Fixed DCC Send dialog gpf bug. 58.The 32bit mIRC under win95/98/NT/etc. now uses the new win95 file dialogs. 59.Fixed gpf bug relating to placing more than one closing brace } on one line in a menu definition. 60.Fixed shift+right-click rollup/down not working with tool @windows. 61.Fixed gpf bug in custom dialogs when holding down spacebar over a button and pressing a cursor key. 62.Added "search all" switch to find text dialog in editor. 63.Can now /clear =nick for dcc chats. 64.Using a new random number generator which returns unsigned long values, previous generator was returning int values. 65.Added ability to customize time-stamp in options/messages dialog. 66.Lock messages for items locked in the lock dialog are now more informative, eg. when trying to join a locked out channel, etc. 67.Fixed /var bug which may have caused a gpf if /var was used incorrectly. 68.Fixed $initopic() to handle section names containing [] chars which mIRC replaced with ~ chars to prevent ini problems. 69.Added binary operators, $and(a,b), $or(a,b), $xor(a,b), $not(a), $biton(a,n), $bitoff(a,n), $isbit(a,n). 70.$window(name) can now reference all windows. 71.Added support for tab control in custom dialogs, example: dialog test { title "mIRC" size -1 -1 110 100 option dbu tab "m", 1, 5 5 100 90 tab "I", 2 tab "R", 3 tab "C", 4 button "m is for ... ;)", 11, 30 50 50 24, ok tab 1 button "I is for Internet", 12, 30 50 50 24, tab 2 button "R is for Relay", 13, 30 50 50 24, tab 3 button "C is for Chat", 14, 30 50 50 24, tab 4 } In the above example, I assigned button controls to specific tabs, so mIRC handles the showing/hiding of them. Can use /did -fu to set the focus on a specific tab, and /did -vh to show/hide the control. Added $dialog(name) .focus, returns the id of the control (not specifically for tabs, general use) that currently has focus, and .tab, returns the id of the tab that is currently selected. Only one tab control can be defined in a dialog. 72.Fixed $disk().free value for 32bit mIRC. 73.mIRC now also displays vLMN channel modes in channel titlebar. 74.Added $timer().secs property, returns number of seconds left till timer is triggered. 75.Added $isupper(text) $islower(text) identifiers, return $true or $false depending on whether text is all upper/lower case. 76.Improved Tab key nick completion in dedicated Message Window. 77.Fixed custom dialog position being reset when minimizing and restoring the main mIRC window to/from an icon. 78.Added /echo -bf switches, apply the beep/flash settings in the window that you're /echoing to. 79.Fixed bug in mIRC tray icon under NT/2000. 80.Fixed gpf bug in on SENDFAIL/GETFAIL if you /closed the send/get window in the event itself. 81.$0 now returns the number of space-delimited tokens in $1-. 82.Added $ord(N) identifier, appends st, nd, th as appropriate to the number N. 83.Added right-click popup menus to DCC Send/Get windows for extra functions. 84.Fixed /loadbuf not closing file in some situations. 85.Changed parsing method for $cr, $lf, and $cb so that you can create your own identifiers beginning with these letters. Also changed for: $false $inmidi $inwave $null $online $ticks $titlebar $true $version 86.The ignore list can now be cleared with /ignore -r. 87.Can now /drawrect -e for an empty circle, and /drawrect -ef to draw a filled circle. 88.The routine that displays the modes in the channel titlebar now displays any channel mode that the server sends, sorts the modes alphabetically, except for modes +lk which it adds at the end. 89.Added "check if Service name in use at startup" in Options dialog DDE section, prevents mIRC from using a DDE name if another mIRC is using it. 90.Added $sock().to returns number of seconds socket has been open. 91.Halting on NOTICE event now prevents the default sounds for that event from playing. 92./onotice and /omsg will now use @#channel format, and /amsg and /ame will send one privmsg per channel instead of using privmsg #chan1,#chan2,etc., on efnet hybrid-6. 93.Added /dialog -r switch, to center a custom dialog. June 3, 1999 - mIRC v5.6 Fixes/Additions: 1.Fixed on midiend being triggered when you try to play a midi while one is already playing. 2.Fixed /window -g not working on hidden windows. 3.Fixed popup menu - separator bug. 4.Fixed on servermode/usermode events. 5.Fixed bug with Ctrl-Shift-Home shifting display text when trying to highlight text in editbox. 6.CTCPs sent to a channel are now displayed in the status window, not in the channel window. 7.Fixed wave sounds not playing properly if a wave sound was currently being played. 8.Fixed not being able to Control-K in a combo editbox. 9.Fixed $mask() bug. 10.Long lines in the /stats reply are now wrapped. 11.Fixed /flash not resetting tray icon. 12.$isfile/isdir/exists now return $false if provided with a $null value. 13.$chr(26) EOF is now stripped from lines written to log files. 14.Removed backward-compatible support for the old format of $left, $mid, $nick, $right, $snick, $str, where N was specified first. 15.Extended $nick() identifier to $nick(#,N,aohvr,aohvr), to replace all of the other $opnick/$nopnick/etc. identifiers. Both aohvr parameters are optional. The first specifies which nicks you'd like included, and the second specifies the nicks you'd like excluded. a = all, o = ops, h = helper, v = voiced, r = regular Note: the old identifiers are still supported for now. 16.Your away status is now shown in the Status window titlebar. 17.Fixed Channel topic "set by" message being displayed in channel when "show topic in channel" was turned off. 18.Fixed URL hotlink bug when over nicknames beginning with non- alphabetic characters which matched another nickname on the channel. 19.Fixed bug in /background command, wasn't freeing resources properly. 20.Added $dccport identifier for DCC Server port. 21.Added /echo -q switch which makes /echo not display any text if it is in an alias that was called with the . prefix. 22.Fixed bug when two simultaneous dcc chats by two users resulted in an extra dcc chat window that connected to a non-existent socket. 23.Extended switches for /load and /reload to allow -rsN where N is the script position of the script being loaded. This allows you to order/re-order a script. 24.$event now returns "ctcp" for a ctcp event. 25.on input now requires the <*#?=!@> field, and any window name can be specified now. 26.Extended on open event when it is triggered by a new query window opening: on 1:open:?:<wildcard text>:commands Where the wildcard text will match the message that the user is sending to you, causing a new query window to open. This allows you to halt the window opening based on the message. 27.On startup, mIRC no longer checks to see if another application is using its DDE Service name, this seems to cause problems. This means that if another app is using the mIRC DDE Service name when you run mIRC, the new mIRC will take over the DDE service name. 28.The date logfile names option now uses the full 4-digit year. 29.Fixed /iline bug. 30.When using /window ... /command, the contents of the @window editbox are not reset unless the /command is different from the previous /command. 31.Added on PING event, allows you to hide the ping server message. 32.The line "Session Time:" is now output to log files at midnight as marker for log files that are open for a long time. 33.Fixed /window -w switchbar buttons display bug. 34.Extended /window -kN switch, where 0 = hide prefix, and 1 = show prefix. 35.Fixed bug in /dde CONNECT topic processing. 36.Fixed bug in $did() which sometimes didn't return the text in an editbox. 37.Fixed on close event, ^ was triggering in the wrong order. 38.Desktop windows with the "flash" option turned on now have their own window icons flashed. 39.Added $crc(filename) identifier, returns 32bit CRC. 40.Added "Track Urls" switch to System menu in Channel/Query windows, auto-opens websites as they are mentioned in a window. 41.Added /loadbuf -ttopic switch, loads text in the [topic] section in a text file. 42.Added /findtext [-n] <text> command, searches active window for the specified text (same as Control-F). 43.For $readini /writeini /remini, can now specify multi-word topics in "quotes". 44.Added $initopic(filename,N/topic) identifier, returns [topic] name/Nth position in an ini/text file. 45.Can now specify multiple id numbers with one /did command, separated by commas, eg. /did -b test 2,12,14,16 46.Added Popup menu to DCC Options toolbar button. 47.Fixed /dde and $dde not freeing memory bug. 48.Added $dde -dN switch, where N is the number of seconds that $dde will wait for a reply. 49.Extended $strip(text,burc) where burc specifies the codes you want stripped from text. 50.Added $isid identifier, returns $true if an alias was called as an identifier, otherwise $false. 51.Added "ignore file types" option in DCC Options dialog which ignores any DCC Sends which match the specified filenames/types. 52.Right-clicking on a window titlebar now rolls-it-up, and unrolls it alternately. 53.Extended /loadbuf and /filter to work with custom dialog controls. /loadbuf -o [dialog id] <filename> /filter -io [dialog id] [dialog id] <matchtext> Where -i indicates that the input is a dialog and -o indicates the ouput is a dialog. 54.Fixed $ignore(address) bug. 55.Added $replacecs() and $removecs() for case-sensitive versions of these identifiers. 56.Added on PLAYEND event, triggers when a /play has finished playing all queued files. 57.Now allows you to specify up to 9999 for the max number of users in the list channels dialog. 58.Can now use $snick(#channel) without the N parameter to return the list of all selected nicks on #channel. 59.The channels list window popup menu now allows you to stop listing channels in mid-list when on DALnet servers. 60./unset <wildcard> now displays only the number of vars unset. 61./auser and /guser now allow you to specify information which is stored after the users level:address in the user list. /auser [-a] <levels> <nick|address> [info] /guser [-a] <levels> <nick> [type] [info] You can also use the /iuser command to set/remove info: /iuser <nick|address> [info] Also added new .info property to $ulist() to access this line. 62.Can now use /dialog command from inside a remote script event. 63.If you run mIRC while not connected, and the connect dialog pops up, if the local ip resolves to 127.0.0.1 mIRC will re-lookup the address once connected to the server. 64.Can now specify -1 for the [numbytes] parameter in /bwrite to write the whole of &binvar to the file. 65.Added new "Lock" section in Options dialog, allows you to lock mIRC, disable various features, etc. If you hold down the Control key when you minimize mIRC, it will ask you for the password when you try to restore the window. If you try to Control-minimize with no password set, it asks for a temporary password. 66.Added DLL support, allows you to send and receive info from a DLL designed to work with mIRC. /dll <name.dll> <procname> [data] $dll(name.dll, procname, data) These open the named DLL, call the procedure in the DLL, and send it the specified data. The procedure in the DLL being called must be of the form: int FAR PASCAL *procname(HWND mWnd, HWND aWnd, char far *data, char far *parms, BOOL show, BOOL nopause) mWnd is the handle to the main mIRC window. aWnd is the handle of the window in which the command is being issued, this might not be the currently active window if the command is being called by a remote script. data is the information that you wish to send to the DLL. On return, the DLL can fill this variable with the command it wants mIRC to perform if any. parms is filled by the DLL on return with parameters that it wants mIRC to use when performing the command that it returns in the data variable. The data and parms variables can each hold 900 chars maximum. show is FALSE if the . prefix was specified to make the command quiet, or TRUE otherwise. nopause is TRUE if mIRC is in a critical routine and the DLL must not do anything that pauses processing in mIRC, eg. the DLL should not pop up a dialog. Otherwise nopause is FALSE. The DLL can return an integer to indicate what it wants mIRC to do: 0 means that mIRC should /halt processing 1 means that mIRC should continue processing 2 means that it has filled the data variable with a command which it wants mIRC to perform, and has filled parms with the parameters to use, if any, when performing the command. 3 means that the DLL has filled the data variable with the result that $dll() as an identifier should return. The 32bit mIRC can only call 32bit DLLs, and the 16bit mIRC can only call 16bit DLLs. 67.Added event on RAWMODE, triggers when mode change is made on one or more users on a channel, you can use $1- to parse the raw mode change yourself. on 1:RAWMODE:#mirc:/echo $nick set $chan mode to $1- Also added $mode(N).op/deop/ban/unban/voice/devoice/help/dehelp which can be used in mode change events to list the nicks affected by the mode change. eg. $mode(0).op returns the number of opped nicks $mode(1).op lists first opped nick Added $modefirst and $modelast identifiers, return $true or $false depending on whether the event is the first or last to trigger. 68.Custom identifiers now pass parameters separated by commas correctly, ie. $test(a, b c, d) will result in $1 = a, $2 = b c, $3 = d Also added /tokenize <C> <text> command, this fills $1 $2... $N identifiers with tokens separated by character C in text, eg. if you used /tokenize 32 $1- in the above $test(a, b c, d) example, this would make $1 = a, $2 = b, $3 = c, $4 = d. 69.Fixed bug in $read returning $null for lines containing only one character. 70.Fixed /sockread -f bug when used with %vars. 71.Trailing menu separators are now removed from menus. 72.Changed /flash method, displays flash message longer, also added /flash -rN switch, repeats flash only N times. 73.Fixed bug relating to query windows desktop/mdi mode. 74.Fixed popup menu separator bug. 75.Extended $right()/$left(), you can now specify a negative value to return all but N characters. 76.Added /echo -l switch, applies the "highlight" settings in the options dialog to the line that's displayed. 77.Improved message highlight feature in options dialog, now allows individual highlight matches each with its own settings. For match words you can now specify a word, an identifier or variable, or wildcard text. 78.Fixed $snick() returning $null when N = 0 in some cases. 79.Increased custom dialog controls maximum from 250 to 500. 80.Added $did() .visible and .enabled properties, return $true or $false. 81.Added /dialog -v switch, makes dialog the active window. 82.Fixed error reporting bug for invalid dialog tables. 83.Added $menu identifier, returns menu name, eg. menu nicklist,channel { $iif($menu == nicklist,...):{} $iif($menu == channel,...):{} } 84.Extended $deltok(text,N,C), can now specify N1-N2 a range of tokens to delete. 85.Added /query -n switch to open query window minimized. 86.Word completion with Tab Key now works for: 1) nickname in a query window, 2) nicknames in notify list when in status window, and 3) #channel names in your channels folder when in any window. 87.Hotlink now won't display hand over an address that contains ! character. 88.Added $auto $ignore $protect identifiers, return $true or $false if /auto /ignore /protect is on or off. 89.Added $abook(nick,N) identifier, with properties, .nick .info .email .website .picture .noteN to return address book info. Allowed formats $abook(nick) $abook(N) $abook(nick,N) where nick can also be a wildcard. 90.Extended /filter command, format is now: /filter [-sgdfwxnprcteu] [n-n2] [C S] <infile> <outfile> <matchtext> -c = clear output window/file before writing results to it -t = sort output based on column C using character S as the columns separator, -e = descending, -u = numeric sort. Also, if the input and output are the same window/file, mIRC will process the request correctly. 91.Toggling desktop/mdi window now keeps editbox contents. 92.Added $disk(C) .type .free .label, you can test if a hard-disk exists or is accessible with $disk(C), returns $true/$false. 93.Fixed DCC Send freezing bug. 94.If the switchbar "sort tabs" switch is on, dcc sends/gets are sorted in the order in which they were started. 95.Added support for !channels for IRCnet. mIRC only enables this on IRC servers with >= 2.10 in server numeric 004. Note, important consequence: when mIRC is on IRCnet >= 2.10, it internally recognizes ! as a channel prefix. This may results in script/etc. problems where ! is used to identify a fileserver session. 96.Added support for IRCX %#channels, and for owner .nicks in channel nick listbox, as well as /mode +q. mIRC also does /listx on IRCX servers by default now and reads numerics 811, 812, 816, and 817 for the channels list. mIRC recognizes IRCX servers by seeing a >= 5.5 in the server numeric 004. Note, important consequence: when mIRC is on IRCX >= 5.5, it internally recognizes % as a channel prefix. Since % is used as a variable prefix in scripts/aliases/etc. in mIRC, this may result in script/etc. problems. 97.Now shows "you're not channel operator" server message in channel window. 98.Can now use $(vars/identifiers) in remote event match sections to evaluate any combination of vars/identifiers/text, eg. on 1:TEXT:$(*hello $me $+ *):?:echo hello back! 99.Added support for local variables by using the /var command: var %x = 1, %y, %z = $me Local variables can only be used in the alias in which they were created and are destroyed when the alias terminates. 100.You can no longer unset a variable by using /set with no value, you must use /unset. 101.Fixed /nick gpf bug when specifying very long nicknames. 102.Extended /bset command: /bset -t <&binvar> <bytepos> <asciivalue> [<asciivalue> ...] The -t switch indicates that it should treat the values as plain text and copy them directly into the &binvar. Also added N2 range parameter to $bvar(&binvar,N[-N2]), and a .text property which returns plain text up to the first zero character. Also added /breplace command: /breplace <&binvar> <oldvalue> <newvalue> [<oldvalue> ...] 103.Fixed $mask() ip address related bug. 104.Added option in General dialog, right-clicking mouse button on a line in a listbox can now auto-select it. 105.Added Merge button in logging dialog, merges log files based on the file date. 106.$notify(nick) now returns Nth position in the notify list. 107.Can now force a permanent scrollbar in a custom dialog listbox by using "vsbar" property. 108.Fixed /sound not being time-stamped, as well as a few other commands. 109.Fixed /write -d bug, was deleting empty lines. 110.When specifying the -swl switches in /write and $read, the text or number can be specified in the next parameter, doesn't need to be appended to the switch. eg. $read -l 5 filename, or /write -w *wildcard* filename text