06/11/2024 - mIRC v7.78 Changes: 1.Fixed SCRAM intermittent authentication bug. 2.Changed SCRAM nonce generation method to comply with RFC. 3.Fixed Aero theme helper windows startup flicker on Windows 11. 4.Added timestamp prefix to scripting error messages. 5.Added Windows taskbar support for DCC Send/Get desktop windows taskbar button progress bar. 6.Added /window -qS:P switch that sets the S state and P percent of the progress bar for a custom @window, where S = 0 disabled, 1 = in progress, 2 = success, 3 = error. 7.Added $window().pbstate/pbpercent properties to return the custom @window progress bar state. 8.Changed "Hide away reminders" option to apply to all contexts. 9.Added /write and $read() support for -WR switches where the line read from a file is treated as the wildcard/regex. 10.Added support for loading SVG files using the LunaSVG v3.0.1 library. 11.Extended /langdll -d compare method to highlight changes in dialog/control/string style/size/position/format along with keywords (prefixed by "Error:") to make spotting issues easier. 12.Extended Find dialog in windows so that if the editbox has the focus and you press Shift+Enter, it searches forwards. 13.Extended Find dialog in windows to vertically center found text and to highlight the line. 14.Fixed server list parsing gpf bug that was causing a random crash on startup/while running. 15.Fixed $regml() bug relating to /F and empty groups. 16.Added /findtext -hc switches to show/clear highlight. 17.Fixed flickering menubar bug. 18.Updated various resources strings to improve support for translations. 19.Updated TagLib library to v2.0.2. 20.Changed Enable Sounds option in Options/Sounds dialog so that it frees use of the sound card to allow device changes. 21.Updated OpenSSL library to v3.0.15. 22.Changed how URLs list displays unmarked items. 23.Updated LibZip library to v1.11.2. 24.Updated CA root certificates cacert.pem file. 11/06/2024 - mIRC v7.77 Changes: 1.Fixed $urlget() support for percent-encoded username:password format. 2.Fixed treebar spacing when switching back and forth between different icon sizes. 3.Fixed $base() floating point conversion bug. 4.Added $encode()/$decode() 'x' switch that percent-encodes/decodes all characters except "unreserved" as defined in RFC3986. 5.Fixed Scripts Editor find/replace bug where first found item was not being replaced. 6.Added Check for Updates support for downloading/installing an update directly. 7.Fixed auto-op/voice/protect being incorrectly triggered when you don't have ops. 8.Extended $samepath() to handle more contexts, such as subst drives and network prefixes. 9.Changed Scripts Editor find/replace dialog behaviour to wrap both forward and backward when a search ends. 10.Added Scripts Editor find/replace dialog "Count" option to display number of found/replaced matches. 11.Added /markasread [name] that marks the specified window name as read. If no name is specified, all windows on a server connection are marked as read. The $markasread identifier returns the number of windows on a server that are currently unread. 12.Added Scripts Editor find/replace dialog support for escape key to stop a long search. 13.Added Scripts Editor find/replace dialog support for remembering dialog position after restarting mIRC. 14.Fixed $input() dialog not accepting escape key to close dialog if only ok button is displayed. 15.Fixed editbox eye icon focus bug when switching to another control. 16.Changed Find dialog in status/channel/query windows so that it will re-open in the active window if Control+F is pressed while open in another window. 17.Fixed MDI window titlebar colors not being set correctly when desktop/mdi windows are active/inactive. 18.Changed Scripts Editor Find/Replace dialog to modeless, allowing you to scroll/edit in the editbox while the dialog is open. 19.Fixed Shift+Tab to show nick list keyboard shortcut not working in windows without editboxes. 20.Fixed List Channels dialog not enabling/disabling List button when the active server connects/disconnects. 21.Updated OpenSSL library to v3.0.14. 22.Updated zlib library to v1.3.1. 23.Fixed $input() icon/text positioning on different DPI displays. 24.Added email/userid support for IRCX mask \ character. 25.Added MDI window/menubar icon sizes for different DPI displays. 26.Added alternative method for opening help files that gets around the Windows CHM locked files issue. 27.Added support for loading translated resources from external language DLLs found in the "languages" folder. All dialogs were redesigned to support longer language text. A language option has been added to the Options/Display dialog that displays the language name, code, and DLL name. The internal default is English (en-US). The language setting is saved to mirc.ini in the [language] section. mIRC also suports a /langdll command and a $langdll identifier that returns the currently loaded language dll. See the languages page on the mIRC website for details. 28.Fixed $window().title not returning correct title text for DCC Send/Get windows. 29.Added $window().fulltitle that returns the full titlebar text. 30.Fixed manifest file being included twice in resources. 31.Changed Treebar DCC Send/Get to show progress bar below text like the switchbar. 32.Updated CA root certificates cacert.pem file. 33.Changed hyperlinks in dialogs to use standard "SysLink" controls that can handle tab/focus. 34.Changed custom links in custom dialogs to handle tab/focus. 35.Fixed $mid() maximum length limit to match $maxlenl. 36.Updated TagLib library to v2.0.1. 37.Added /dns -mn [name server] switches, where the -n switch specifies the name server address to use and -m requests A, AAAA, NS, MX, SOA, SRV, TXT records if available. These can be read using $dns(T,N) where T is the record name or * for all items. 38.Added server login support for SCRAM-SHA-224/384/512 authentication. 39.Fixed while/if script parser single-line break bug. 40.Fixed $zip() CRC check error for zero-byte files. 41.Optimized Aero theme support. 07/01/2024 - mIRC v7.76 Changes: 1.Fixed perform dialog bug when adding/switching between multiple items. 2.Extended .ogg support to work with other codec libraries. 3.Fixed MDI background picture not using the transparency color when loading gifs/pngs. 4.Fixed /toolbar -p bug that was not freeing the previously loaded icon when replacing a button. 5.Fixed Aero theme bug that displayed inner border artifacts in some contexts when a window is first created. 6.Now using Visual Studio 2017 to compile mIRC. Required converting all solutions, including all external libraries, and recompiling with the v141_xp toolset to maintain Windows XP support. 7.Fixed custom dialog mnemonics bug in tab controls. 8.Fixed $sslversion/$ssldll version bug. 9.Updated OpenSSL library to v3.0.12. 10.Improved $base() floating point conversion. 11.Enabled Control Flow Guard runtime security checks. 12.Added support for loading SVG resources for internal use. 13.Added 20/24 pixel icon sizes for all icons used in the GUI. The Options/Display dialog now allows you to select between small, medium, and large icons to be used in the toolbar, switchbar, and treebar, for use with higher resolution monitors. 14.Changed /font to update switchbar, treebar, and scripts editor fonts immediately. 15.Changed /font -z to preserve switchbar font in the same way as with the treebar and scripts editor fonts. 16.Changed $decode() to handle invalid input in a more consistent way for all decoding methods. 17.Updated LibZip library to v1.10.1. 18.Fixed switchbar vertical scrollbar buttons not being visible on Windows 11. 19.Fixed typing notifications bug when typing in editbox in parted/kicked channel windows. 20.Fixed $scriptdir bug in popup menus. 21.Added tab completion suffix option to Keys dialog. 22.Fixed $wrap() control code wrapping bug. 23.Fixed notify list MONITOR event parsing to handle events without hostnames. 24.Fixed Favorites dialog slow update when displaying a long list of channels. 25.Fixed numeric 324 bug when parsing date range. 26.Updated CA root certificates cacert.pem file. 27.Added $urlget() 'e' switch that, on a failed download, eg. due to a 404 error, will save the server reply to the &binvar/file, requiring the script to handle the error itself. 28.Fixed custom dialog icon using wrong icon size from .ico file containing multiple icons. 29.Changed tray icon transparency/color when flashing to make it clearer with different taskbar colors. 26/08/2023 - mIRC v7.75 Changes: 1.Fixed SSL certificate verification not loading Windows certificate store if the trusted authorities file is not specified. 2.Added channels file location to mirc.ini [files] section to enable per mirc.ini name/location of favorites. 3.Fixed identifiers that output to %var/&binvar not correctly handling invalid %var/&binvar names that contain spaces. 4.Updated OpenSSL library to v3.0.10. 5.Updated LibZip library to v1.10.0. 6.Updated TagLib library to v1.13.1. 7.Fixed arrange icons bug that caused mIRC to crash for some users. 8.Fixed clear history on close bug that was not clearing non-marked items in URLs list on exit. 9.Changed how windows are minimized under Wine by removing no longer needed Wine-specific fixes. 10.Added loading of custom fonts on startup from "fonts" folder if it is found in the main mIRC folder. 11.Fixed status window server address not being displayed in connect dialog if it does not already exist in the servers list. 12.Updated list of servers in servers.ini file. 13.Added SSL cipher directive @LEGACY to enable connections to unpatched servers reporting "legacy sigalg disallowed" error. Servers needing this may also need cipher directive @SECLEVEL=0. 14.Fixed editbox eye icon display bug on Wine. 15.Updated CA root certificates cacert.pem file. 02/08/2023 - mIRC v7.74 1.Changed arrange icons feature to place iconified windows beneath open windows. 2.Added tray tip warning on startup if mIRC has been minimized to the system tray but Windows has hidden its icon. 3.Fixed add/edit server dialog bug with comma-separated port numbers. 4.Fixed /drawpic -v initialization bug. 5.Fixed Do Not Disturb option hiding windows in some contexts, such as when manually changing a window's desktop state. 6.Fixed Scripts Editor line number display not being redrawn correctly in some contexts. 7.Added support for custom-drawn menubar on Windows 10/11. 8.Fixed View Menubar option bug when in full screen mode. 9.Changed how SSL connections load the trusted authorites file to get around the much slower speed of SSL_CTX_load_verify_locations() in OpenSSL v3.x.x. 10.Added clear history on close option that clears history when mIRC is closed. 11.Added per server option to connect/minimize on startup. 12.Changed MONITOR to take priority if a server has both MONITOR and WATCH tokens listed in numeric 005. 13.Added support for IRCv3 extended-monitor tag. This adds $notify() properties .account, .away, .awaymsg, and .gecos. These, and .addr, are updated when these events are received. If a nick is on a channel that you are on, these events also update the IAL. 14.Extended $notify() to support second parameter, switches 'n' and 'f', to list either online or offline nicks. 15.Added support for IRCv3 typing client tag. When typing in a query or channel window, mIRC can now send typing notifications to let other users know that you are typing. mIRC can also receive typing notifications from other users and will display a typing indicator in the query and channel titlebars. This feature can be turned on or off in the IRC/Options dialog. 16.Fixed Connect dialog bug when no nickname is specified and the connect button is pressed. 18/06/2023 - mIRC v7.73 Changes: 1.Fixed $bvar() gpf bug with negative ranges. 2.Changed bitwise identifiers in bigfloat mode so that, by default, they work in the same way as in non-bigfloat mode, for backward compatibility. To make them handle larger values, you can now specify a bit size parameter. 3.Fixed channels list not showing non-text prefixed channel names. 4.Changed how the keep channels open settings in IRC options work so that they apply in different numeric events as well. 5.Fixed $modinv()/$powmod() gpf bug relating to large values. 6.Updated CA root certificates cacert.pem file. 7.Fixed /debug custom command not working with local aliases. 8.Fixed custom dialog icon not handling spaces in quotes. 9.Fixed /cnick auto-color as * parameter bug. 10.Removed tray tip warning on startup due latest version of Windows 11 no longer supporting this. 11.Updated OpenSSL library to v3.0.9. 12.Optimized $bvar(&binvar,N,M) to use faster method. 13.Extended SASL authentication to support IRCv3 >=400 byte base64 chunks. 14.Added /drawsave -v[pgj] switch to save bitmap to &binvar in different formats. Note that the -b switch converts the bitmap before saving in all contexts now. 15.Extended $scon()/$scid() to support -1 for active connection. 16.Extended $unsafe() to allow $null values. 17.Added $encode()/$decode() 'v' switch to support Z85 encoding. 18.Changed Find dialog in Scripts Editor to work in the same way as most applications. Added case sensitive and whole word match options. 19.Changed $hfind() with 0 index and /halt to return count. 20.Added /drawsave -du switches, where -d dithers and -u quantizes, for use with the -b switch. 21.Added /drawpic -v switch that loads a picture from a &binvar instead of a filename. 22.Fixed editbox eye icon password display bug. 23.Fixed while/if script parser bugs. 24.Fixed $urlget() only sending &binvar body data up to the first NULL value. 25.Fixed $input() with 'u' option not using active window in some contexts. 26.Fixed $wrap() not preserving some combinations of control codes across wrapped lines. 27.Added support for IRCv3 standard-replies capability. 28.Changed nick colors and hilight dialogs to use the background colors set in the colors dialog. 29.Added $input() 'x' switch that opens dialog on desktop. 30.Fixed $biton() handling of no bitmask parameter. 31.Added /copy -p switch to preserve access/creation/modified timestamps. 32.Fixed while loop break error message bug. 33.Fixed $input() buffered key presses handling bug. 34.Changed /returnex to work as expected for general use. 35.Fixed scripts editor cursor position being set incorrectly when window is minimized/restored. 36.Fixed Do Not Disturb bug that caused mIRC to crash/freeze when minimized to tray. 37.Added $dialog().mapw/maph to return mapped pixel measurements. 38.Extended numerics 338 and 344 to handle different ircd formats. 39.Changed /set & to use unsigned 32-bit integers to match /if & behaviour. 27/11/2022 - mIRC v7.72 Changes: 1.Changed /nick, /mnick, /anick, to override /server -i local settings when not connected to a server. 2.Changed $wrap() to allow an empty switch parameter. 3.Fixed script parser bug when handling non-while/if { } brackets. 4.Fixed /var parsing bug in single-line scripts split across multiple lines using combinations of {} and |. 5.Fixed nested single-line if/while bug. 6.Fixed scripts editor not allowing multiple empty alias files. 7.Fixed scripts editor Listen and View menu bugs when in the users or variables sections. 8.Updated zlib library to v1.2.13. 9.Added support for big float calculations using MAPM library. This can be enabled with the command /bigfloat [on|off] for the whole script or by using a %var.bf variable name to enable it for a command/identifier. The $bigfloat identifier can be used to check the current bigfloat state. 10.Extended $base() to handle big numbers. 11.Fixed !. command prefixes used infront of while/if commands affecting following command. 12.Added identifiers $cbrt(N), $log2(N), $powmod(B,E,M), $modinv(B,M), $gcd(N,...), and $lcm(N,...) for cuberoot, log2, modular exponentiation and inverse, greatest common divisor, and least common multiple. 13.Changed confirm paste in a single line editbox to only warn if the line contains CRLF characters. 14.Fixed $fullscreen not working correctly if certain windows, such as OSD caps/numlock-type windows, are present. 15.Fixed script popup menu in menubar not working in fullscreen mode. 16.Updated OpenSSL library to v1.1.1s. 17.Changed $encode()/$decode() to support longer key and to report an error if key is longer than maximum allowed length. 18.Changed $base() to allow longer padding. 19.Changed $totp()/$htop() parameter validation to 40/64/128/256 for hex, 16/26/32 for base32, extended timestep maximum to 48 hours, and increased max digits to 10. 20.Fixed $totp()/$htop() hex key UTF-8 conversion bug. 21.Changed how $bfind().regex matches against a &binvar. 22.Updated code signing certificate. 23.Updated CA root certificates cacert.pem file. 24.Updated TagLib library to v1.13. 01/10/2022 - mIRC v7.71 Changes: 1.Changed the way Windows system libraries are loaded to prevent DLL hijacking. 2.Added extra format check to channels.ini [recent] items to split at commas in case of invalid format. 3.Added tray tip warning on startup if mIRC has been minimized to the system tray but Windows has hidden its icon. 4.Added /socklisten and /sockaccept -n switch to disable Nagle algorithm on a socket. 5.Fixed /socklisten -pu with UPnP, IPv6 address, and dual stack not opening an IPv4 UPnP port on the router. 6.Added /drawsave -a [x y w h] switch to allow specifying area of bitmap to save. 7.Fixed Aero theme bug where if /window +b was used, a miniature titlebar was being drawn. 8.Added $sock().upnp that returns $true/$false for the socket. 9.Fixed IPv6 addresses in server list not being saved correctly. 10.Fixed colons being stripped out of nick, alternative nick, user, emails, /nick, and server list entries. 11.Changed "set as default" option in font dialog so that it is checked by default when disabled for some types of windows. 12.Extended $mouse.key to detect different combinations of left/right key presses. 13.Fixed Highlight/Flash message times option location. 14.Changed how $os properties are handled to maintain backward compatibility with existing scripts. 15.Fixed nested single-line while loop break bug. 16.Fixed alternative nick bug when left empty in connect dialog. 17.Fixed scripts editor file change monitor dialog appearing over certain dialogs. 18.Fixed scripts editor file change monitor not detecting changes to INI files. 19.Reverted change to /echo to only accept integers as color parameter for backward compatibility. 20.Fixed /hsave -i intermittent crash bug caused by a data race / race condition across multiple threads. 21.Changed CTCP PING to not reply to text containing CTCP control codes to mitigate NAT-AGAIN Linux kernel NAT bug (CVE-2022-2663). 22.Fixed $zip() unzipped files not having same timestamp as files in the zip. 23.Added $zip().mtime to return timestamp for files in the zip. 24.Added $window().fullscreen that returns $true/$false. 25.Fixed tab key evaluation of identifiers in editboxes that contain multiple CR/LF-delimited lines. 26.Fixed /server with network name + parameters not over-riding global and local defaults. 27.Fixed Scripts Editor View More dialog bug when active tab is set to users or variables. 28.Updated CA root certificates cacert.pem file. 18/07/2022 - mIRC v7.69 Changes: 1.Changed servers list in connect dialog to always group servers with the same group name together. 2.Changed location of channels favorites to channels.ini file. This will allow users to update/edit this file without having to modify their mirc.ini settings file. If [chanfolder] or [chanhist] exist in mirc.ini when mIRC starts up, they will be automatically moved to [channels] and [recent] in channels.ini. 3.Changed how the Windows media library is loaded to enable sounds to be played without delay. 4.Extended $mouse.key to support detecting right-shift/control/menu keys and capital/scroll/numlock. 5.Added /bset -z switch that makes an empty &binvar or zeros an existing &binvar. 6.Changed regex parser to use less stack memory during recursion. 7.Added $keylparam identifier to on KEYUP/KEYDOWN that returns the result of the lParam value in the event. 8.Added support for numeric 005 UTF8ONLY token. If enabled on a server, this overrides the UTF-8 setting in Options/IRC/Messages to always UTF-8 encode/decode messages on a connection. 9.Added support for IRCv3 echo-message. Current implemention tracks outgoing messages, filters echoed messages, and grays displayed messages until the server confirms they have been received by the target, for both PRIVMSG/NOTICE and nicks/channels. 10.Changed CAP request on connect to combine multiple tokens in one line to speed up server reply. 11.Added $mircpid identifier that returns mIRC's process id. 12.Fixed nested while loops continue bug. 13.Changed how nick event is handled on connect to get around ZNC initial nick change affecting query window with same nick. 14.Fix alignment of checkboxes in Address Book dialog. 15.Fixed /sound CTCP event not displaying message if filename is "" empty. 16.Updated OpenSSL library to v1.1.1q. 17.Updated CA root certificates cacert.pem file. 18.Updated zlib library to v1.2.12. 19.Updated TagLib library to latest fixes. 20.Added $codepage(N) to return available codepages, with properties name, desc, id. 21.Added on PARSELINE identifier $parseem, returns $true or $false depending on whether mIRC thinks the incoming line is an echoed message due to IRCv3 echo-message being enabled. 22.Fixed options dialog not freeing memory when closed in some situations. 23.Fixed cue text in editboxes, such as (optional) in the Name editbox in the Connect dialog, not being set correctly in some contexts. 24.Added per server options for SSL certificate, logon settings, and server encoding. 25.Added /server command support for -key, -i, and -encoding, as well as -keytype global/local and -itype global/local. 26.Added $server() properties: keytype, key, itype, nick, anick, user, email, encoding. 27.Fixed Aero theme colors under Windows 11 22H2. 28.Fixed left-most tab in tabbed windows, eg. Scripts editor, Address book, etc. not being drawn correctly. 29.Extended $server(N) where N = -1 to return values for active status window. 30.Added SSL private key warning message on connect if key is not valid or will expire soon. 31.Added support for Alt+A/E in Connect dialog for quick access to server add/edit dialogs. 32.Added support for IRCv3 005 numeric BOT=b mode token. The assigned mode letter is stored and if it is later found in a /who reply, it sets the user's $ial().bot property. 33.Extended /server to support -p -g -w -d when not using -ars. 34.Fixed $comval() not freeing memory correctly. 35.Updated LibZip library to v1.9.2. 36.Added support for WATCH list numeric 609 that is meant to do the same thing as 604 but with an away reason. Also added checks for WATCH away numerics 597, 598, 599, which are now hidden but still trigger scripts. 37.Added support for handling PRIVMSG/NOTICE events that use source/ target combinations that are not normally sent by an IRC server. These still trigger the on OPEN/TEXT/ACTION/NOTICE/SNOTICE/CTCP events but set $nonstdmsg to $true. 38.Changed display of CAP events to hide NEW/DEL events sent by the server. 02/04/2022 - mIRC v7.68 Changes: 1.Updated LibZip library to v1.8.0. 2.Fixed treebar icons not being updated immediately in some situations. 3.Fixed /did -a not scrolling to added line when editbox is not visible. 4.Fixed /raw PRIVMSG not correctly appending specified @labels to outgoing messages. 5.Fixed /window -d desktop windows being minimized when opened in the context of a custom dialog. 6.Changed $bytes() to round using more significant digits and added petabytes support with 'p' switch. 7.Extended $os identifier to detect Windows 11. 8.Fixed nested while loops break/continue bug. 9.Added /sockopen -sdap switches to use with -e SSL switch, where: -s = skip invalid certificates -w = display warning dialog -a = accept invalid certificates -p = prevent certificate caching 10.Added /writeini -z switch to write empty value. 11.Fixed channels list window display of modes to add ellipses if modes are too long for the column. 12.Added a /socklisten and /sockudp -u switch to enable dual stack sockets. Note that this will only work in some contexts and on some addresses and may depend on your version of Windows. 13.Updated CA root certificates cacert.pem file. 14.Updated OpenSSL library to v1.1.1n. 15.Changed right-click tray menu to not activate mIRC window if it is open on the desktop. 16.Added Do Not Disturb menu item to tray menu for quick access. 17.Changed Confirm Exit dialog to open near tray menu if Exit mIRC was selected in the tray menu. 18.Changed tray menu to open dialogs aligned to mIRC tray icon. 19.Added /server -d switch that allows setting the current status window's connection details without connecting. 20.Added support for strikethrough text using character 0x1E (30) as supported by other clients. You can use Control+E to insert this code into text. This also affects the strip codes option in the IRC/Messages dialog, adds an 'e' switch to /strip and $strip(), and affects many other features that parse control codes. 21.Added $sslhash(method,type) where method = md5, sha1, sha256, sha512 and type = p for private and s for server. Properties: .babble and .colons. $sslcertsha1 and $sslcertsha256 are still supported for backward compatibility. 22.Added key type option to SSL certificate generator. 23.Added Copy To Clipboard menu item to System Menu Buffer menu. 24.Extended Order dialog in Scripts Editor to include Top and Bottom buttons and to be resizable. 25.Extended More dialog in Scripts Editor to be resizable. 26.Added /topic -r switch to remove channel topic. 27.Updated list of default channels. 28.Fixed /writeini caching bug for item names that contain equal sign characters. 29.Fixed /writeini issue with ;comment equal sign separator. 30.Changed /writeini to prevent writing identical consecutive comments. 31.Added $crc64() identifier and changed $crc() to use slightly faster implementation with same output. 32.Added server login method options for ECDSA-NIST256P-CHALLENGE and SCRAM-SHA-256 authentications. 33.Removed List Channels dialog lock option as this has been superseded by the Lock feature in the Options dialog, and the hide non-text channels legacy option. 34.Added "Keep channels open on part" option to Options/IRC dialog. If you part a channel and its window is kept open, it will not be rejoined on connect. 35.Extended /join so that if it is typed in a channel window that has been parted/kicked, it will not require a channel parameter. 36.Changed tab key completion to place currently open channel windows at start of list. 37.Changed tab key completion to reset to start of list if non-tab key pressed. 38.Added ciphers list setting to Options/SSL dialog. 39.Added display of ECDSA compressed public key to SSL dialog to make it easier to use with nickserv if private key is ECDSA. 40.Extended $sslhash() to support "ecdsa" method to return compressed public key if private key is ECDSA. 41.Extended /server -l method to support "ecdsa" and "scram". 42.Changed SSL to allow private key/certificate PEM files that contain a private key without a certificate. 43.Fixed editbox home/end key bug under Windows XP. 44.Extended Favorites dialog to include a channel/network/description header that can be sorted by type, as well as a network listbox to show channel favorites for a particular network. On popping up on connect, it auto-selects the current network and shows favorite channels for that network. The favorites menu now also shows the network for each channel name and places channels for the current network at the top of the list. 45.Fixed listbox/listview/treeview active/inactive color of selected line in windows like the notify list, URLs list, Options and Servers listbox, favorites dialog, and so on. 46.Fixed $duration() with N=2 not working correctly in some cases. 47.Changed Channels List dialog layout/text to make its use clearer. 48.Added display of channels list file age to Channels List dialog. 49.Fixed spacebar keypress in URLs/Notify/etc. listboxes beeping when displaying a popup menu. 50.Changed channels list window right-click popup menu to use the same wording as other features. 51.Extended $os to have properties major, minor, build, platform, type, spmajor, spminor, suite. 52.Extended Log View dialog to include sort arrows in the column header and for the headers to be auto-resized to fit. 53.Extended Log View dialog to be resizable. 54.Fixed dialog initial sizing bug that can happen with resizable dialogs like the scripts, favorites, log view, etc. dialogs. 55.Added eye icon to password editboxes in the servers, favorites, lock, and other dialogs, to make editing text easier. 56.Fixed scrollbar thumbtrack button bug in custom dialog and @window listboxes with more than 65535 items. 57.Added /editbox -r switch to allow insertion of text that contains $cr and $lf characters. 58.Added $isnum(N,sd,I,J) where s = allow +/- sign, d = allow decimal, and range is between I and J. The switches and range parameters are optional. 59.Added exception for ChanServ network service name to avoid displaying the same notice in all common channels. 60.Fixed tiled/maximized MDI window duplicate icons bug. 61.Changed channels list to use network name instead of server address in titlebar and in channels list file. 62.Changed channels and links list windows to clear their contents on connect if they were showing results from a different network. 63.Added servers combobox to Connect dialog and removed separate servers dialog. 64.Fixed /echo printing text twice to same window in some contexts. 65.Fixed nick color list auto-color bug. 02/10/2021 - mIRC v7.67 Changes: 1.Fixed /fupdate not working correctly with up/down key presses in some contexts. 2.Fixed /window +f custom @window border display bug. 3.Fixed window menu hidden windows selection bug. 4.Fixed $wrap() default colors bug. 5.Changed Logs dialog view window to use the same on top setting as the main mIRC window. 6.Changed channels list window maximum channel name length. 7.Changed /channel to open channel central dialog immediately instead of waiting for ban list reply from server. 8.Updated CA root certificates cacert.pem file. 9.Fixed Aero theme helper windows occasionally becoming visible. 10.Fixed /window icon setting not applying to treebar/switchbar and MDI titlebar. 11.Fixed how /set/unset/inc/dec/timer/sockread %vars are evaluated in some contexts. 12.Updated DigiCert code-signing certificate. 13.Updated OpenSSL library to v1.1.1l. 14.Updated PCRE regex library to v8.45. 15.Fixed $sline() to return zero instead of $null when no items are selected. 16.Fixed channel nicklist default settings not being applied to currently open channel windows. 17.Fixed SSL certificate verify failed issue relating to expired certificates. 29/06/2021 - mIRC v7.66 Changes: 1.Added MDI area background color option to Colors dialog. 2.Changed the editbox line separator so that its color is now based on the color of the editbox, and the nickname list sizing bar so that its color is now based on the color of the listbox, so these should now match the user's chosen theme. 3.Changed /window -h to support hiding status windows in both the switchbar and the treebar. 4.Changed channel and query window icons to make them more distinctive. 5.Added colors dialog default/undo buttons. Default resets a built-in theme to its default settings. Undo reverts the current changes to when the dialog was opened. 6.Changed /server to prioritize group name over server address to handle server group names that contain periods. 7.Changed parsing of /mode commands that use combinations of +ovh so that number of modes/parameters are trimmed to equal number due to changes in how some ircds process these. 8.Optimized Windows 10 Aero theme support. 9.Fixed maximized MDI window duplicate icons bug. 10.Changed tab completion to leave in place non-existent/empty identifiers/variables, as with previous versions. 11.Fixed select folder bug incorrectly filling in filename as a *.* wildcard. 12.Updated CA root certificates cacert.pem file. 07/05/2021 - mIRC v7.65 Changes: 1.Added flash option to ignore dialog options. 2.Reverted change to nick idle time so that it is updated per second once again. 3.Updated some of the winsock error messages in resources to use more up-to-date descriptions. 4.Fixed regex global matching bug with UTF-8 characters. 5.The styles dialog has been removed. The channel nicklist sizing bar now uses a standard width. The editbox and nicklist borders now use standard Windows colors. Windows no longer use an internal frame. 6.Fixed tray tips Control+O display bug. 7.Updated OpenSSL library to v1.1.1k. 8.Updated TagLib library to v1.12. 9.Added Windows 10 Aero theme support to MDI windows. 10.Changed the aliases list menu to use shorter, combined a-z menus, with separators, and any left over items in a ? submenu. 11.Fixed URLs List SendTo menu item being disabled. 12.Fixed MDI tile feature not fitting the right/bottom-most windows to the edge of the MDI area. 13.Changed scripts editor alias and popup menubars to use an "Index" menu name to list aliases/popups. 14.Added scripts editor "Index" menu to remote menu bar that lists all of the items defined in a script. It also includes partial lines for some items to give context. 15.Added home/end/page up/down key support to popup menus to allow for faster scrolling in long menus. These keys normally do nothing in menus, however they will now scroll multiple lines per key press and will stop once they reach the top/bottom of the menu. 16.Updated CA root certificates cacert.pem file. 17.Extended tab completion to allow using just a channel mode prefix to begin cycling through all matching users with that mode. 18.Extended tab completion to support %halfops. If an existing %var name is used, it is evaluated as in past versions, if you are not currently cycling through %halfops. 19.Changed Window menu to not show windows hidden with /window -h unless shift key is pressed when viewing menu. 20.Changed /window -h to not hide Status Windows in treebar, switchbar, and window menu, as these are root windows for all other windows on that connection. 21.Fixed bind to adapter/IP address bug that caused it to use wrong adapter if adapter has two identically named IPv4 and IPv6 entries. 22.Fixed bind to adapter/IP address bug that caused it to block connections in some contexts. 23.Fixed DCC get sometimes reporting that the transfer completed when there was insufficient disk space to save the whole file. 24.Fixed scripts editor bug that caused incorrect indentation in saved files with certain combinations of comments and brackets. 11/12/2020 - mIRC v7.64 Changes: 1.Fixed /bcopy not copying zero length binary variables. 2.Fixed /timer -h multimedia timer bug that caused imprecise elapsed time measurement at low millisecond intervals. 3.Fixed $bfind() N parameter not being applied during a .regex search. 4.Fixed $min()/$max() parsing bug. 5.Extended the DLL LOADINFO structure to include a DWORD dBytes variable that specifies the maximum number of bytes allowed when writing to the data and parms strings. 6.Fixed /timer halted message not being displayed in some cases. 7.Fixed DDE server not being reset when DDE settings changed in the Options DDE dialog. 8.Fixed SSL private key error incorrectly being reported as an SSL certificate error in some contexts. 9.Fixed bind to adapter/IP address bug that prevented it from using adapters with dynamic IP addresses. 10.Changed $base() to remove limit on floating point precision for larger bases. 11.Fixed $base() not rounding fractions to current base. 12.Updated LibZip library to v1.7.3. 13.Changed $regml().pos so that if //u is not used for a unicode string, UTF-8 characters now return the position of the start of the character in the unicode string. 14.Added $regml().bytepos that returns the UTF-8 byte positions matched within a string. 15.Changed /setlayer to report an error if invalid parameters are used. 16.Fixed $bfind().regex issues related to UTF-8 parsing. 17.Added $ticksqpc that returns a high resolution tick count. 18.Changed isalpha/isalnum/isletter/islower/isupper/$lower()/$upper() to use consistent APIs. 19.Fixed $window().title returning incorrect results for some windows. 20.Changed Control+Break to be more responsive. 21.Updated installer to backup files into dated folders in the backups folder. Files that are in the root of the backups folder and that match known installed filenames are moved into their own dated folder. All unrecognized files and folders in the root of the backups folder are left as is, in case the user has been putting their own files or folders in there. The installer will keep the last ten dated backup folders and will delete older ones. 22.Changed workaround for Windows 10 MDI caption bug so that it is not applied during remote desktop sessions. 23.Fixed channel keys being saved incorrectly on Undernet ircds that use * for hidden keys. 24.Updated OpenSSL library to v1.1.1i. 25.Fixed on CHAR event not being triggered in custom @window editbox and listbox. 26.Updated CA root certificates cacert.pem file. 27.Changed how notices are displayed so that consecutive notices from the same user are now grouped together. 28.Added protocol-relative redirect support to $urlget(). 29.Changed $window().dw so that it now returns the printable width, which can vary depending on window type, as opposed to the client area. 30.Added $urlget() 'k' switch to prevent redirects. 31.Extended $width()/$height()/$wrap() to support parameter that sets the bold, italic, control code, and tab options, ie. $width(text,font,size,bipt) where each letter can be followed by an N value of 0 or 1 to enable or disable it. The $wrap() identifier also supports an option that enables word wrap, ie. $wrap(text, font, size, width, biptw, N). 32.Changed $wrap() so that the 'p' option, enabled by default, preserves control codes across wrapped lines. 33.Fixed $utfencode() memory gpf bug that caused intermittent crashes. 34.Extended tab character support to all windows. 35.Added /drawtext -d option to disable tab support, which has always been enabled by default. 36.Fixed /drawdot bug with certain dot sizes. 37.Added $min()/$max() .alpha/.alphacs/.alnum/.alnumcs properties. 38.Changed "Unable to join channel" message to include URL if one is specified in the numeric. 39.Optimized display speed of long lines of text. 40.Added $window().fontdialogsize property. 41.Changed "Nick Colors" idle time option to update less frequently. 42.Added Bind Adapter/IP Address option where, if the bind fails, mIRC can either try the system default bind or just block the connection, eg. when a VPN adapter is not available. 17/08/2020 - mIRC v7.63 Changes: 1.Fixed tray tip display bug that caused close box to be displayed incorrectly. 2.Updated OpenSSL library to v1.1.1g. 3.Added custom dialog group control left/right/center style. 4.Fixed Control+Break key gpf bug in Windows 7. 5.Extended $tempfn to work with folder names. 6.Extended $duration() to handle negative values. 7.Added /drawtext -v switch that allows use of a &binvar instead of text. 8.Added $tempfn(path) that allows specifying the file/folder path. 9.Fixed display of numeric 477 to show authenticate message on some networks. 29/07/2020 - mIRC v7.62 Changes: 1.Changed how on KEYUP/KEYDOWN are processed. This affects the values returned in $keyval and $keychar for combined key presses. 2.Reverted change to $cnick() so that it returns default values for non-existent nicks. 3.Changed how Control+Break key is handled so that it only works when mIRC is the active application. 4.Updated PCRE regex library to v8.44. 5.Updated LibZip library to v1.6.1. 6.Added $width() and $height() sixth $true/$false parameter to enable custom window-specific measurement. 7.Added support for irc hotlinks that uses the non-standard plus sign prefixed port number format, such as +6697. 8.Extended $bfind() to support regex searches using: $bfind(&binvar, N, M, [name]).regex Where M is a regular expression when .regex is used. The name parameter is the $regml() name. 9.Extended $regml()/$regmlex() to save result to a &binvar using: $regml([name], n, [&binvar]) $regmlex([name], m, n, [&binvar]) When saving to a &binvar, returns length of saved text. 10.Updated OpenSSL library to v1.1.1f. 11.Changed [ssl] certificate warning item name in mirc.ini to ensure one-time reset to a new default value. 12.Added CAP support for setname. This is automatically enabled if available and will cause the server to send the setname event to the client when users change their full name. Events are not shown but are triggered as RAW events. 13.Changed IRCv3 CAP support of draft/label and draft/labeled-response to label and labeled-response. ACK replies from the server are not shown but are triggered as RAW events. 14.Updated colors dialog, control+K dialog, and /color command to support color indexes 16 to 98. 15.Added $comval() .result property to support &binvar as a fourth parameter, same as $com(), to store one dimensional array results. If array is BSTR, it is stored using null bytes as separators. 16.Added on CHAR event that returns translated keyboard presses. Uses the same format as on KEYDOWN/KEYUP. 17.Fixed tray tip display bug with different DPI settings. 18.Fixed /hmake not allowing maximum prime value for table size during a hash table rename. 19.Fixed display of channel name in numeric 477 on some networks. 20.Fixed scripts editor rich editbox bug that may have caused font to be set incorrectly. 21.Added workaround for maximized MDI window caption bug in Windows 10 on monitors with some DPI/resolution combinations. 22.Fixed custom window treebar folder not staying open in some contexts. 23.Added $min()/$max() identifiers that return minimum/maximum of a list of values. Defaults to numbers. Properties: .text, .textcs, and .nick. If a single parameter is used, it is treated as a space- delimited list of values. If two or more parameters are used, each is treated as a separate value. 24.Added check for numeric 696 on ircds that report errors when mode requests include more modes than parameters. 25.Optimized processing of long strings in /commands, token identifiers, $calc(), $eval(), and identifier parameters. 26.Fixed "Mark As Read" menu item in treebar, switchbar, toolbar and MDI popup menus not resetting flash/hilight correctly. 27.Fixed CAP logon/authentication messages not being displayed if remotes are disabled. 28.Added highlight dialog item that allows you to specify the channels and/or nicks to which the highlight applies. 29.Added $highlight().chans property. 30.Added a "Do Not Disturb" option to the Tools menu that allows you to temporarily disable all visible/audible notifications such as sounds, tips, flashing window icons, tray icon animations, and more. 31.Added /donotdisturb [on|off] command and $donotdisturb identifier. 32.Fixed if/while parser not detecting some invalid bracket combinations. 33.Updated dialog titles for several features. Most dialog titles are now prefixed with "mIRC". Some dialog titles have also been changed to better describe their purpose. 34.Changed richedit editbox in windows, scripts editor, and custom dialogs so that it no longer beeps when cursor is moved beyond text range, like standard editboxes. 35.Fixed incoming server messages being truncated at 1024 bytes for servers that send messages longer than the standard 512 byte maximum. 36.Extended $maxlenl maximum internal string length to allow parsing of IRCv3 8191 byte message tag + message. 37.Fixed INI file caching bug with semi-colon prefixed comments. 38.Updated CA root certificates cacert.pem file. 01/03/2020 - mIRC v7.61 Changes: 1.Fixed custom toolbar buttons not being displayed correctly. 2.Fixed /if isnum backward compatibility issue due to recent change. 3.Fixed local host/ip addresses not being changeable while connected to a server. 4.Fixed bitmap memory bug in About dialog. 5.Fixed /cnick not updating nick color immediately when used with a full address. 08/02/2020 - mIRC v7.59 Changes: 1.Changed $disk().unc to use newer API. 2.Fixed channel mode parsing bug. 3.Added /cnick support for auto-color option by allowing * as color number. Also added $cnick().auto property. 4.Changed SSL default setting to "Skip connections with invalid certificates". This means that mIRC will, by default, not connect to SSL servers with invalid SSL certificates. 5.Fixed how nick!user@host addresses are formed in $ulist() and other features so that IPv6 addresses are handled correctly. 6.Changed toolbar display code to handle icons of different sizes for default internal icons. 7.Updated CA root certificates cacert.pem file. 8.Fixed treeview display bug when scrolling new item into view. 9.Changed treeview sorting method that affects favorites and servers dialogs. 10.Fixed favorites dialog join button not initiating a connection if not currently connected. 11.Fixed $cnick() returning default values for non-existent items. 12.Changed how log filenames are renamed to use group/network names during a connect/disconnect. 13.Changed quote "" parsing routines to use the same consistent method for all commands/identifiers. 14.Extended $fline((@name,text,N,T,S) to support S parameter for search start position and $flinen that returns match position. 15.Fixed custom dialog controls not being updated immediately when /did is used to change their contents. 16.Added /fseek -p switch that moves the file pointer backwards to the start of the current line. If the file pointer is already at the start of a line, it is moved to the start of the previous line. 17.Fixed $fread() not setting file pointer to start of next line if line is longer than the maximum line length. 18.Fixed /halt not stopping $hfind() search and then allowing script to continue running. 19.Changed how Port dialog bind adapter setting is saved in mirc.ini so that both name and address are saved to [ports] section. 20.Fixed $bindip() bug when used with dual-stack network interface. 21.Added $caller tabcomp value for tab completion. 22.Fixed /if & bit comparison not using unsigned 32-bit integers. 23.Changed identd dialog so that userid entry is not changed when "Use ID from email address" is checked. 24.Changed /if isnum to also support larger value as the first number. 25.Optimized file reading routines to improve processing speed for contexts that affect /fseek -l, $read(), $lines(), and /loadbuf. 26.Added /drawrot -p switch that clips the rotated rectangle. 27.Fixed $zip() creating zip files with temporary file attributes. 28.Updated the IRC FAQ that comes with mIRC and is in the Help section of the mIRC website. 29.Added support for the IRCv3 TAGMSG event. This event is not shown but triggers as a RAW event. 30.Changed the /help and /ircintro commands so that if the mirc.chm or ircintro.chm files cannot be found, they are instead opened on the mIRC website. 17/11/2019 - mIRC v7.58 Changes: 1.Fixed $+ not correctly reporting string too long errors. 2.Changed installer setting to make it DPI aware. 3.Changed $findfile() to preserve multiple spaces inside a wildcard parameter. 4.Fixed /reload interacting incorrectly with scripts editor when a new, unedited file is created. 5.Fixed $parms returning incorrect values in some contexts. 6.Fixed DCC trust user list bug that prevented autoget from working correctly for trusted users. 7.Optimized SendMessage() processing to use less memory. 8.Fixed SendMessage() gpf bug where recursive calls result in a stack overflow. 9.Updated several features to be DPI aware. 10.Fixed incorrect default location for alias, popup, and remote scripts when no files are present. 11.Fixed /exit -nr not restarting mIRC. 12.Added /run -a switch to request running as administrator. 13.Fixed scripts editor bug that was wrapping excessively long lines, resulting in script errors, instead of truncating them. 14.Fixed SendMesage() handling of negative indexes. 15.Fixed richedit control handling bug that may have caused some editbox-related code to behave incorrectly if the richedit control failed to load. 16.Fixed a number of issues identfied by CppCheck relating to range checking, memory initializations, optimizations, portability, and pointer dereferences. 17.Fixed script #group parsing bug for invalid group definitions. 18.Fixed $decode() gpf buf. 19.Updated more routines to use 32/64-bit compatible types as step in preparing for a 64bit version of mIRC. 20.Fixed text file writing bug that could have caused the UTF-8 BOM to be set incorrectly. 21.Fixed $url not working with newer versions of Chrome. 22.Changed /msg to no longer check for channel/nick prefixes due to some networks using identical prefixes for both. 23.Changed all &binvar supporting features to allow single character & as a binvar name for consistency. 24.Fixed $findfile() not freeing handles in some contexts. This also affected other features that retrieve file lists. 25.Fixed /ignore/protect/aop/avoice gpf bugs. 26.Fixed 64bit time calculations in several features. 27.Fixed memory HDC allocation error check in line marker. 28.Fixed $did().csel potential gpf bug when freeing memory. 29.Changed compiler settings to disable string pooling and enable whole program optimization. 30.Added /logview -nN switch to scroll view to line number. 31.Changed /play to improve handling of window/file names. 32.Updated OpenSSL library to v1.1.1d. 33.Added 421 numeric check for server disabled LIST command. 34.Changed server list and favorites list listboxes to use full line selection. 35.Updated channel mode parsing and display based on CHANMODES token. 36.Fixed /window -r not restoring a hidden non-min/max window. 37.Changed $ctime() to return $null for invalid input and to handle commas as separators. 38.Added support for IRCv3 message-tags token and msgid feature. 39.Fixed $N parameter bug that caused inconsistent handling of text appended to the $N parameter, such as text that contained numbers or dashes. 40.Fixed handling of channel nickname mode 'q' in some contexts. 41.Added $isadmin identifier that returns current elevation status. 42.Updated error handling for a number of APIs to use consistent methods across all features. 43.Updated CA root certificates cacert.pem file. 44.Added auto-color nickname option to nick color list. 45.Updated servers.ini list. Around forty networks now use valid SSL certficates. These networks are now listed with only port +6697 to ensure secure connections. 46.Changed SSL hostname validation method when matching against certificate CN and SAN. Multi-label wildcards are now allowed. 47.Added $sslcertvalid that returns $true/$false if the SSL certificate is valid or not for the current SSL connection. 48.Changed /dns to show all resolved IP addresses for a hostname, not just the first IP address. 49.Optimized $bfind().text search method. 50.Added $bfind().textcs property for case-sensitive search. 51.Optimized SSL support. 25/07/2019 - mIRC v7.57 Changes: 1.Updated OpenSSL library to v1.1.1c. 2.Changed OpenSSL support so that, by default, mIRC no longer checks for a newer external version of the OpenSSL library. This should resolve the R6034 Windows error reported by some users. 3.Changed /url, /run, and other features to use alternative method to open links to resolve issues with asynchronous window messages. 4.Fixed STS/SSL server/port parsing bug. 5.Fixed handling of 64bit timestamp value for several features. 6.Changed $crc() to use larger read buffer with files to improve speed. 7.Fixed script parser bug that caused binary variables to be unset in scripts that call external DLLS that SendMessage() mIRC many times. 06/07/2019 - mIRC v7.56 Changes: 1.Added $urlget() identifier that downloads content from http/https addresses. Returns id number. Calls alias with id number when transfer completes. $id = $urlget(url,hgpuadfbrtic,target,alias,headers,body) $urlget(N/id) used with properties: url, redirect, method, type, target, alias, id, state, size, resume, rcvd, time, reply url = http/https://user:pass@address:port/file?parameters options = hgpuad = head, get, post, put, patch, or delete fb = file or &binvar r = resume t = use .part file i = ignore SSL errors c = cancel target = file or &binvar alias = called on completion headers = &binvar body = &binvar 2.Fixed $regml().pos bug with multibyte characters. 3.Changed $dll() to require filename .dll extension. If filename does not have an extension, .dll is appended. 4.Updated OpenSSL library to v1.1.1b. Required code changes due to to changes in OpenSSL 1.1.x. Older OpenSSL versions are no longer supported. Compiled to work on XP. Dynamic loading of OpenSSL DLLs still supported as libcrypto-1_1.dll and libssl-1_1.dll. 5.Updated TagLib library to latest fixes. 6.Updated LibZip library to v1.5.2. 7.Reverted changes to $gmt(N) and $gmt(format). 8.Changed a number of features to use tick counts instead of system time for time measurement. 9.Fixed $astime() and other time/date features applying DST incorrectly in some situations. 10.Changed time/date features to use threadsafe versions of CRT time functions. 11.Changed $encode()/$decode() to allow non-literal keys longer than 56 characters. 12.Changed $encode()/$decode() to not allow salts/IVs that contain codepoints 256+. 13.Fixed "try next server in group" option being incorrectly applied in some situations. 14.Changed action message processing so that it is integrated into the privmsg routines. 15.Changed time/date routines to use Windows APIs, allowing extended date range 1601 to 9999. 16.Changed $encode()/$decode() to zero-pad salt strings shorter than eight bytes. 17.Changed /msg -switches support to enable backwards compatibility with BNCs that use - as an invalid nickname prefix, such as -sBNC and -psyBNC. 18.Changed DCC Folders dialog so that when a new item is added, it uses the default get path by default. 19.Fixed script error not showing line number for single-line event definitions. 20.Added /server [-key filename] to set private key file to use for an SSL connection. 21.Changed nickserv logon method to increase delay after last nickserv notice is received before triggering perform. 22.Changed status window connection state icons. Now show a green lock icon for a valid SSL connection and an orange icon for an SSL connection with an invalid certificate. 23.Fixed $com()/$comcall() not scanning the local alias/script file first for a matching command/identifier. 24.Updated PCRE regex library to v8.43. 25.Fixed $$ prefix not working for remote identifiers. 26.Fixed connect retry count and port number not changing when try next server in group option is not enabled. 27.Changed flashing tray icon feature so that icon is dimmed instead of hidden. 28.Changed $sha1/$sha256/$sha384/$sha512/$hmac() to use larger read buffer with files to improve speed. 08/02/2019 - mIRC v7.55 Changes: 1.Fixed /onotice and related commands not working correctly in some contexts. 2.Fixed Clear History log files option not deleting empty nested folders in logs folder. 3.Fixed $sha1()/$hmac() bug that caused &binvar data to be overwritten. 4.Added support for AES encrypted ZIP files using the LibZip library. $zip(file.zip,cetlpo,file|dir,password,N) Where the switches are: c = create, e = extract, t = test, l = list, p = password, o = overwrite existing file/dir. The N parameter is used with the list option, where 0 = return number of items, otherwise return Nth item, with properties: size. 5.Extended $rand() to allow negative number values. 6.Changed $rand() RNG algorithm to Bob Jenkins's JSF64. 7.Added $rands() identifier that returns a cryptographically secure random number using Microsoft's RtlGenRandom() API. 8.Changed all features that previously used the standard CRT rand() to use the new RNG algorithm. 9.Fixed $hfind() not reporting an error when the called alias returns an error. 10.Fixed $asctime() 'z' bug that returned whole numbers for timezones with 15/30/45 minute offsets. 11.Extended IRCv3 support for CAP NEW so that if a token is normally requested by mIRC on connect, it will be automatically requested on receipt of CAP NEW as well. 12.Fixed RCE vulnerability affecting all versions of mIRC (CVE-2019-6453). 13.Added $notify().sound2 property to return offline sound. 14.Updated CA root certificates cacert.pem file. 15.Fixed "Show nicks on join" option not working correctly. 21/12/2018 - mIRC v7.54 Changes: 1.Fixed scripts editor editbox horizontal scrollbar sensitivity. 2.Fixed /hadd -mN parsing bug. 3.Fixed $decode() parsing of N parameter when N = 0 to ensure that it always returns a line count of one. 4.Fixed API call that prevented mIRC from running on Windows XP. 5.Fixed /timer -p switch not counting down correctly when more than one repetition is specified. 6.Added /timer -P switch that pauses the count down for a timer. 7.Updated OpenSSL library to v1.0.2q. 8.Optimized while loop parameter parsing in scripts. 9.Fixed $hmac() bug when using sha384/sha512 with keys longer than 64 bytes. 10.Fixed /onotice and related commands not working in some contexts. 11.Fixed Log Files dialog sort by date column bug. 12.Updated CA root certificates cacert.pem file. 29/11/2018 - mIRC v7.53 Changes: 1.Added /set -g switch that makes /set change a global variable. 2.Added /unset -gl switches that make /unset change a global or local variable. 3.Changed udpate check/other features to avoid insecure SSL protocols in HTTP requests under Windows XP. 4.Changed all time-related features to use 64bit time values. 5.Fixed hotlink parsing of mailto: and similar. 6.Added hotlink parsing of xmpp:, teamspeak:, ssh:, and sftp:. 7.Extended /drawpic -o [N] to refer to frames in a GIF file. 8.Added /drawpic -f switch that works with -o to specify the Nth icon and the Mth frame in that icon by using /drawpic -of [N] [M]. 9.Extended $pic() to support properties .icons, .frames, .delay and to allow specifying N and M parameters. 10.Added voice selection to speech options. 11.Fixed $onpoly() not handling zero area polygons correctly. 12.Changed $onpoly()/$inpoly() implementations from regions to maths. 13.Updated PCRE regex library to v8.42. 14.Fixed script parser bug that caused mIRC to process Windows messages while a script was running. 15.Changed $encode() base32 to use 72 character chunks. 16.Fixed /ialfill not displaying channel name when fill completes. 17.Updated CA root certificates cacert.pem file. 18.Fixed $ctime() returning incorrect result at midnight before a new year begins. 19.Changed the way maximum server line lengths are applied to various commands and features. 20.Added /privmsg command. 21.Added support for CPRIVMSG and CNOTICE. If listed in numeric 005, PRIVMSG and NOTICE will be automatically upgraded for most outgoing messages if you are an op/voice on a channel and message a user on the same channel. 22.Added support for numeric 005 STATUSMSG=@+ and WALLVOICES and added commands /vmsg, /vnotice, and /wallvoices. If server does not support STATUSMSG, WALLCHOPS, or WALLVOICES, mIRC uses own method to send to multiple targets. 23.Changed line splitting method for long messages when: 1) Sending message through editbox of a channel/query window. 2) Using commands /ame /amsg /describe /me /msg /omsg /privmsg /qme /qmsg /query /sound /vmsg /wallchops. Note: when line splitting, the /sound command switches to an ACTION message for the second line onwards. Note: line splitting is not performed on NOTICEs, so is not applied to /notice /onotice /vnotice /wallvoices. 24.Changed multiple target handling in PRIVMSG and NOTICE so that if TARGMAX or MAXTARGETS are not specified in numeric 005, mIRC assumes the maximum is one target per message. 25.Changed channel favorites dialog drag-resize method. 26.Changed channel mode parsing in numeric 324 and MODE events to handle channel keys hidden from non-ops only on the Undernet ircd. As there is no numeric 005 token for this, this is based on the Undernet ircd version number in numeric 004. Note: Added support for numeric 005 HIDDENKEY token. When specified, this means that non-ops on a channel receive the * character as the channel key in numeric 324 and MODE events. Clients should treat the * character (or whatever character/string is sent) as a non-key if they are not ops. If the user is then opped, their client can issue a MODE to retrieve the real key. 27.Changed STATUSMSG support to use only NOTICE on the Undernet ircd, which is the only method Undernet supports. On all other ircds, STATUSMSG implies NOTICE/PRIVMSG. As there is no numeric 005 token for this, this is based on the Undernet ircd version number in numeric 004. 28.Increased the size of short, medium, and long string lengths used throughout mIRC that affect features such as variables, window names, and so on. 29.Increased stack reserve size from 2 to 8 megabytes. 30.Added identifiers $maxlens $maxlenm $maxlenl that return the maximum string lengths for small, medium, and large strings. Note: although it is possible in some situations, eg. when assigning values to variables, to store slightly longer strings, the values returned by the above identifiers should be treated as maximums. 31.Changed CAP packet-size request to use mIRC's medium string length, as returned by $maxlenm. The previous version was requesting 1024. If a server replies with a different value, mIRC will use it, with a mimumum of 512 and a maximum of $maxlenm. 32.Changed base64 implementation for $decode() to handle invalid input lengths better. 33.Added $eventparms identifer that returns the event-specific parameters passed to an executed command in a script. 34.Changed /ialfill to not issue a WHO if it thinks the IAL list is already filled or currently filling. 35.Changed $base() to only remove the 0x prefix from base16 input. 36.Changed perform, and the joining of channels, on connect to trigger only after a short delay, if the server connection uses nickserv to identify a nickname. This ensures that you are able to join channels that only allow identified users. 37.Fixed while loop parsing bug when $& is used to separate comparison parameters. 38.Changed when the raw event for invite (as a channel notification) triggers to allow the /haltdef of default display text. 39.Fixed options/connect dialog new status window being opened with the current status window's SSL port/state. 40.Updated OpenSSL library to v1.0.2p. 41.Added support for IRCv3 nested batches. This goes beyond the basic batch support in previous versions and implements the full specification, which includes nested batches and delaying batch execution until end of batch is received. This includes support for draft/label and draft/labeled-response. 42.Extended $hfind() 'w' wildmatch and 'r' regular expression parameters to search entire length of binary variable data. Note that in the case of 'r', long results will be truncated in $regml() due to internal string length limits. 43.Fixed $hash() parsing bug that caused a break evaluation error. 44.Changed how mIRC manages its string pool memory to ensure that very large strings are freed immediately. 45.Changed $hfind() to allow $null text parameter. 46.Fixed on NOTIFY/UNOTIFY events not resetting print/halt state across events. 47.Changed the way long lines are displayed to get around ExtTextOut() timeout limitation. 48.Changed default hash table hash function to modified FNV-1A for improved distribution. 49.Added support for dynamic-resizing in hash tables for features like the IAL, nickname lists, INI files, etc. that start off with small hash tables and expand as necessary to improve performance. 50.Fixed $readini() reporting an evaluation error when reading a line that contains only empty spaces. 51.Changed the [dirs] section to always contain "getdir", refers to the default item in [extensions]. 52.Updated TagLib library to latest fixes. 53.In preparation for language translation support, changes have been made to the way resources are loaded, the resources file has been changed to Unicode, and many string resources have been cleaned up and/or re-worded to improve context and make translation easier. 54.Fixed $cb() not delimiting different combinations of $cr, $lf, and $crlf correctly in the same text. 55.Fixed $var().secs for local variables returning global variable values. 56.Added /load -aN switch that loads alias file into Nth position. 57.Fixed $cb(0,u) not returning line count. 58.Extended /debug -t timestamp to apply to log files. 59.Changed how /clipboard and $cb() are called to mitigate clipboard being in use by other applications. 60.Fixed $isbit()/$biton()/$bitoff() allowing N outside range 1 to 32. 61.Changed /var to report an error if it is used outside a script. 62.Added /hload and /hsave -B switch that uses a larger index to allow longer binary data to be saved. This is not compatible with files created by the -b switch. 63.Changed scripts editor editbox to allow longer lines before it starts wrapping. 64.Changed DCC Send file dialog to display some custom controls better under dark mode in Windows 10. 65.Fixed /ignore -l not showing items in ignore list. 28/02/2018 - mIRC v7.52 Changes: 1.Changed website/forums to use HTTPS/SSL connections. 2.Changed HTTP requests, such as the update check, to use HTTPS/SSL. Older versions of mIRC do not support this, so continue to use non-SSL connections. 3.Added support for IRCv3 STS secure connection feature that directs clients to switch from a non-SSL to an SSL port when connecting to a server. STS port and duration settings are saved in servers.ini file. 4.Added /server -u switch that makes the server connection ignore IRCv3 STS directives. 5.Fixed SSL connect behaviour that prevented a retry connect attempt for non-critical SSL errors. 6.Extended $file() to include .path, .name, and .ext properties. 7.Updated code signing certificate. 8.Advance notification: the next version of mIRC will change the default SSL dialog setting from "Display invalid certificates for approval" to "Skip connections with invalid certificates". This means that, by default, mIRC will not connect to SSL servers that use invalid, self-signed certificates, such as on EFnet, DALnet, and LinkNet. 9.Fixed $chan().ibl/iel/iil/iql $inmode status not being reset when server returns numeric 482. 10.Added support for IRCv3 batch feature, however, as allowed by the spec, mIRC does not delay processing of batched lines. 11.Fixed online timer bug that caused mIRC to freeze once a minute the more connected status windows were open. 12.Extended Window menu status window items to include user mode. 13.Fixed /editbox -bNeN selection not being set if the text length resulted in auto-resizing of the multi-line editbox. 14.Extended ^K color support for indexes 16 to 98. 15.Fixed $cb(N,u) not returning UTF-8 encoded text. 16.Updated libraries to OpenSSL 1.0.2n. 17.Fixed $window().tbtext not returning text for hidden windows. 18.Fixed font dialog not displaying sample text correctly for certain fonts. 19.Changed $sfile()/$msfile() to return $null for special folders such as the fonts folder and to set $sfstate that returns "cancel" for cancelled dialogs and "error" for errors. 20.Added "Hide away reminders" option to IRC/Options dialog that hides repeat away messages in active query windows for ten minutes. 21.Fixed /timer -h bug that prevented a subsequent /timer -h request from using the multimedia timer. 22.Changed scripts editor file monitor to ignore daylight savings offset and to check file size changes. 23.Fixed window focus not being set correctly in some contexts when mIRC is made the active application. 24.Changed CAP cap-notify support for NEW/DEL so that mIRC no longer disconnects/reconnects for most CAP features unless necessary. 25.Fixed $encode() bug that caused it to report "line too long" with binary variables and certain combinations of switches. 26.Updated TagLib library to latest fixes. 27.Fixed $encode()/$decode() with e/c switches not handling short/long keys correctly. 28.Extended nickname, highlight, display, marker, and styles dialogs to support color indexes 16 to 98. 29.Changed JOIN events to no longer restore/activate channel windows that already exist when rejoining after a kick/hop/reconnect. 30.Fixed user/level commands, such as /auser, causing gpf with long parameters. 31.Extended highlight dialog to show line color. 32.Changed mouse wheel scrolling to scroll by page if this option is enabled for your mouse in Windows. 33.Added /savebuf -p switch that strips control codes from saved lines. 34.Extended $width() to support $true/$false parameters. 35.Extended /hload and /hadd to support -mN which creates the table, with N slots, if it does not already exist. 36.Extended $cb() to support output to a %var|&binvar as third parameter and to return length. If N == -1, stores entire clipboard. 37.Added /bwrite -c switch that chops file after appended bytes. 38.Extended /window -M -tN to allow N = 0 which enables leading text to be hidden. 39.Fixed $hotlink(match) bug that did not store nicknames correctly in some contexts. 40.Added $timer(N).name property that treats N parameter as timer name and returns position. 41.Added /debug -rNoN switch that sets the received and outgoing line colors. 42.Changed server dialog to update the connection details of any open status windows if you edit a matching server item. 43.Added $fromeditbox identifier that returns $true/$false if command or identifier called directly from an editbox. 44.Changed $encode()/$decode() with e/c switches to allow $null parameters. 45.Changed /debug colors to support the color 99 to use the default color. 46.Added $parms identifier that returns an untokenized $1- for events and other command/identifier calls. 47.Extended /splay to enable pause, seek, and resume with wave and midi files. 48.Added /fupdate [N] command that sets the display update rate when outputting text to windows. 49.Fixed MDI window maximize bug that caused a second copy of mIRC to not have a maximized window on startup. 50.Fixed $msfile() gpf when too many files are selected. 51.Fixed regular expression bug relating to \K escape sequence. 52.Added /ignore support for highlight, speech, and tips. 53.Fixed beep on message option not beeping on an incoming message that matched a highlight item. It now beeps as usual if the highlight item does not specify a sound. 54.Changed Switchbar/Treebar "blink icons" feature so that it is now controlled by the global flash setting and individual window flash setting. It can still be fully disabled in the Display dialog. 55.Fixed /window -t T1 T2 ... Tn bug that caused it to not update the display immediately. 56.Fixed UDP server sockets being closed due to WSAECONNRESET error. 57.Fixed $com() not freeing returned dispatch pointers if they were not being saved for later use. 58.Changed CTCP handling to correctly display empty ACTIONs/SOUNDs and empty CTCPs. Also, all CTCPs in DCC Chats are now displayed as CTCPs for consistency, not just ACTIONs/SOUNDs. 59.Fixed List Channels dialog file not being set correctly after connecting to a different network. 60.Fixed scripts dialog using an invalid folder for new files if a user has deleted the folder outside of mIRC. 61.Fixed regex support for UTF-8 parsing and handling (*UTF8) prefix. 62.Added /flash -c switch to clear flash status of all windows. 63.Optimized switchbar in certain contexts when many windows are being displayed. 64.Added set/var -p switch to treat value as literal text, including quotes and spaces. 65.Added /savebuf -n switch to treat wrapped lines as single line. 66.Changed /join -i so that it will work in an event. 67.Added /join -md switches to set mdi/desktop for new windows. 68.Added /query -mdx switches to set mdi/desktop for new windows and to maximize a window. 69.Changed /raw to support @msgtag prefixes internally when parsing commands. 70.Changed "Split long channel/query messages" option to handle @msgtag prefixes. 18/09/2017 - mIRC v7.51 Changes: 1.Fixed server passwords not being migrated from older versions of mIRC. 2.Fixed hotlinks bug that caused hotlink cursor to be offset in some contexts. 3.Fixed favorites history to store server address instead of network name if server does not have an entry in the servers list. 4.Fixed /ignore and Options/Ignore so that they use the same method when creating the ignore entry. 5.Changed server edit dialog to use "Login method" description for login method. 6.Updated libraries to OpenSSL 1.0.2l and PCRE 8.41. 7.Extended channels list "hide non-text channels" option to allow display of more double-prefix channels. 8.Fixed /server not parsing passwords set in servers list and allowing them to be overriden by those in the /server command. 9.Fixed network name in status window titlebar not being synchronized with switchbar/treebar in some contexts. 10.Fixed log files bug that caused logs from different networks to be mixed in some contexts. 11.Fixed Clear History option not correctly clearing network names in switchbar/treebar for non-connected status windows. 12.Extended /bset to support -1 to append characters. 13.Changed server dialog to display arrow icon under select button if user changes connection details for a server entry. 14.Extended DCC Trust to allow network specific address by appending ":Network" to the address entry. 15.Extended LOADINFO structure to include DWORD mBeta value that stores the beta version number. 16.Fixed mIRC window saved position bug that caused it to reset to the wrong position. 17.Updated help file to include a number of missing identifiers and commands. 18.Added /set -i switch that only initializes a variable if it does not already exist. 19.Fixed tray icon left-click not hiding/showing mIRC window if an always-on-top window was onscreen. 20.Fixed script line parser bug that caused a gpf with long lines and combinations of $str/$N-/$len. 21.Fixed $N- bug that caused the result to be shorter than it should be when there were more than 999 tokens. 22.Optimized parsing speed of $+() and $str(). 23.Fixed Window menu close menu item showing Alt+Z shortcut when that has been disabled in the Options dialog. 24.Updated CA root certificates cacert.pem file. 25.Updated library to zlib 1.2.11. 26.Extended $compress()/$decompress() to support raw, zlib, and gzip formats, using switch mN, where N = 1 is raw, N = 2 is zlib (the default), and N = 3 is gzip. 25/05/2017 - mIRC v7.49 Changes: 1.Changed CAP invite-notify support so that invite notifications are now displayed by default. 2.Added CAP 3.2 support, so mIRC now sends LS CAP 302 when logging on. 3.Added CAP cap-notify support which allows a server to add or remove capabilities during a connection. mIRC responds to NEW or DEL events by quitting and reconecting, as allowed by the specification. 4.Added server version check for UnrealIRCd in order to disable support for mode +q quiet lists as UnrealIRCd uses mode +q for owner lists. 5.Changed Add/Edit server dialog to allow use of seperate server and logon method passwords. 6.Changed /server -w and -l switches to allow specification of separate [-w password] for server and [-l method password] for logon method. 7.Changed $server().pass to return server password and .methodpass to return logon method password. 8.Fixed window treebar/switchbar focus bug. 9.Fixed $regmlex() returning 0 for empty capture group when it should have been returning $null. 10.Fixed CAP SASL external bug. 11.Added CTCP DCC resume error message when file is smaller than the existing file. 12.Added support for evaluation of highlight tip messages. 13.Added /sockopen -n switch to disable Nagle algorithm on socket. 14.Fixed IAL gpf bug when IAL was turned off and channel was joined. 15/04/2017 - mIRC v7.48 Changes: 1.Extended $com() to handle one dimensional single-byte array results which are now copied into the specified &binvar. 2.Fixed $com() memory bug that resulted in memory not being freed after a dispatch pointer request. 3.Fixed on RAWMODE not triggering for invalid mode changes such as a channel mode change for a user that is not on the channel. 4.Fixed /dns bug that returned IP address instead of error if it was unable to reverse lookup IP address. 5.Added sha256 fingerprint to server SSL certificate dialog. 6.Extended /dns to parse nick!user@host and extract the host for resolution. 7.Added -nowine command line option to disable Wine support for testing purposes. 8.Fixed custom dialog incorrect client size bug due to menubar height. 9.Fixed $insong/$inmidi/$inwave bugs with appended text. 10.Fixed if/while statement parsing bug. 11.Updated to OpenSSL 1.0.2k library. 12.Added "Control key enables mark/copy" option to Options/Other/Keys dialog. 13.Added support for middle-click mouse button to close tab in switchbar/treebar. 14.Added SASL/NickServ support as a per server setting in the servers dialog. SASL is supported using CAP. NickServ is supported by logging in when numeric 001 is received. 15.Added /server -l method parameter where method can be: pass, sasl, external, msg, nickserv. 16.Added $server().method property to return server login method. 17.Added CAP support for extended-join and account-notify. These are enabled automatically on connect if available and provide the account names of users in JOIN/ACCOUNT events. ACCOUNT events are not shown but are used to update $ial().account. They trigger as RAW events. 18.Added CAP support for away-notify. This is automatically enabled if available and makes the server send AWAY events to the client indicating the away state of users on the same channels as you. AWAY events are not shown but are used to set $ial().away. They trigger as RAW events. 19.Added CAP support for account-tag. This is automatically enabled if available and makes the server include the user's @acount=name in the message-tag for messages sent by that user. 20.Added CAP support for invite-notify. This is automatically enabled if available and makes the server send these events to the client for users invited to their channel. These events are not shown but trigger as RAW events. 21.Added CAP support for chghost. This is automatically enabled if available and makes the server send user@host updates for nicknames on the same channels to update the IAL. These events are not shown but trigger as RAW events. 22.Added /ialfill #channel command that fills the IAL by sending a /WHO #channel to the server and processing the WHO reply. If the server supports WHOX, an extended /WHO #channel %acdfhlnrstu,T is sent to receive the account name, where T is a number that uniquely identifies the WHO request and is set to 995. 23.Extended mark/copy to allow copying a single character by initially marking more than one character. 24.Fixed file change monitor bug that was causing timers to be blocked while the file change dialog was displayed. 25.Added $ial().gecos to return gecos/name field from the /who reply. 26.Added $ial().id that is a unique id number for each new entry in the IAL. 27.Extended /ialmark to allow setting arbitrary marks using the format: /ialmark -nrw [name] [text] -n = the [name] of the mark. If -n is not used, the default name 'default' is used. -r = remove the mark -w = used with -rn to treat name as wildcard Marks can be accessed using $ialmark(nick,N/name) and properties 'name' and 'mark'. 28.Optimized $ial() when looking up nick!user@host where the nick contains no wildcards. An instant hash lookup on the nick is now performed and a full address match performed on the result, instead of a slower wildcard/address search. 29.Added $dqwindow identifier that returns the state of the single message window. When used in on TEXT/ACTION events, it also returns opening/writing/written states. echo State: $iif($dqwindow & 1,enabled,not enabled) echo State: $iif($dqwindow & 2,open,not open) echo State: $iif($dqwindow & 4,opening,not opening) echo State: $iif($dqwindow & 8,writing,not writing) echo State: $iif($dqwindow & 16,written,not written) 30.Fixed server password not being encoded in mirc.ini/servers.ini in some situations. 31.Changed server group to be truncated at ,'":; and space character for future extension of servers.ini format. 32.Added -a switch to all binary variable commands that makes them not apply UTF-8 encoding to characters in the range 0-255, as long as the line contains no characters > 255. 33.Added channel central support for +q quiet list channel mode supported by some networks. Also added $chan().iql, $iql(), and isquiet. Note: the quiet list numerics and their format vary across IRC networks: some use 728 and 729, others use 344 and 345, some use a 'q' parameter, other do not. Also, some networks use these numerics for other events, eg. 345 for invites and 729 for whois. mIRC has to perform parameter checks on these numerics to decide what they mean on a server. 34.Extended numeric 334 support for networks that use it as part of a whois reply that provides the user's location. This numeric is also used as a list/command syntax reply on other networks. 35.Fixed WM_ENDSESSION handling bug that resulted in mIRC being closed by Windows before it could save all settings. 36.Fixed group changes via enable/disable commands not being saved if used during the on UNLOAD event. 37.Improved /who tracking method. 38.Extended $regsub() to support output to a &binvar. 39.Extended $regsubex() to support output to a %var|&binvar, and to return N, as long as the name parameter is specified. 40.Extended /ban to support -beIq switches. These can be stacked but are issued as separate modes. 41.Extended per network channel key history that remembers keys of joined channels for the current mIRC session. Now used automatically in more joins eg. after reconnect, in new server windows, and so on. History is cleared with "Channels" in the Clear History dialog. 42.Fixed window focus not being set correctly when a custom dialog is used to open/close custom windows. 43.Changed the way sound-related routines are called by all features to make it easier to change away from MCI. 44.Changed sound-related routines to use DirectSound instead of MCI to play sounds. 45.Added "Create new certificate" button to Options/IRC/SSL dialog that creates a new self-signed client certificate, saves the key/cert pair to a PEM file, and sets it as your private key. 46.Added $sslcertsha1 and $sslcertsha256 identifiers that return fingerprint of currently loaded SSL client certificate file for use with /nickserv cert add. 47.Optimized the channel central +beIq lookup routines. 48.Extended /timer -pr switches to support wildcards. 49.Fixed $sound().vbr bug. 50.Added /drawsize @ that sets the bitmap size for picture windows up to a maximum of 8192 x 8192 pixels. Note: 1) a bitmap cannot be sized to less than the largest point that has been drawn on it (which can be reset with /clear), 2) once a size has been set, changing the window size will not resize it to less than the set size. 51.Fixed /drawreplace not setting largest point drawn to correctly. 18/01/2017 - mIRC v7.47 Changes: 1.Fixed treeview display of text being chopped with certain fonts. 2.Fixed URL hotlink and catcher bugs that prevented extraction of short URLs. 3.Updated to OpenSSL 1.0.2j library. 4.Extended /drawpic and other features to support .jpeg extension. 5.Reverted changes to $calc() and other identifiers regarding number of decimal digits in floating point calculations. 6.Updated About dialog to use Windows theme. 7.Changed op/ignore/protect/voice commands to maintain position of item in list if it already exists. Same applies to editing item in the Control dialog. 8.Extended hotlink and catcher to allow underscores in addresses. 9.Updated TagLib library to v1.11.1. 10.Updated CA root certificates cacert.pem file. 11.Fixed /protect not using network parameter correctly. 12.Fixed $modespl not allowing larger server-set values. 13.Fixed $int() bug when rounding some negative values. 14.Fixed $com().result not trimming trailing zeros in float values. 15.Fixed $wrap() not updating wrapped text if case has changed. 16.Fixed hash table bug that resulted in intermittent gpfs due to incorrect freeing of memory in some contexts. 01/08/2016 - mIRC v7.46 Changes: 1.Updated to OpenSSL 1.0.2h library. 2.Fixed /timer -h multimedia timer which was being limited to the same rate as the -m millisecond timer. 3.Added $samepath(path1,path2) identifier that returns $true/$false if paths refer to the same file/dir. It resolves relative paths and converts long/short filenames. 4.Added /copy -f switch to flush copy to disk immediately. 5.Added /rename -f switch to flush rename to disk immediately and -o switch to allow overwrite of an existing file. 6.Extended $calc() and other identifiers to return up to 12 decimal digits in floating point calculations. 7.Added $tempfn identifier that returns temporary filename located in mIRC folder using same method that mIRC uses internally. 8.Fixed Clear History bug that incorrectly cleared channels list settings while status window was connected to a server. 9.Extended /mkdir to create the full path to the target folder. 10.Changed the way files are replaced during updates to decrease the potential for file loss eg. lost mirc.ini files in situations such as gpfs, BSODs, and power failures. 11.Changed URL catcher to extract URLs using the same method used by hotlink feature. 12.Extended URL hotlink/extract feature to handle IPv6 addresses. 13.Fixed $base() bug with floating point precision. 14.Fixed /hadd not reporting error if UTF-8 conversion results in a string that is too long. 15.Fixed script error not showing line number for single-line event definitions. 16.Added /list -n switch to minimize channels list window. 17.Added resize grip to bottom right of resizable dialogs: channel central, channel folder, play central, and scripts editor. 18.Fixed regex bug when \K is used in some regex patterns, such as $regsubex(abcd, /.\K/g, <>). 19.Fixed /drawline -p bug when measuring clipping width for text that contains tab characters. 20.Updated to PCRE 8.39 library. 21.Added display of CAP state on connecting to a server and when CAP commands are issued later. 22.Fixed first server "command not supported" error message not being displayed. 25/04/2016 - mIRC v7.45 Changes: 1.Fixed on BAN/UNBAN event bug that caused it to not be triggered on mode +b/-b events. 2.Updated channels /list feature to send *matchtext* to server in LIST request on Undernet and Quakenet. 3.Fixed DCC Send file dialog nickname combobox being incorrectly sized. 4.Updated installer to re-use default NSIS uninstall executable. 5.Fixed $sdir() new file dialogs not handling invalid path names. 6.Fixed $sfile() new file dialogs not filling in filename editbox if filename provided. 7.Fixed tray tips bug that caused gpf triggered by right-click on tray tip and possibly other contexts. 8.Fixed tray tips and speech bug in formatting of text for mode event that contains multiple mode changes. 9.Updated CA root certificates cacert.pem file. 25/03/2016 - mIRC v7.44 Changes: 1.Fixed incorrectly formatted else/elseif reporting the wrong error. 2.Changed /fwrite -n to allow writing an empty line. 3.Updated manifest files to indicate Windows 10 compatibility. 4.Extended $os identifier to detect Windows 10. 5.Added support for extended numeric 338 reply with IPv6 address. 6.Fixed $encode($null,m) returning "line too long" error. 7.Added $regml().group property that returns the () group number for a match and .match property that returns the match number in the case of a /g global match that returns multiple matches. 8.Added /sockopen -46 switches to specify the IPv4/IPv6 context when resolving named addresses. 9.Extended /sockopen to base its IPv4/IPv6 context on the bind address if specified and if the -46 switches are not used. 10.Changed /server to base its IPv4/IPv6 context on the IP address if one is used. 11.Added $isalias() property .ftype and now allows listing of lines in multi-line aliases using $isalias(alias,N).alias. 12.Fixed $msgtags not being reset immediately after an event. 13.Fixed $eval() bug that caused over-evaluation in some cases. 14.Fixed logging bug with large log files. 15.Fixed log view dialog file size bug with large log files. 16.Extended $com() to allow passing parameters in from and results out to binary variables. To pass parameters in from binary variables, prefix the variable type with & to indicate the parameter is a binary variable eg. $com(name, member, method, &bstr, &binvar). To retrieve a result into a binary variable, use $com(name, &binvar).result. 17.Updated to OpenSSL 1.0.2g library. 18.Extended $sysdir() to support downloads folder. 19.Updated to PCRE 8.38 library. 20.Added CA root certificates cacert.pem file to installer. On a new install, mIRC will default to using this as the trusted authorities file if found in the mIRC folder. 21.Fixed $findfile()/$finddir() not responding to Control+Break. 22.Added regex modifier 'u' which enables PCRE_UTF8 and PCRE_UCP in the same way as PHP. 23.Fixed CAP bug that caused mIRC not to parse the capabilities list if it was not prefixed by a : colon. 24.Updated code signing certificate to SHA-256. Binaries are now dual code-signed with SHA-1 and SHA-256. 25.Updated TagLib library to v1.11. 26.Extended $regex() to allow unlimited backreferences. 27.Added $file().version to return file version of executable/DLL. 28.Extended $bvar(&binvar) to return name if &binvar exists. 29.Added $font(N/name) identifier with properties .size, .pitch, and .type. 30.Added command warning dialog that warns new users when they enter a scripting command into an editbox. The option is enabled by default and can be enabled/disabled in the Options/Other/Confirm dialog. 31.Added $unsafe(text) identifier for use with, for example, user input in /timer commands, that delays evaluation of text for one level of evaluation. 32.Moved send file dialog options, such as packet size, to DCC Options dialog. 33.Updated all file dialogs, including the send file dialog, to use modern file dialogs. 34.Updated to NSIS 2.50 installer and related plugins. 35.Fixed mode +q event being processed as on OWNER/DEOWNER event on networks that use +q as a channel mode. 36.Fixed numeric 353 and 366 bug that caused them to trigger the raw event even if raw was disabled. 37.Fixed if/while bracket parsing bug that caused mIRC to freeze with a certain combination of separators and brackets. 38.Added /write -mN switch, where N = 0 is the default behaviour, N = 1 adds CRLF to end of file if not already there before writing a line, and N = 2 never adds CRLF to end of file before writing a line. 39.Added check for servers that include MONITOR in numeric 005 but do not actually support it. mIRC reverts back to ISON in this case. 40.Fixed on UNLOAD event not being triggered when a file is deleted via the scripts editor File/Delete menu item. 41.Fixed treebar expand/collapse bug that was causing treebar not to update correctly. 42.Fixed dcc chat window beep on incoming text not paying attention to the "Enable Sounds" option in the options dialog. 43.Fixed active "A" letter not appearing on tray icon for the active mIRC when more than one mIRC is running. 44.Updated installer so that, if installing as non-portable, it writes to the registry to set mIRC as an IRC protocol handler and to make mIRC appear in the default programs list. mIRC also does this itself on startup if run as non-portable and as an administrator. On Windows 8 onwards, administrator access is not required for this to work. 45.Added installer /NOADMIN switch to allow running installer without administrator access. 46.Updated installer to remove legacy code that was needed for older Windows versions. 47.Added "Certficate" menu item to status window system menu that allows viewing of the SSL certificate for an SSL connection. 48.Changed /exit -r to no longer restart mIRC using a short filename, which had been necessary under older Windows versions. 49.Changed SSL certificate warning dialog to center based on the status window position as opposed to the mIRC window. 50.Changed various dialogs to center in the middle of the MDI window if the top MDI window is zoomed. 51.Fixed SSL memory leak that caused small amounts of memory not to be freed during initial connection. 52.Added regex modifier 'F' that makes \N back-references in patterns and N indexes in identifiers refer to the () capture group order. It also causes $regml() to include empty () matches. This makes the regex feature work like standard regex. Help file has been updated to include these details. 53.Added $regmlex(name,M,N) where M is the match number (in case of multiple /g global matches) and N is the () group number. If N is not specified, it defaults to 1. 54.Extended $url to work with browsers that do not support DDE, like Microsoft Edge and Google Chrome. 03/08/2015 - mIRC v7.43 Changes: 1.Fixed window focus bug that affected switching windows when using control+tab, the switchbar, and other methods. 2.Added $sysdir(item) to return system folders for the current user where item can be profile, desktop, documents, music, pictures, and videos. 17/07/2015 - mIRC v7.42 Changes: 1.Fixed tokenization bug due to strtok()'s use of an internal static varible that may have caused a number of subtle bugs. Replaced with more secure strtok_s(). 2.Fixed script error line number bug that was causing the line number not to be reported in some contexts. 3.Fixed /drawtext -c clipping bug. 4.Added /filter -hN switch that indents wrapped text when the -p switch is used. 5.Fixed channel central listbox horizontal scrollbar bug that caused the ends of lines to be chopped. 6.Updated libraries to OpenSSL 1.0.1p. 7.Fixed SSL certificate change warning bug that caused warnings to be displayed for valid certificates. 8.Fixed /filter output to nul not working. 9.Updated voice command support to work with newer versions of Windows. 10.Extended /server to handle passwords with spaces. 11.Updated libraries to PCRE v8.37. 12.Changed drag-drop to only set focus on a window once a file has been dropped onto it and before commands are executed. 13.Fixed /play dialog not allowing long filenames to be typed into filename editbox. 14.Fixed file dialog bug that prevented typing a folder name into the filename editbox to change into that folder. 15.Changed script processing method so that Windows no longer thinks mIRC has stopped responding during long loops. 16.Extended /savebuf -l to work with channel nicklist. 17.Fixed /exit bug that caused settings to be saved incorrectly when used in some contexts. 18.Fixed $input() bug that caused mIRC to gpf if the script it was running from was modified while waiting for input. 19.Fixed $encode(..., 0) and $decode(..., 0) not returning correct line count. 20.Added $encode()/$decode() 'a' switch for base32 encoding. 21.Fixed $encode() bug that caused a gpf with input whose encoded output was longer than maximum line length, now triggers "line too long" error. 22.Added $sha256(), $sha384() and $sha512() identifiers, same format as $sha1(). 23.Added $hmac(text|&binvar|filename, key, hash, N) identifier where hash = md5, sha1 (default), sha256, sha384, or sha512, and N = 0 for plain text (default), 1 for &binvar, 2 for filename. 24.Added $hotp(key, count, hash, digits) identifier and $totp(key, time, hash, digits, timestep) identifiers. The key can be in a hex format of 40/64/128 chars, base32 format of 16/24/32 chars, or plain text. It can also be in a Google Authenticator format ie. lowercase with spaces. For $hotp: count is required, hash and digits are optional and default to sha1 and 6. For $totp: time, hash, digits, and timestep are optional and default to $ctime, sha1, 6, and 30. 25.Fixed $sdir() not being centered correctly after you resize the dialog. 26.Added support for IRCv3 message tags. mIRC will now automatically remove @ prefixed tags from incoming server messages and store them in the $msgtags identifier. The CAP server-time "time" tag can now be parsed when mixed with other tags. 27.Fixed treebar not setting active item when maximized windows are hidden and then shown again. 28.Added $msgtags(tag|N) identifier with .tag .key properties, where N = 0 returns number of tags. 29.Added on PARSELINE event, triggers before incoming/outgoing server lines are received/sent and allows a script to modify them. on *:PARSELINE::matchtext:echo $parsetype $parseline The line can be modified using the following command: /parseline -iotbqpnuN [text|&binvar] -i or -o = required to specify an in/out line. -t or -b = required to specify text or &binvar. -q = add a new line to the end of the in/out queue. It can be used inside and outside the PARSELINE event. New lines are processed after the script/event exits. -p = use with -q to indicate that the new line should trigger the PARSELINE event. -n = add a CRLF to the end of the line if it does not have one. -uN = where N is 0 or 1 and either disables or enables UTF-8 encoding/decoding for the line. Notes: 1) A script must check $parseutf to know whether mIRC will be UTF-8 encoding/decoding a line. For outgoing lines, if $parseutf is $true, after the PARSELINE event, mIRC will UTF-8 encode the line before sending it to the server. You can prevent this by using -u0. For incoming lines, if $parseutf is $true, after the PARSELINE event, mIRC will UTF-8 decode the line before processing it. You can prevent this by using -u0. 2) This feature should only be used, for example, to support features and/or protocols that mIRC does not already support, not to modify standard lines. mIRC maintains internal states based on incoming and outgoing lines. If lines are modified, mIRC may not work correctly. 30.Fixed Options/Sounds Event Beeps beep value not being applied, resulting in repeated beeping during a flash event. 31.Extended scripts editor editbox limit to 1MB. 32.Fixed $intersect() bug that was rounding floating point values. 28/02/2015 - mIRC v7.41 Changes: 1.Added $calc() // floor divide operator. 2.Optimized script parser recursion to make better use of reserved stack space, enabling slightly deeper recursion. 3.Optimized SSL event processing speed. 4.Fixed $input() maximum editbox limit being off by one. 5.Extended hotlinks to correctly parse channel names in a channel message/notice prefix format. 6.Fixed file handling bug that would have caused mirc.ini to be reset if there was a drive error, such as the drive being full. 7.Fixed another while loop bug. 8.Fixed MDI window transparency bug under Windows 8. 9.Extended SSL support to allow connecting to SNI servers. 28/01/2015 - mIRC v7.39 Changes: 1.Extended /dll -u to allow use of a partial path. 2.Reverted Channels List window change so that modes are included in the listing again. 3.Fixed hash table bug that would have caused a gpf if mIRC was unable to allocate memory for the table. 4.Fixed INI file bug where mIRC was not unloading an INI file if it no longer existed, ie. when deleted by another application. 5.Added $comchar identifier to return the command prefix character. 6.Fixed connection timeout not being applied while a STARTTLS handshake is in progress. 7.Fixed scripts editor bug that caused popups text not to be displayed correctly in some situations. 8.Fixed confirm exit dialog bug that was not detecting if any DCC gets were in progress. 9.Updated many routines to use 32/64-bit compatible types as a first step in preparing for a 64bit version of mIRC. 10.Fixed icon loading routine bug that may have caused an incorrect icon size to be loaded. 11.Changed threaded critical sections from InitializeCriticalSection to InitializeCriticalSectionAndSpinCount to improve performance in some contexts. 12.Fixed custom dialog limit text option not being applied to simple combo boxes. 13.Changed internal icon format for both the mIRC and connect tray icons. 14.Changed checkbox/radio button in Options/Lock/Disable features listbox and in custom dialog listboxes to use the correct Windows theme. 15.Fixed MDI windows not maximizing fully to the right in some contexts when main mIRC window is also maximized. 16.Fixed $* bug with // and other prefixes not being parsed correctly. 17.Updated file dialog routines, which includes the DCC Send file dialog, in preparation for switching to modern file dialogs in a future version. 18.Fixed /dcc send/chat/fserve bug when parsing the port number that is specified at the end of an ip address, ie. address:port. 19.Fixed Log and Buffer submenus in window system menus not being set correctly when toggling between mdi/desktop modes. 20.Fixed Shift-F3 bug under Wine that caused mIRC to freeze. 21.Extended file dialogs to include more file types in the file types listbox. 22.Fixed log reload bug that caused logs not to be reloaded before the start of a new year. 23.Added $chan(@N) wid support. 24.Added $window().idle property, returns idle state for window type. 25.Updated libraries to OpenSSL 1.0.1l. 26.Fixed while loop bug when multiple nested while loops are used on a single line separated by | line separators. 27.Fixed $reptok() bug that may have caused intermittent results. 28.Fixed $mode() bug that may have caused intermittent results. 29.Fixed empty parameter handling in $instok(), $puttok(), $remtok(), and $reptok(). 30.Fixed $ini() bug that limited the index to a maximum of 9999. 31.Fixed log viewer bug that caused it to freeze during a log search if a log file contained a line longer than mIRC's maximum internal line length. 32.Fixed $mp3().bitrate bug that returned an incorrect value. 27/11/2014 - mIRC v7.38 Changes: 1.Added $envvar(N/name) identifier with .name and .value properties to return environment variables. 2.Added $notify identifier, returns $true or $false based on whether the notify list is enabled or disabled. 3.Fixed treebar status window folders being expanded when they should not be in some situations. 4.Updated the default DCC accept and ignore file types lists. 5.Extended /close -@ to handle @N window id values. 6.Fixed switchbar lines "auto" bug that was causing the switchbar to auto-expand incorrectly for large numbers of windows. 7.Fixed DCC Get/Fserve not using path of existing DCC Get window when resuming a failed transfer. 8.Fixed DCC Get window not being updated when a resume begins in some cases. 9.Fixed DCC Fserve get not applying "sort files by nickname into own folders" option for received files. 10.Added /close -axdnu switches, where a = apply to all server connections, x = apply to current server connection, d = single message window, n = notify list, and u = urls list. 11.Fixed DCC Chat speech bug that caused text in a DCC Chat window not to be spoken if speech was enabled only for that nickname. 12.Changed /server to search servers list using combination of server address, group, and description. 07/11/2014 - mIRC v7.37 Changes: 1.Fixed /window -dC bug not centering @window on the same the monitor as the main mIRC window. 2.Fixed Window Order dialog not allowing entry of long channel names. 3.Fixed $sockerr being incorrectly set in some socket events. 4.Fixed font display bug that caused mIRC to use a blank font if the font name was empty in the [fonts] section in mirc.ini. 5.Fixed channels list display bug when list reply includes channel modes. The modes are no longer displayed in the channels list. 6.Updated compiler options to improve buffer overrun defenses and enabled heap metadata protection on Vista onwards. 7.Added check for numeric 447 issued by some servers when a /list request is sent. 8.Added Windows entering sleep/hibernation detection at which point mIRC will immediately save unwritten INI settings as a precaution. 9.Added STARTTLS support using the CAP tls protocol. To initiate a secure connection to a STARTTLS capable server, you can use the /server -t switch or prefix the port number with a star sign, eg. *6667. On connecting to a server, mIRC now sends CAP LS and waits for a reply from the server before logging on. This allows mIRC to determine if STARTTLS is supported and to initiate STARTTLS before logon credentials are sent. If a server replies with a CAP reply, mIRC processes the CAP reply, initiates STARTTLS if supported, and then logs on. If STARTTLS is not supported, mIRC cancels the connection. If a server replies with numeric 451 (not registered), indicating it does not recognize CAP, mIRC cancels the connection. If a server does not reply at all, after a few seconds of waiting, mIRC sends a PING. If a server replies with a PONG or numeric 451, indicating it does not support CAP, mIRC cancels the connection. 10.Added /sockopen -t switch that initiates an SSL negotiation on a non-SSL connection, eg. as with STARTTLS, and a $sock().starttls identifier. 11.Fixed /sockread unsetting local variable instead of setting it to an empty value in some contexts. 12.Fixed /whois results being incorrectly displayed in @debug window if it happened to be active in some contexts. 13.Fixed SSL port cycling bug. 14.Added /sockwrite -a switch that prevents characters in the range 0-255 from being UTF-8 encoded, as long as the line only contains characters in the range 0-255. 15.Fixed /server -nm not setting channels list filename correctly when server window is created. 16.Changed channels list "hide non-text channels" option to allow display of double-prefix channels. 17.Changed status window titlebar to include port number when not connected so you can see if the next connection attempt will be secure or not. 18.Fixed recent server connections not being saved to servers.ini file if the "move to top on connect" option was disabled. 19.Changed servers history menu to correctly show the history of servers you have connected to as opposed to servers at the top of the servers list. If you select "clear history", it now clears the history as expected. 20.Added ircs:// support to URL catcher. 21.Changed log view window, opened by logging dialog, so that it is positioned at the end of the switchbar/treebar window list. 22.Fixed switchbar/treebar display bug that caused windows to be displayed in the wrong order in some situations. 23.Changed $sound() to use the TagLib library for improved reading of MP3 and other media file formats. 24.Added Shift-F3 key support in Scripts Editor to search backwards through text. 25.Fixed timezone bug that caused timezones with non-whole hour offsets to be handled incorrectly. 26.Updated manifest files to indicate Windows 8/8.1 compatibility. 27.Extended $os identifier to detect 8.1. 28.Fixed dialogs display bug that caused dialogs opened via MDI window system menu to be offset incorrectly. 29.Fixed $did bug that caused $did to be reset inside an event in some situations. 30.Changed SSL accepted cipher list to ALL:!ADH:!aNULL:!eNULL:!EXP: !3DES:!RC4:!MD5:!PSK:!SRP:!DSS:!SSLv2:!LOW. 31.Added "ciphers" item to [ssl] section in mirc.ini that allows you to specify list of accepted ciphers. 32.Updated libraries to PCRE v8.36 and OpenSSL 1.0.1j. 33.Changed connection error messages to include actual SSL error messages provided by OpenSSL. 34.Changed $input() to allow entering of longer text and limiting text entry to maximum length. 35.Fixed text display spacing bug with zero width characters. 36.Fixed timezone/daylight savings bug that was affecting timestamping and time/date identifiers. 14/08/2014 - mIRC v7.36 Changes: 1.Fixed mark/copy text bug. 2.Updated the replace dialog in the scripts editor to remember its position for the current mIRC session. 3.Fixed /alias incorrectly halting script in some situations. 4.Fixed SSL "Unable to get certificate CRL" bug. 5.Reverted change to $sslversion so that it returns only the version number and excludes the "OpenSSL" prefix. 6.Updated libraries to OpenSSL 1.0.1i. 04/08/2014 - mIRC v7.35 Changes: 1.Fixed slow mark/copy text in windows that contain long lines. 2.Fixed listbox lines in Options dialog and other windows being vertically chopped when DPI settings are set to a high value of 200% or more. 3.Reverted change to alias/identifiers when called recursively that caused the script to be halted with a recursion error warning. 4.Fixed listbox with checkboxes bug that caused checkboxes to be checked if you scrolled through them with the up/down keys. 5.Changed channel folder dialog so that it can now be resized. 6.Changed online timer dialog to display information more clearly. 7.Added /timer -zN switch to reset online timer, where N = 0 resets current and total time, N = 1 resets current time, and N = 2 resets total time. 8.Added $onlineserver to return current server online time and $onlinetotal to return total online time. 9.Fixed Shift+Tab beeping when switching to listbox in channel window. 10.Fixed $fullscreen not working on a non-primary monitor. 11.Updated SSL routines to allow both static and dynamic linking of OpenSLL with mIRC. mIRC now comes with OpenSSL 1.0.1h linked statically, so SSL is available without needing external DLLS. However, if mIRC finds a newer version of OpenSSL on your system, it will load that automatically. 12.Added SSL option that allows you to control whether the internal or external version of OpenSSL is loaded, by adding "load=N" to the [ssl] section in mirc.ini, where N = 0 means "use internal, external if newer", N = 1 means "use external always", and N = 2 means "use internal always". The default is 0. If no external is available, or there is an error loading external, internal is used. 13.Fixed SSL routines not checking if a private certificate was loaded either in the same file as the private key or as part of a separate certificate chain file. 14.Updated the find dialog in the scripts editor to remember its position for the current mIRC session. 15.Fixed favorites bug where if multiple networks are defined for a channel, and you click the join button, mIRC was only connecting to the first network. mIRC now connects to all of the networks defined for that channel and will open new status windows if necessary. 16.Fixed lock dialog bug that caused mIRC to ask for a password if the on startup option was enabled without setting a password. 17.Fixed $input() 'b' switch so that the dialog window close button is also temporarily disabled. This also applies to other dialogs that use this feature. 18.Fixed isignore only accepting types, now also accepts switches. 19.Fixed CAP server-time time value not being used when timestamping an event in the log file. 18/06/2014 - mIRC v7.34 Changes: 1.Fixed SendMessage() bug that prevented mIRC from processing incoming WM_MCOMMAND/WM_MEVALUATE messages correctly. 2.Changed right-click popup menu item order for Treebar, Switchbar and Toolbar for common menu items so that they match. 3.Added Switchbar font option to right-click popup menu. 4.Changed Switchbar to display active window tab in a slightly different color when a background picture for the Switchbar is set. 5.Changed tooltip display delay to use the Windows default tooltip display delay value. 6.Changed Clear History feature to not delete some interface settings, such as font settings for Treebar, Switchbar, and Scripts Editor and background picture settings for Treebar, Switchbar, and Toolbar. 7.Changed installer to default to upgrade mode if installing over an existing installation when using the /S silent option and added a /FULL command line option to force a full install. 8.Fixed DNS resolution bug that would have returned incorrect results during multiple simultaneous DNS requests in rare contexts. 9.Updated libraries to OpenSSL 1.0.1h. 10.Added Lock dialog option to disable SendMessage. If cMethod value 16 is used for more useful error messages, returns 64 to indicate SendMessage is disabled. You can use $lock(sendmessage) to check if it is disabled. 11.Extended mouse wheel to work in interface elements, such as list boxes in dialogs, under the cursor even if they are not active. 12.Added /comlist command to list open com objects. 13.Added $servertarget identifier to return address specified in the /server command, which may not be the same as $server. 14.Added /play -x switch to treat the first line in the file as plain text even if it is a number. 15.Fixed custom dialog listbox with checkboxes not working correctly on Windows 8 tablet touch screens. 27/05/2014 - mIRC v7.33 Changes: 1.Fixed $ini() bug that resulted in an incorrect count being returned with a particular combination of subject and key parameters. 2.Added /var -n switch to make /var treat input as plain text. 3.Fixed /loadbuf bug that skipped empty lines when loading a topic. 4.Changed HTTP routines to use POST with form parameters instead of GET with URL parameters. 5.Fixed $line() with Channels List window so that it references the current search results instead of the full list. 6.Fixed while/if loop error reporting bug. 7.Fixed /hotlink -m menu not working correctly when a menu item is selected. 8.Fixed channel central limit bug that caused invalid limit values sent by the server to be stored incorrectly. 9.Fixed channel titlebar not displaying numeric modes. 10.Fixed /timer bug when using the [time] parameter that caused it to execute twice on reaching [time]. 11.Extended server/history popup menu so that if you hold down either the shift or control key and click, it opens a new server window. 12.Changed /localhost -p UPnP method to use local interface address instead of 127.0.0.1. 13.Fixed on SOCKWRITE event not being triggered for UDP events when an error occurs. 14.Fixed editbox focus not being set on restored desktop windows. 15.Fixed scripts editor focus not being set if it is in MDI mode and you switch to a window outside of mIRC and then back to mIRC. 16.Fixed right-click popup menus in listbox windows not working on Windows 8 tablet touch screens when using press-and-hold. 17.Fixed INI file save bug that was causing a gpf if the INI file was already in use by another application. 18.Fixed full screen menubar bug that caused the menubar to be displayed incorrectly in a multi-monitor setup in some cases. 19.Added /fopen -x switch that opens a file for exclusive access. If another application is using the file, /fopen will fail. 20.Fixed /hsave to an INI file not clearing section before writing hash table items to it. 21.Changed Options/Display/Buttons option to allow "Small" or "Large". This now changes both the toolbar and switchbar size. The size is scaled based on screen resolution and DPI settings. If installed on a tablet, the large button size is chosen by default. 22.Fixed /echo -h bug that caused text not to hard-wrap. 23.Fixed $ctime() bug where "nd" values were not being recognized. 24.Updated libraries to PCRE v8.35 and OpenSSL 1.0.1g. 25.Fixed $msfile() bug when too many filenames were selected under Windows 7/8. 26.Fixed $sdir() bug that caused selected folder not to be scrolled into view when dialog is displayed under Windows 7/8. 27.Added math identifiers $atan2(y,x), $hypot(x,y), $log10(x), $sinh(x), $cosh(x), $tanh(x). 28.Fixed $onpoly() bug due to rounding errors that may have returned $true in rare cases where two lines are very close. 29.Added $intersect(x1,y1,x2,y2,x3,y3,x4,y4,method) identifier that returns the point at which two lines/rays intersect. The method parameter is optional. If not specified, two lines are compared. If specified, it can be lr, rl, rr = line/ray, ray/line, ray/ray. 30.Fixed /drawdot bug that caused it to be drawn slightly off center. 31.Added $input() 'f' switch that forces the return of $no/$cancel for edit/combo boxes. 32.Fixed SSL certificate password dialog box being displayed multiple times when multiple SSL connections are in progress. 33.Added display of "Connect cancelled" message when a connection attempt/retry cycle has ended completely. 34.Added a single, standard lock/password dialog for use by all features to replace multiple older implementations. 35.Fixed SendMessage() WM_MCOMMAND bug that would have returned a successful result to the calling application even if the command had in fact failed. 36.Added support for encrypting server passwords in servers.ini. Old plain text passwords are converted to the new format. 37.Changed List Channels dialog lock password so that a hash is stored in mirc.ini instead of the actual password. The old password is converted to the new format. 38.Fixed SSL certificate password dialog box bug that, on being displayed, caused controls to be enabled even if user was currently typing in another window. 39.Added another method for detecting Wine, as a backup to the current method. 40.Extended SendMessage() to enable executing a command in the context of a remote event. During a remote event, a $eventid identifier is set to a unique value to identify the event. This can be passed to a DLL which can then pass it back to mIRC using: SendMessage(mHwnd, WM_MCOMMAND, MAKEWPARAM(cMethod, cEventId), cIndex) This will cause the command/evaluation to execute in the context of the remote event identified by cEventId. If cEventId is 0, this indicates a non-remote event. 41.Extended SendMessage() to return information about mIRC using SendMessage(mHwnd, WM_MCOMMAND, -1, lParam) where lParam is -1 to receive the mIRC version number and -2 to receive the cMethod options that are supported. 42.Extended SendMessage() to support cMethod value 16 which causes SendMessage() to return more useful error values instead of just 0 for failure and 1 for success. The return values are: 0 = success, 1 = failure or'd with 2 = bad mapfile name, 4 = bad mapfile size, 8 = bad eventid, 16 = bad server, 32 = bad script. 43.Fixed hotlinks display bug that affected how hotlinks were displayed in dialogs. 44.Fixed topics, modes, and several other events not including the year that the mode was set. 45.Changed About dialog to include check for update button. 46.Added installer check for limited user write access to the selected install folder when the "portable" option is enabled. 47.Fixed alias/identifier behaviour inconsistency when a recursive call is attempted which could have led to unexpected results. Both now halt the script with an error message instead. 48.Changed installer to include links to license and privacy policy. 49.Added CAP userhost-in-names support. 50.Changed CAP support so that CAP END will only be sent once the server has replied to all requests with ACK or NAK and requests have been processed. 51.Fixed timezone/daylight savings bug due to a hack around a bug in a previous version of the C runtime library. 52.Fixed all server messages, such as MOTD, not being timestamped when timestamp option is enabled. 53.Added CAP server-time and znc.in/server-time[-iso] support. Enabled automatically with a CAP request if server lists it in CAP LS. If a server message has a @time prefix with a UTC timestamp, $msgstamp will return this value. 54.Extended /echo -tN where N is the UTC value you want to use as the timestamp. 55.Added support for ircs:// secure links. 56.Improved irc/ircs:// links support in the windows registry by adding the following entries: Class\mIRCURL, Software\Clients\IM\mIRC, and Software\RegisteredApplications\mIRC. 57.Changed /timer to display seconds in /timers and in $timer().delay, if seconds are specified on command line. 58.Changed /window -c to not report an error if the non-@window it is closing does not exist. 59.Fixed status/channel/query right-click popup menu bug that caused clicked target not setting $1 correctly if /remote is off. 60.Fixed an SSL threading bug that may have caused SSL connections to gpf in some situations. 61.Fixed scripts editor file change monitor bug that may have caused some file change notifications to be missed. 62.Changed $ticks so that it uses GetTickCount64() if it is available. 63.Fixed /list command bug that caused the channels list to be saved to the wrong filename in the channels folder if you were connected to multiple servers. 64.Fixed $read()/play random number bias. 65.Changed $shortfn()/$longfn() to use more reliable method. 66.Fixed $input() display bug with long strings. 23/05/2013 - mIRC v7.32 Changes: 1.Fixed messages being text-wrapped incorrectly in some situations. 2.Fixed SSL certificate files specified in SSL options dialog not being loaded and used correctly when connecting to a server. 3.Fixed SSL disconnect bug where if an SSL connection failed, other SSL connections would be disconnected. 4.Updated libraries to zlib 1.2.8 and OpenSSL 1.0.1e. 26/04/2013 - mIRC v7.31 Changes: 1.Fixed editbox buffer bug that was not storing an edited line if you pressed the up key. 2.Fixed incremental search not working correctly in channels list window. 3.Changed email catcher to be more strict when determining whether something looks like an email address. 4.Fixed installer issue that may been the cause of popups.ini files being overwritten in some situations. 5.Added installer command line options /DESKTOP, /NODESKTOP, /STARTMENU and /NOSTARTMENU to enable/disable creation of shortcut icons. 6.Added "On Top" menu item to the View menu as users have difficulty finding it in the system menu when it is enabled. 7.Changed the "File changed" dialog so that it is closed automatically if a load/reload command applies to the same file. 8.Extended $encode/$decode to support blowfish. By default, the method is compatible with OpenSSL and uses CBC, key hashing, a random salt and PKCS#5 padding. The identifier format is: $encode(%var | &binvar, switches, key, [salt | iv]) $decode(%var | &binvar, switches, key, [salt | iv]) Where the switches are: method: c = cbc or e = ecb encryption (one or the other) key: l = literal key (optional, must be 56 characters) salt/iv: s = salt or i = iv or r = randomiv (all optional) padding: z = zeros, n = one and zeros, p = spaces (all optional) 9.Fixed SSL caching bug that may have required repeat acceptance of certficates on some networks. The cache now stores the IP address of the associated certificate. 10.Changed connection retry method so that if a connection attempt to an SSL server fails, and the server is part of an IP pool, the next retry will use the same SSL port. 11.Added DPI awareness to prevent Windows applying display scaling to mIRC. This should resolve the blurry interface and font issues when non-standard DPI display settings are used. A number of GUI-related features needed to be updated to cater for this change, eg. fonts now use internal defaults of points versus logical sizes. This may affect scripts that use dialogs and /draw on systems with non- standard DPI settings. 12.Fixed drag-drop bug that may have caused a gpf when switching windows between MDI/desktop mode. 13.Added MONITOR protocol support for the notify list. mIRC will use MONITOR automatically if it is listed in the 005 numeric. 14.Fixed "Check for update" dialog display bug that occurred when the connection to the website timed out. 15.Fixed $& indentation bug in scripts editor dialog. 16.Changed notify list to dynamically switch between WATCH/MONITOR and ISON when the number of nicks in the notify list is within/beyond the WATCH/MONITOR limit set by the server. 17.Optimized switchbar and treebar display speed. 18.Fixed switchbar "auto" lines feature being disabled when switchbar is repositioned. It is now only disabled if switchbar is resized vertically. 19.Fixed timestamp bug that may have caused a gpf in some situations if your timestamp was very long. 20.Fixed timestamp part of a message not being wrapped correctly when message is initially displayed in a window. 21.Fixed mIRC not handling mouse buttons correctly in some situations if the user's system is configured to swap mouse buttons. 22.Changed the way the window buffer is trimmed when it reaches the maximum number of lines set in the Options/Other dialog. 23.Added /close -lk to close channels list and links list windows. Note that channels list windows cannot be closed if currently listing. 24.Optimized SSL routines. 25.Added SSL identifiers $sslversion, $ssldll and $ssllibdll. 26.Added logging dialog option to enable/disable automatic logging of status windows. 27.Changed reload log feature so that it is enabled by default for channels and chats. 16/01/2013 - mIRC v7.29 Changes: 1.Fixed notify list right-click bug that caused the popup menu to not be displayed or to beep in some situations. 2.Fixed /vol -v not setting master volume on newer versions of Windows. 3.Added support for numerics 275 and 276 in whois replies on specific ircds. 4.Extended $os to detect Windows 8. 5.Fixed urls in own messages not being saved to the urls list. 08/12/2012 - mIRC v7.28 Changes: 1.Fixed help file issue that prevented /help command from jumping to the correct location on a help page. 2.Fixed /run command issue that affected backward compatibility with ambiguous parameter formats used in older scripts. 3.Fixed auto-hide nicklist not hiding when mouse is moved outside of the channel window in some contexts. 4.Changed Escape key so that it clears the current editbox if the "Escape key minimizes window" option is not enabled. 5.Fixed channel nicklist popup menu being wrongly displayed when right- clicking in nicklist area and nicklist is auto-hidden. 6.Fixed /exit -r bug not restarting mIRC when scripts editor dialog is open with unsaved files. 7.Updated libraries to zlib 1.2.7. 8.Fixed tips bug that caused tips to flicker briefly in view when the "Hide tips when locked" option is enabled and a message is received while mIRC is minimized and locked. 9.Fixed editbox buffer bugs that appeared in different contexts, such as when combinations of Control+Up/Down were pressed or the editbox contained multiple lines entered with the Alt+Enter key. 10.Changed SSL feature to store SSL certificate hashes cache in the servers.ini file instead of mirc.ini. Also, hashes are now stored for all certificates, good or bad. If a certificate is good but has changed since the last connection, a warning is now displayed. 11.Fixed /hotlink bug that prevented hotlink popup menus from being displayed. 12.Changed display bitmap cache to check if mIRC has been blocked from capturing screen buffer (which can happen with security software). If it has, mIRC reverts to slower, non-cache display method. 13.Fixed full screen menu item not being checked when full screen mode is enabled. 14.Fixed scripts editor bug that caused a freeze when saving popups to a non-INI file in certain situations. 15.Changed font dialog so that when "set as default" is checked, "use default" is automatically checked as well. 16.Fixed maximized window position not being saved when the "on startup minimize mIRC to tray" option is enabled. 17.Fixed socket port allocation bug that would have affected IPv6 connections in some situations. 20/10/2012 - mIRC v7.27 Changes: 1.Added "Mark As Read" menu item to treebar, switchbar, toolbar and MDI popup menus to clear all flashing/highlighted window icons. 2.Extended $hfind() to allow saving of results in a @window (with listbox) or calling a command, using the format $hfind(name/N, text, N, M, @window | command). 03/10/2012 - mIRC v7.26 Changes: 1.Fixed SSL connection issue that prevented mIRC from connecting to servers with certificates that used unrecognized date formats. 2.Fixed hotlink display issue that caused text to flicker when hovering mouse over a link. 3.Fixed SSL support for Subject Alternative Names (SAN) when verifying whether a certificate is valid for the connection. 4.Fixed while loop bug when $& was used to combine conditions across multiple lines. 5.Fixed split long messages color bug. 6.Fixed on HOTLINK gpf bug when /rline was used to modify hotlink line. 7.Fixed reload logs feature not indenting lines correctly. 8.Fixed Find dialog seaching incorrect window if active window changed during a search. 9.Fixed help file bug that may have caused a gpf in some situations when mIRC exited while a help file was still open. 10.Fixed F1 help key not displaying the correct help page for some sections in the Options and Address Book dialogs. 11.Optimized tokenizing routine used throughout mIRC to split space delimited lines. 12.Fixed display bug that may have occurred in rare situations. 13.Updated to PCRE v8.31 library. 14.Fixed $file() not working with directories as in previous versions. 15.Fixed Address Book bug that prevented removal of an existing timed unignore. 16.Fixed channel nick list scrolling unnecessarily during a nick change if a nick was at the top of the list. 17.Changed $mouse.key to report that right mouse button is pressed in the "rclick" hotlink event. 18.Changed incremental search in nickname listboxes so that it works more like Windows explorer. 19.Fixed /run not handling single character input correctly. 20.Changed /localinfo -p to use a random UPnP port outside the first 1056 services port range as some routers block these ports. 21.Changed on HOTLINK event so that /halt in one script does not affect HOTLINK events in other scripts, as with previous versions. 22.Fixed hotlinks not working with &local channel names. 23.Fixed reload logs bug that caused some lines at the end of the log to be excluded in some situations. 24.Fixed reload logs bug that resulted in far less than 500 lines being reloaded into a window. 25.Fixed $inellipse() bug caused by a compiler optimization issue. 13/06/2012 - mIRC v7.25 Changes: 1.Fixed /dline bug when deleting lines from windows containing a large number of lines. 2.Fixed switchbar/treebar blink icons bug that caused some window icons not to blink when they were set to /flash. 26/05/2012 - mIRC v7.24 Changes: 1.Fixed Control+Break key combination issue that caused it to stick if Control key was released first. 2.Fixed halt/haltdef in on RAWMODE and CTCP not working as in previous versions. 3.Fixed Tools/Received Files menu item not working under Wine. 4.Fixed hotlink feature not handling certain characters for addresses and channels. 5.Fixed /drawsave -bN switch not working with .bmp files. 6.Changed list channels "Hide non-text channels" feature to handle multiple channel prefixes. 7.Fixed CTCP script event being triggered in a different way to previous versions. 8.Fixed right-click on nick in channel window not selecting the nick in the channel nicklist. 9.Fixed /fwrite bug that caused a gpf when used with a failed /fopen handle. 10.Fixed 10053 connection issue that occurred on initially connecting to a server that closed the connection immediately. 11.Fixed DCC window bug that resulted in text not being displayed correctly when toggling MDI/desktop mode. 12.Updated to OpenSSL 1.0.1c library. 13.Fixed /flash bug so that flashing an MDI window will display the text message in the mIRC titlebar and flash the window's switchbar icon. 14.Fixed /filter -fs bug that prevented matchtext from being applied correctly when outputting to the status window. 15.Changed editbox so that it beeps at most ten times when the maximum message length is reached. The beep now also respects the "enable sounds" option in the sounds dialog. 16.Changed log view window to not open ontop by default, however you can now set the default ontop state through the system menu as well as save the window position. 17.Fixed on SENDFAIL/GETFAIL events not triggering if a send/get window is closed manually. 18.Fixed track urls bug that prevented it from working if the URL catcher feature was turned off. 19.Fixed away message not being displayed in the correct window during a /whois in some situations. 20.Fixed custom window not remembering font setting when MDI/desktop state of the window is changed. 19/03/2012 - mIRC v7.23 Changes: 1.Fixed DNS gpf bug that occurred in rare situations. 2.Fixed logging bug that occurred when channel/query windows were open and you disconnected and reconnected to a different network. 3.Changed connect behaviour so that all open channel/query windows are automatically closed if you connect to a different network. 4.Added $server(N,group) "group" parameter to allow listing by group, if N=0 returns total servers in group. 5.Changed installer to check if upgrading a "portable" installation and if so, it now enables the "Run as Portable" option by default. 6.Changed /timer handling so that it is now more precise/reliable. 7.Changed the way horizontal scrollbar is updated in channels, urls and links list windows, should now update faster. 8.Added support for channels list numeric 322 that includes channel mode in the topic. The mode is now displayed in its own column in channels list window. 9.Added better portable support for when mIRC is registered and used on more than one computer through file hosting services like dropbox. 10.Changed channel central dialog so that it flickers less during resizing and shows the close button in the top right corner. 11.Improved hotlink support and changed HOTLINK event to only require one event definition to work. on :HOTLINK::<*#?=!@>: $hotlink(item) where item can be: event, line, word, char, match Properties: pos, type The pos property used with line, word, char and match returns the position of the item The type property used with match returns the type of match /hotlink -md [@menu] The -m switch displays the popup @menu in the rclick event The -d switch is used with the -m switch and includes the default popup menu for a match type /return enables hotlink over the current word /halt disables hotlink and allows default processing 12.Updated to PCRE v8.21 library. 13.Fixed SendMessage() memory issue with mapped files. 14.Fixed scripts "file changed" dialog display bug with long filenames. 15.Changed on CONNECTFAIL event to allow access to $server. 16.Added $window().lb returns 0, 1 or 2 depending on whether window contains no listbox, listbox or side listbox. 17.Added a $starting identifier that returns 0 or 1 if mIRC is starting and a $exiting identifier that returns 0, 1 if mIRC is exiting and 2 if mIRC is restarting. 18.Fixed a number of display scaling issues related to non-standard DPI settings in Windows. 19.Updated to OpenSSL 1.0.0f library. 20.Fixed SSL certificate validation bug that may have caused a gpf in some situations. 21.Changed "Shift key enables hotlinks" feature so that a hotlink is enabled/disabled the moment you press/release the Shift key without needing to move the mouse. 22.Fixed scrolling bug in windows with large numbers of lines. 23.Fixed listbox custom menu returning incorrect $0 value if no item is currently selected. 24.Fixed /disconnect and /quit error message when not connected. 25.Added Treebar font option to right-click popup menu. 27.Changed SSL warning dialog and added SHA1 fingerprint and Bubble- babble text. 28.Improved memory handling in event processing routine. 29.Fixed channel modes parsing bug when handling type B mode changes in CHANMODES=A,B,C,D. 30.Added support for incremental search in listboxes, matches against start of text in listbox lines. 31.Fixed /hinc and /hdec bug when used with -b switch. 32.Reverted /fopen -n change that affected older scripts. 33.Fixed @window custom icon not being set when toggling desktop mode. 34.Fixed $width()/$height() not handling quotes around the font name. 35.Fixed $line() not working with DCC chat windows in some situations. 36.Added /toolbar -v switch to enable loading PNG files that use alpha channel transparency. 37.Reverted regex change that caused some expressions to return wrong results. 38.Fixed Options dialog help button not working in some situations. 39.Fixed Control+Minimize password dialog issue when ALT or Windows keys are used while running under Wine. 40.Fixed /flash not handling certain window types. 41.Fixed fileserver not sending long file lists correctly. 13/10/2011 - mIRC v7.22 Changes: 1.Fixed /dns not showing result when non-existent nickname is specified. 2.Changed channel central dialog so that it can now be resized. 3.Fixed text chopping bug that caused outgoing messages to be chopped in some situations. 08/10/2011 - mIRC v7.21 Changes: 1.Fixed numeric 482 bug with text being changed to lowercase. 2.Changed "Minimize to tray" option default to off under Windows 7 due to the way Windows 7 hides all tray icons by default. 3.Fixed $timer().secs bug when /timer HH:nn was used. 4.Fixed /timer -h recursive call bug. 5.Fixed $regsubex() bug when handling empty substrings. 6.Fixed Alt/AltGr bug with different keyboard layouts. 7.Fixed tray icon mouse clicks bug where right/left mouse clicks were not processed correctly. 8.Added "Use compatibility mode" option to SSL dialog. 9.Fixed Servers List popup menu not processing selections correctly in some situations. 10.Fixed servers port cycling not working correctly when a prior connection used SSL. 11.Fixed $strip() bug stripping out all ^O control codes. 12.Fixed "scroll here" bug in window scrollbar popup menus. 13.Fixed MDI icon display bug when toggling full screen mode under Windows 7. 14.Fixed /list bug with min/max values on some networks. 15.Fixed $input() display bug with long strings. 16.Fixed /did bug with -vh and -g switches not working correctly when combined. 07/03/2011 - mIRC v7.19 Changes: 1.Fixed SSL certificate validation bug. 24/02/2011 - mIRC v7.18 Changes: 1.Fixed /window -a focusing bug with maximized MDI windows. 2.Fixed about dialog website header bug. 3.Fixed $findfilen/$finddirn bug with large numbers of files. 4.Fixed identd bug that may have prevented it working in some cases. 5.Updated to PCRE v8.12 library. 6.Fixed MDI client area display update bug with background pictures. 7.The "Check connection time out" option in the Connect/Options dialog has been changed to trigger more often. This should help resolve the 10053 disconnect error that some users have reported. 8.Added support for numeric 481 when issuing a /list request. 9.Fixed /set bug when dividing by zero. 10.Fixed chm/hlp help file opening bug. 11.Fixed /cline not changing line colors in some cases. 12.Updated to OpenSSL 0.9.8r library. 13.Changed text display method slightly to resolve issues for users with certain graphics cards/drivers. 17/12/2010 - mIRC v7.17 Changes: 1.Fixed $sock() saddr/sport bug with UDP connections. 2.Updated to OpenSSL 0.9.8q and PCRE v8.11 libraries. 30/11/2010 - mIRC v7.16 Changes: 1.Fixed hadd/hinc/hdec -cuNz bug that was causing data corruption in hash tables. 2.Fixed server/dcc connection bug that was causing "Address already in use" error message as well as issues with the $portfree() identifier. 3.Fixed custom /dll gpf bug when exiting mIRC for DLLs that were using window/message hooking. 4.Updated to OpenSSL 0.9.8p library. 5.Fixed Alt+Minus key combination issue with screen readers that use Alt+NumberPadMinus for zooming. 6.Fixed window focus bug when zoomed windows were switched/closed. 08/11/2010 - mIRC v7.15 Changes: 1.Fixed window focus bug when mIRC is restored from a minimized state. 2.Changed /ban to allow more channel user modes to use it. 3.Changed $mklogfn() to only return a partial path when the "Make folders" option is enabled in the Logging dialog. 4.Fixed $sfile() and other file dialogs not returning file extensions if "Hide file extensions" is enabled in Explorer in Windows 7. 5.Changed /sockwrite to send data immediately instead of queuing it which should speed up transfers. 6.Added scrollbar buttons back to switchbar when many windows are open. 7.Changed the way mIRC exits when Windows is shutdown which should prevent lost mirc.ini settings for some users. 8.Changed CAP command to not display error message during logon for servers that do not support it. 9.Fixed idle color not being reset immediately when using /msg command. 10.Fixed hadd/hinc/hdec -cuNz bugs, should now work like set/inc/dec. 13/10/2010 - mIRC v7.14 Changes: 1.Fixed mouse drop menu event bug. 2.Fixed $isutf() bug. 3.Fixed /scon recursion gpf bug. 4.Changed /filter to halt only if an alias call returns an error. 5.Fixed /hadd -u bug. 6.Optimized text display caching. 7.Changed file handling to flush files to disk immediately. 29/09/2010 - mIRC v7.12 Changes: 1.Fixed timestamp %variable gpf bug. 2.Fixed /filter recursion gpf bug. 3.Changed /filter to halt processing if alias call fails. 4.Fixed event sounds not being triggered in some situations. 5.Fixed Wine default browser bug. 6.Changed UPnP port closing method for accepted connections. 7.Fixed SSL password dialog gpf bug. 8.Fixed SSL certificate password not being remembered during session. 9.Fixed /.cnick not hiding output. 10.Fixed op/oper check in /ban /pop /omsg /onotice /wallop commands. 11.Changed Alt key to not show menubar if shift/control is pressed. 12.Fixed /filter not being able to handle DCC chat windows. 13.Fixed $sfile() file selection issue under Windows 7. 14.Added support for the window id value, retrieved through the .wid property, to all commands, eg. if $window(name).wid returns N, you can use /echo @N text. Note that custom window names @N where N is a number are reserved for this use. 15.Fixed /sockudp port bug. 16.Fixed editbox menu "Paste" and "Delete" reversed positions. 17.Added check for old popups.ini file with incorrect format. 08/09/2010 - mIRC v7.11 Changes: 1.Fixed scripts editor scrollbar bug when window is resized. 2.Fixed font-linking bug with some combinations of characters. 3.Changed DCC switchbar buttons to display progress bar in different colors to indicate transfer status. 4.Improved DCC Send transfer speed. 5.Fixed $keychar bug in on KEYDOWN/KEYUP event. 6.Fixed $daylight bug. 7.Changed the way links are opened in default web browser. 8.Changed the way non-valid UTF-8 characters are handled in some cases. 9.Fixed $mp3() handling of Unicode tags. 10.Changed $read() to no longer halt script if file does not exist. 11.Changed the foregound/background color correction feature so that it reverts to the line event color. 12.Fixed $sock().saddr/sport bug when using UDP sockets. 13.Fixed $file().size returning 0 for non-existent file. 14.Fixed $ctime() not accepting a/p as shortcuts for am/pm. 15.Fixed text-wrapping display bug. 16.Fixed Find text scrolling too far with wrapped lines. 17.Fixed switchbar buttons focus bug. 18.Fixed /cnick on|off not displaying message. 19.Fixed /uwho copy button not using resources for item text. 20.Changed channels list to show ellipses for long channel names. 21.Fixed hotlink cursor bug with wrapped bold text. 22.Improved WM_PRINT/WM_PRINTCLIENT support. 23.Fixed /bread -t gpf bug. 24.Fixed split long messages action/color bugs. 25.Added new log files dialog, allows you to search log files and to view them in a window in mIRC. 26.Added urls list limit of 8192 links. 27.Fixed custom sockets SSL bug. 28.Added Clear History dialog to Tools menu, allows you to clear the history of a number of features in mIRC. 29.Fixed $cb() line length bug. 30.Fixed $exists()/$file() bug with INI files. 31.Added "UTF-8 encode/decode messages" option to Messages dialog. 32.Added /window -jN switch, sets buffer size for @window to N lines. 33.Changed "/exit -r" to use the -i -r -noreg and -portable switches from the original command line. 34.Changed DNS routines to only request IPv6 if you are using features that require it. 35.Fixed window -h bug. 36.Optimized text display routine, can now display far larger amounts of text without affecting display speed. 37.Optimized /loadbuf routine, can now load files much faster. 38.Optimized memory handling across all routines. 39.Fixed "Save Buffer" bug where wrapped lines were not being saved as single lines. 40.Changed /hinc and /hdec to preserve -u setting. 41.Changed /hadd -u0 to work like /set -u0. 42.Fixed SSL port cycling bug. 43.Fixed /editbox -n focus bug. 44.Extended /editbox -fN switch, where N = 1 sets focus and N = 2 uses editbox with current focus. 45.Added /logview command, views a text file in mIRC using the same method as the Log Files dialog. 46.Fixed AltGr key menubar bug in full screen mode. 47.Fixed reload logs bug with lines prefixed with color codes. 48.Updated libraries to PCRE v8.10 and zlib 1.2.5. 49.Extended maximum window buffer limit to 50000 lines. 50.Added support for ANSI italic control codes. 30/07/2010 - mIRC v7.1 Changes: 1.This is the first stable release of the new Unicode version of mIRC. The project to convert mIRC to Unicode has taken almost two years of development and testing and has required tens of thousands of changes to 150,000+ lines of source code. This has been the most complex and time-consuming update to mIRC since it was created in 1995, when it started out as a non-Unicode, 16-bit, Windows 3.1 application. Many areas of mIRC have had to be updated or re-written, from file handling to text processing, from display to memory allocation, from server communications to file transfers. mIRC should now be faster, more stable, and more compatible with the latest versions of Windows, and should be able to better handle the display and input of a variety of languages. In addition to being converted to Unicode, there are a few other notable changes: Improved Windows 7 compatibility More reliable INI file handling Faster text display/scrolling Speech support Improved interface design for a number of features Automatic text color correction Menubar Alt key show/hide feature Support for italic text and other font styles Optimized SSL routines Status window SSL connection icon IPv6 support Improved portable support Persistent channel history Digitally signed executables Automatic splitting of long channel/private messages Full screen display with F11 function key UPnP support Many bug fixes And more For a full version history of mIRC v7.x development, please see the list of changes starting with v7.0. 21/07/2010 - mIRC v7.08 Changes: 1.Fixed Unicode surrogates bug. 2.Changed Port dialog bind address editbox to allow entry of longer addresses. 3.Fixed Unicode and color codes text-wrapping bug. 4.Extended /tokenize to accept Unicode characters as delimiters. 5.Fixed log files corruption bug. 09/07/2010 - mIRC v7.07 Changes: 1.Fixed /showmirc -s bug with maximized windows. 2.Fixed INI routines quote handling bug. 3.Fixed F11 full screen gpf bug when many windows are open. 4.Changed folder selection dialog to allow editbox input. 5.Fixed /timer -h consistency bug. 6.Fixed window vertical scrollbar bug when lines were trimmed due to exceeding maximum buffer size in some situations. 7.Fixed transfer windows displaying & characters as accelerators. 8.Changed scripts editor to display message when desktop setting is changed. 9.Fixed iswm bug where * wildcard was not matching $null. 10.Added $mouse.cx/cy properties to return cursor position relative to primary monitor. 11.Fixed /bwrite file pointer bug. 12.Fixed $window().dx/dy bug. 28/06/2010 - mIRC v7.06 Changes: 1.Changed "Split long channel/query messages" option to handle action messages and to ignore other CTCP messages. 2.Updated to OpenSSL 0.9.8o library. 3.Changed CAP event handling so that scripts can no longer prevent the CAP reply from being sent. 4.Fixed find text dialog not matching text in wrapped lines. 5.Fixed /timer parameter error handling and display. 6.Fixed display width of some characters when using monospace fonts. 7.Fixed hotlink cursor not being updated in some situations. 8.Added support for full screen display with F11 function key, /showmirc -f switch and $appstate value "full". 9.Fixed switchbar separator display bug. 10.Fixed main window system menu bug when main menubar is hidden. 11.mIRC now remembers if MDI windows were maximized on exit and opens them maximized on next startup. 12.Fixed /signal -n recursion gpf bug. 16/06/2010 - mIRC v7.05 Changes: 1.Extended editbox history to 100 lines. 2.Extended /sockread to read more than 4096 bytes at a time. 3.Changed INI routines to enclose data in quotes if it contains any non-printable characters, ie. less than $chr(32). 4.Fixed INI routines not saving comments within topics correctly. 5.Fixed INI routines bug that would have resulted in a random gpf in some situations. 6.Extended $mask() to handle IPv6 addresses. 7.Fixed $gmt and other time-related identifiers to correctly include timezone and daylight offsets. 8.Fixed $asctime(zzz) bug. 9.Added /localinfo -p switch, uses UPnP to look up and set your local info settings. 10.Changed $utfencode()/$utfdecode() to handle the C script/codepage parameter correctly in text that contains Unicode and UTF-8. 11.Fixed variables not being sorted correctly when sort button is used in scripts editor. 12.Added /bwrite -t switch, interprets text value as plain text and does not evaluate &binvar variables. 28/05/2010 - mIRC v7.04 Changes: 1.Added UPnP support. The Ports dialog allows you to enable UPnP support for retrieving your external IP address, the identd server, DCC connections, and the DCC server. The first three options are enabled by default. mIRC marks UPnP ports that it opens as "mIRC". It closes UPnP ports the moment they are no longer needed. If mIRC is connecting to multiple servers at the same that use both IPv4 and IPv6, the UPnP port for the identd server will only be able to handle either IPv4 or IPv6 at any one time, since a UPnP port can only be bound to one address. If you make any changes to the UPnP options in the Ports dialog, mIRC performs a quick check to see if UPnP is available and will warn you if it is not. 2.Added /socklisten -p switch to enable UPnP support for a listening socket. 3.Changed hotlink feature to handle more formats. 4.Fixed /clear -g switch bug. 5.Optimized display routine to use bitmap caching more efficiently. 6.Changed the way a server connection is closed after sending /quit to make disconnection more robust/graceful. 7.Added check for empty servers list. If servers list is empty, mIRC looks for the "defaults" folder and copies the servers.ini from there to the data folder. 20/05/2010 - mIRC v7.03 Changes: 1.Changed DCC Send/Get windows to show long progress bar when window is maximized. 2.Changed DCC Send/Get switchbar buttons to display progress bar in black during transfer and grey when finished. 3.Fixed /fseek line matching bugs. 4.Optimized BOM-checking in file routines, should have minimal impact on read/write speed now. 5.Fixed $dns().ip bug when resolving an IP address. 6.Changed Control+N back to shortcut for channel switching. 7.Added "Split long channel/query messages" option to Messages dialog. If a message is long enough that it might be chopped by the maximum server line length, it is sent as mutliple lines. 8.Fixed font bug with reading font settings from mirc.ini. 9.Optimized display routine, should be faster in some situations. 10.Changed richedit editbox support back to riched20.dll since it seems to be faster and more reliable overall. 11.Optimized the way scripts are loaded into scripts editor editbox. 12.Fixed INI file handling bug when reading section/item/data that are enclosed in quotes. 13.Fixed hotlink feature not handling single-word hostnames. 14.Changed $utfencode/$utfdecode to return input text if they are unable to encode/decode the text instead of returning an error. 15.Changed the way the file routines set end-of-file and error, should behave more like older versions now. 16.Added /raw -n switch to prevent characters in the range 0-255 being UTF-8 encoded when sent to the server. Also added a $rawbytes identifier that returns the incoming server message prior to any parsing/decoding. 01/05/2010 - mIRC v7.02 Changes: 1.Added Unicode/UTF-8 BOM support to file routines. This applies to all files that are read or written as text, including INI files. 2.Changed DCC Send/Get windows to allow full filename to be viewed when window is resized. 3.Changed DCC Get to open download file with exclusive write access. 4.Added support for detecting Wine so that mIRC can use alternative code for features that need it. Around fifteen separate workarounds were implemented. Features that could not be made to work reliably (richedit editbox support and playing mp3 and mid files) are now disabled. 5.Changed mouse wheel scroll method in the scripts editor editbox to allow faster/smoother scrolling. 6.Fixed system shell DDE messages bug. 7.Changed font-linking implementation slightly, should be faster and support more characters. 8.Added support for /dns $server to fill $serverip for SOCKS5 users, though note that this results in a DNS leak. 9.Fixed treebar background update bug. 10.Optimized display routine, should now be faster when displaying control codes. 11.Fixed $regml().pos bug. 12.Added Names dialog back to Display options dialog. 13.Fixed /sockudp -k bug. 14.Fixed line colors parsing bug when reloading log files. 15.Fixed query flood check bug. 15/04/2010 - mIRC v7.01 Changes: 1.Changed the way fonts are set for editboxes in windows and in the scripts editor. This should resolve issues for users who are seeing the font change when they enter text. 2.Changed the foregound/background color correction feature so that it no longer applies if a ^K background color is specified. 3.Fixed /filter gpf bug. 4.Fixed /fopen gpf bug. 5.Changed $input() icons default sound behavior. 6.Fixed text display bug where last character was not entirely visible in some situations with certain fonts. 7.Changed toolbar and switchbar to not display separators when background picture is used. 8.Fixed timestamp bug where the timestamp was not being displayed if a Unicode character was used in the format string. 9.Changed numeric 451 "You have not registered" message for the "CAP" request to no longer be displayed when connecting to a server. 10.Fixed DDE support. Most applications, such as web browsers, can only reply to ANSI DDE requests, so mIRC now sends DDE requests in ANSI as opposed to Unicode. mIRC can now reply to both Unicode and ANSI DDE requests. 11.Changed identd default behavior when choosing userid from email address or identd userid field. 12.Fixed $ini()/loadbuf combination bug that was fixing/updating an incorrectly formatted INI file even though it was only being read by the script. 13.Changed /filter to allow output to the NUL device. 14.Fixed "End of /MOTD" message not being displayed in some cases. 15.Fixed /speak not working with older voices/engines. 16.Fixed /sockwrite -n and /write -a CRLF bugs. 02/04/2010 - mIRC v7.0 Changes: 1.mIRC is now a Unicode application. 2.mIRC now uses its own custom INI routines to ensure more reliable INI file handling. They should work almost identically to the standard Windows INI routines. 3.Changed the way microsoft agent is detected by checking for folder instead of loading agent to cater for Windows 7 issue. 4.Added a bitmap cache to speed up window text display. Depending on the font you are using, your cleartype settings, and/or your cpu speed, you should see a significant increase in display speed of text in all windows. 5.Fixed scripts editor not filling as much of the editbox buffer as it could (up to maximum size of 500k) when reading a file. 6.Updated to PCRE library v8.02 and enabled Unicode/UTF-8 support. 7.Fixed /drawrot gpf bug. 8.Fixed tooltips cpu usage bug under Windows 7. 9.Fixed switchbar/toolbar button sizes under Windows 7. 10.Fixed multi-monitor popup menu bug when second monitor was placed to the left of the main monitor. 11.Now using gdi+ for picture loading/saving. 12.Fix internal http routines not handling redirects correctly. 13.Updated to SAPI5+ speech and voice commands to make them work with Windows 7. 14.Added Speech dialog to Sounds dialog. This replaces the Agents dialog which is no longer supported by Windows 7. If mIRC notices that Agents are available on your version of Windows, the Agents dialog option will still be available. 15.Added /speak -spclu [speed] [pitch] [text] command which speaks the specified text, where the switches are: -s = speed (0 to 100) -p = pitch (0 to 100) -c = clear all queued lines -l = apply lexicon settings in speech dialog. -u = apply option settings in speech dialog You can use $speak(N) to list all lines that are currently queued for speaking through the /speak command. If N = 0, returns total number of queued lines. 16.Extended maximum incoming server line length from 600 to 1024 bytes. 17.Fixed default notify sounds not being saved with relative path. 18.Fixed popup loading bug when a file contains empty lines. 19.Fixed on CLOSE event bug with status window requiring * prefix. 20.Extended on CLOSE event to work with channels. 21.Changed on OPEN/CLOSE events to handle parameters like other similar events. This should not affect existing scripts. 22.Added scripts editor file menu options "Rename" and "Delete". 23.Added [about] portable=[yes|no] item to mirc.ini that allows you to enable portable mode more easily on usb drives. 24.Changed mouse wheel routine to correctly handle faster/slower scrolling. 25.Added CAP LS protocol support. mIRC now sends "CAP LS" as the first line when connecting to a server before sending NICK/USER to logon. Currently enables "multi-prefix" and "packet-size=1024" if they are available. 26.Fixed listbox item height in Control/Color/Highlight dialogs. 27.Fixed text display being clipped incorrectly when using certain fonts. 28.The Channels List window now updates the horizontal scrollbar on-the-fly to avoid the display freeze after listing a large number of channels. 29.Fixed some controls not being disabled in Lock dialog when lock is enabled. 30.When clicking reset button in Colors dialog, colors are now reset to the most recent active settings for that theme. 31.mIRC now skips sending "mode +i" on connect if it has already been set automatically by the server. 32.Changed the design of some of the dialogs in the Options dialog, the DCC Send/Get dialogs, and others. 33.mIRC no longer requires Full Name and Email Address to be filled in the connect dialog and sends default values if left empty. 34.On connecting to a server, if both nick and alternative are in use mIRC appends a random number to your nickname and tries again. 35.Changed /debug windows to no longer interpret colors. They now display control codes as plain text. 36.Changed USER/NICK logon method to comply with RFC2812. 37.Changed switchbar DCC Send/Get button progress bar, now displays a small bar under the text. 38.Optimized Unicode font-linking routines. 39.Now using Visual Studio 2008 to compile mIRC. 40.Added WM_PRINTCLIENT support to a number of controls including the toolbar, switchbar, and treebar. 41.Renamed "download" folder to "downloads" in line with other folders. 42.Fixed /debug windows log menu not being set correctly. 43.Fixed mIRC main window system menu not being set correctly when the menbuar is disabled. 44.Renamed "Firewall" dialog "Proxy". Replaced /firewall command with /proxy although /firewall is still supported. 45.mIRC now disables the proxy if it is enabled in the proxy dialog but no address is provided and a SOCKS_HOST environment variable does not exist. 46.Added menbuar auto-show/hide feature that displays the menubar when you press the Alt key and hides it afterwards. 47.Keyboard focus now automatically switches to the treebar if all other windows are minimized. 48.Fixed PCRE gpf bug when expression results in heavy recursion. 49.Changed switchbar to display transparent buttons when a background picture is selected. 50.Added support for all available font styles, such as italic and semi-bold, in font dialog. 51.Added support for Control+I key combination to make italic text using control code 29. 52.Added support for DLLs that use Unicode routines. By default mIRC assumes that DLL routines are ANSI for backward compatibility. However a DLL can enable Unicode support by setting mUnicode to TRUE in the LOADINFO structure: typedef struct { DWORD mVersion; HWND mHwnd; BOOL mKeep; BOOL mUnicode; } LOADINFO; 53.Added SendMessage WM_MEVALUATE/WM_MCOMMAND support for Unicode. By default mIRC assumes that mapped file data is ANSI for backward compatibility. However an application can "or" the value 8 in the cMethod parameter to specify Unicode data. 54.Changed display behavior for a number of dialogs, such as the DCC Send/Get dialogs, so that buttons are now disabled for a short time when the dialogs are displayed to prevent accidental typing. If the user is typing, the buttons remain disabled until the user stops. Added a 'b' switch to $input() and an "option disable" property to custom dialogs that enables this behavior. 55.Fixed treebar display bug when displaying DCC window names. 56.Changed scripts editor Order dialog to automatically select the active script in the listbox on opening. 57.Updated editbox in all windows and scripts editor to use richedit 4.1 msftedit.dll for improved Unicode support. If not available reverts to riched20.dll. 58.Changed line numbering method in scripts editor, uses more reliable method that is independent of editbox. 59.Changed status window icon to display a yellow lock when on a secure connection using SSL. 60.Fixed Control+K color dialog centering bug. 61.Changed servers list sorting method so that the networks listed in the [networks] section of servers.ini are now placed at the top. 62.Changed DCC Send/Get transfer windows default font, now uses the system dialog font. Also switched to appropriate system font for measurements in features such as $input() and popup menus. 63.Changed design of DCC Send/Get transfer windows, interface is now clearer and the display updates once a second. 64.Changed flood protection to begin working only after receiving the first numeric to prevent logon issues in some situations. 65.Changed design of the File Type warning dialog, now clearer and also shows the file extension that was ignored. 66.Optimized the way line indentation works, such as for /echo -iN, and other displayed lines. 67.Improved tab and indent spacing measurement method for both fixed and non-fixed width fonts. 68.Improved text-wrapping at whole word boundaries, and now wraps at both spaces and commas. 69.Numeric 422 "MOTD file is missing" message is no longer displayed when first connecting to a server. 70.Fixed proxy errors not being displayed correctly in some situations. 71.Added a bind listbox to the Connect/Options/Ports dialog that lists all active networks interfaces for easy selection. It still allows you to enter an IP address as well. 72.Updated /dns command, now multi-threaded, resolves concurrently, and can return both IPv4 and IPv6 addresses. By default, /dns only returns IPv4. You can use the switches -46 to return a combination of IPv4 and IPv6 addresses. 73.Added support for IPv6 connections. By default, mIRC will always use IPv4, so IPv6 support must be explicitly enabled using one of these methods: 1) Enable IPv6 support in the Connect/Options/Ports dialog. This allows mixed IPv4 and IPv6 connections, with IPv6 taking priority in DNS resolution. This means that if you try to connect to a server that has both IPv6 and IPv4 addresses, mIRC will try IPv6 first. 2) The bind option in the Connect/Options/Ports dialog. If you specify an IPv4 or IPv6 adapter/address, DNS resolution and all connections will be made based on the adapter/address type. If you explicitly specify an IP address for a connection, such as a /server or DCC connection, it overrides this setting. 3) The /server command with switches -46 to force DNS resolution to return either IPv4, IPv6, or both. If you specify an IP address, it overrides the switches. The server window will use the requested DNS method for all subsequent connections until you change it with the /server command. Note: in order to use IPv6, both your version of Windows and your Internet connection must support IPv6. 74.Added $iptype(text) identifier, returns "ipv4" or "ipv6" if text is is a valid IP address format. With IPv6 addresses, the properties .compress and .expand can be used. 75.Added cue text (optional) to Connect dialog for user name and email address. 76.Extended $portfree(port,ip) so that you can specify an ip address. If not specified, all active interfaces are checked as before. An adapter name can also be used instead of an ip address. 77.Added $bindip(N|ip) identifier. If N is specified, lists active network adapters with properties .name, .ip, .loopback. If an ip address is specified, returns best adapter for connecting to that ip address. 78.Updated to OpenSSL 0.9.8n library. 79.Updated installer to offer a portable install option that can be used to run mIRC on a USB flash drive. 80.Added support for whois numeric 729. 81.Added "Invalid certificate" disconnect message in the event of an SSL connection failing due to an invalid certificate. If there is a DNS pool, mIRC will now continue to retry the connection. 82.Changed /localinfo to report an error if you try to use an invalid switch. Also fixed /localinfo not setting/saving the local info results correctly across server windows. 83.Fixed hotlink shift-key display bug. 84.Fixed logfile bug when window is switched between MDI/desktop. 85.Added $file().sig property, checks digital signature of a file. 86.Added check for foreground/background colors in control codes in text. If they are the same, the foreground color is changed to ensure the text is visible. 87.Changed color dialog behavior: if you delete all schemes, the default schemes are added back to the list. 88.Changed position of history menu in file and favorites menus. 89.Added /close -t switch, closes all status windows. If used with -i switch, closes only if not connected/connecting to a server. 90.Channels history is now saved across sessions to the [chanhist] section in mirc.ini. 91.Fixed tips display bug that caused tip width to be smaller than necessary, shortening the title text. 92.Fixed SSL warning dialog bug, was not showing the actual error message in some cases when a certificate error was detected. 93.Fixed /var gpf bug. 17/10/2008 - mIRC v6.35 Changes: 1.Fixed nickname bug where very long nicknames (hundreds of characters in length) sent by the server would cause mIRC to gpf. 2.Updated to PCRE v7.8 and OpenSSL 0.9.8i libraries. 3.Added scripts editor option to disable line numbers. 4.Fixed /toolbar bug where setting a bitmap for a default button was not working correctly. 5.Added custom dialog support for "rich" editbox property that allows an arbitrary "limit" on the amount of text. 6.Fixed window listbox display bug when moving the horizontal scrollbar all the way to the right. 08/08/2008 - mIRC v6.34 Changes: 1.Fixed if/while bracket priority bug which affected the parsing of if/while statements. 2.Fixed text display bug where the last character in a line was being chopped off. 3.Changed the fast update display method. 4.Fixed tips display bug. 5.Fixed copy messages to query bug. 6.Fixed /drawrot rounding error bug. 7.Fixed treebar/switchbar server sorting display bug. 18/07/2008 - mIRC v6.33 Changes: 1.Fixed $istok() not returning error if too many parameters supplied. 2.Fixed /scon returning wrong error message. 3.Fixed window positions not being saved correctly for certain types of windows. 4.Fixed tab completion issue with long text/identifier values. 5.Fixed Channel Central dialog excepts/invites bug, now looks for +eI modes in the CHANMODES token as well as EXCEPTS and INVEX tokens. 6.Fixed reload logs feature displaying session information twice on reloading a log file. 7.Fixed $calc() returning +/-0 in some situations. 8.Improved handling of hotlinks enclosed in brackets. 9.Fixed server ports bug when using toolbar connect button. 10.Fixed color display bug in tips title/message text. 11.Fixed text display bug due to incorrect text width measurement with some fonts/characters, now using new method to measure text width. 12.Changed $window().sbstate/tbstate to return button status even if the corresponding bar is hidden. 13.Fixed $hfind/$regml regex bug. 14.Fixed channels list window focus bug when getting list. 15.Fixed scripts editor editbox warning to take account of long wrapped lines. 16.Fixed window focusing bug in certain situations. 17.Fixed /toolbar load/save bug with @window parameters. 18.Fixed /did -d CRLF bug. 19.Fixed picture @window popup menu bug under Vista. 20.Added support for the transfer of files larger than four gigabytes. This required the following extension to the DCC transfer protocol: If mIRC sees that it is sending or receiving a file with a size larger than a 32bit value, it sends and expects to receive 64bit acks. In all other respects, the protocol is unchanged. Note that all previous versions of mIRC are unable to either send or receive such large files. 21.Changed file transfer CPS calculation method, now reflects the real average CPS over the last few seconds. 22.Improved the way the "Total Max Cps" feature throttles transfer speeds. 23.Increased the maximum allowed DCC Send packet size. This may or may not improve speed depending on your connection type. 24.Fixed DCC Send/Get bug where files of zero bytes in size could not be transfered. 25.Changed DCC Send so that it now always sends packets ahead of acks. This means that even if it receives no acks at all, mIRC will still transfer the file. If "Fast Send" is enabled, mIRC will attempt to send packets as fast as it can. 26.Fixed regex identifiers hiding output of called identifiers by default - they now require . prefix in calling alias. 27.Fixed /server switches not being remembered on an automatic retry connection attempt after a disconnection. 28.Fixed server connection not remembering SSL status if you disconnect and then reconnect to a server. 29.Fixed switchbar display button-sorting display bug. 30.Added $window().tbtext for window treebar text. 31.Added /editbox -vqN switches, where -v prevents the editbox contents from being changed and -qN enables/disables/toggles second editbox. 32.Added /var -g switch, sets global variable values. 33.Added $timer().pause property. 34.Added $input() 'm' switch which allows you to include multiple "text" parameters and to display them in a combobox. The first text item is the default item, the rest are the items in the list. 35.Fixed /log on command bug not using logs folder. 36.Optimized text mark/copy routine. 37.Added track urls warning when feature is enabled via system menu. 38.Changed Unicode display method slightly - mIRC now preloads the cache with the default system Unicode font and various other Unicode fonts if they are found on your system. 39.Fixed if/while bracket parser bug. 40.Added $chan/query/send/get/chat .idle properties. 41.Added editbox "automatic" lines feature to display/options dialog that dynamically changes the size of the primary editbox to show all of your typed text, up to half the size of the window. 42.Extended /window -eN switch where 0 = single, 1 = multi, 2 = auto, and 3 = default. 43.Changed Control+Home/End key behavior so that they move the cursor if you are editing text in a multi-line editbox, otherwise they scroll the display buffer. 44.Updated to OpenSSL 0.9.8h library. 45.Changed Enter key behavior in multi/auto editbox so that it sends a line when pressed in the middle of a line. To insert a line you can use the Alt+Enter key combination. 46.Changed Status Window editbox to reflect single/multi/auto editbox settings. 47.Fixed UTF-8 text-wrapping display bug. 48.Fixed SSL certificate caching bug when maximum cache size exceeded. 21/05/2008 - mIRC v6.32 Changes: 1.Fixed /did -o CRLF bug. 2.Fixed /log -f not being able to handle quotes. 3.Fixed /toolbar default icons bug with toolbar background pictures. 4.Fixed notify icon white pixels bug with a black background in the treebar. 5.Fixed scripts editor buttons not displaying icons when running under Windows Vista Classic Theme. 6.Fixed listbox height in SSL dialog. 7.Fixed script initialization warning bug. 8.Changed /drawpic bitmap allocation method to speed up @window displays. 9.Fixed $tip help file bug. 10.Fixed /toolbar not being compatible with toolbar buttons bitmap. 11.Updated to PNG 1.2.29, PCRE v7.7, and OpenSSL 0.9.8g libraries. 12.Standardized and extended string lengths throughout mIRC to allow the use of longer variables, channel and nick names, and other items. 13.Optimized $strip() control codes routine, used through-out mIRC. 14.Added "Check for Updates" item to Help menu. mIRC also checks for updates once a day on startup. This can be turned off in the updates dialog. 15.mIRC now displays the wait cursor when dialogs are opened and closed as a busy indicator, mainly for when mIRC is run from a USB drive. 16.Fixed /drawrot -b background color bug. 17.Fixed text display moving backwards bug with certain fonts. 18.Fixed mouse wheel handling to properly process slow/fast scrolling with high resolution mice. 19.Fixed status window log menu bug on a clean install. 20.Fixed blank lines in window listboxes not being displayed correctly. 21.Added /set -k switch, keeps current -uN setting for a variable. Also added $var().secs, returns unset time. 22.Fixed handling of negative range values in token identifiers. 23.Added $reptok() and $remtok() support for N = 0 to apply to all matching items. 24.Fixed $* bug when used with $() identifier. 25.Fixed scripts editor editbox responding to control+mouse wheel to change font size, can only change through font dialog. 26.Fixed /tips setting not being remembered on a restart. 27.Fixed listbox windows display bug when using double-space/paragraph spacing. 28.Fixed double-space/paragraph settings not being set correctly when a window is first opened. 29.Fixed /drawcopy -t bug. 30.Fixed $mp3() handling of Unicode tags. 31.Added support for network-specific window position saving. 32.Changed INI update routine, now only writes an item to the file if it is in fact different in the file. This minimizes file updates. Added mainly for USB drive users. 33.Changed reload log feature to only reload a maximum of 500 lines. 34.Changed window buffer routine so that it removes whole lines from the top of the buffer instead of partial lines. 35.Fixed scripts editor shortcuts not working when other dialogs open. 36.Fixed MDI flickering bug when "Move status window to top" option is enabled in Window Order dialog. 37.Fixed treebar focus bug when selecting item in treebar while mIRC is not active application. 38.Fixed $mp3() handling of malformed mp3 headers. 39.Fixed multi-byte text-wrapping display bug. 40.Fixed minor bug in UTF-8 selective encoding routine. 41.Changed Channel Central design slightly. Checkboxes are disabled if you are not an op and the Excepts and Invites buttons are disabled if numeric 005 does not list EXCEPTS and INVEX tokens. 42.The multibyte editbox is now enabled by default for new installs. 43.Changed tab completion so that it leaves the original text intact if it evaluates to $null. 44.Fixed /drawcopy not reporting an error in some situations. 45.Fixed MDI window background display bug. 46.Added /dialog -g to change dialog name. 47.Added /menubar /toolbar /switchbar /treebar [on | off] commands and $menubar, $toolbar, $switchbar, $treebar identifiers. Also added $compact identifier to indicate normal/compact mode. 48.Fixed window scrollbar bug with large numbers of lines. 49.Fixed scripts editor toolbar button not reflecting on/off settings for events in some situations. 50.Fixed text in custom @windows being chopped at tab stops. 51.Added /window -M switch, chops text at tab stops. 52.Fixed random delay auto-op/voice bugs. 01/11/2007 - mIRC v6.31 Changes: 1.Fixed tooltips bug in toolbar. 2.Fixed /background window name bug. 3.Fixed remote.ini scripts folder bug. 4.Fixed dns pool message bug during connect retry. 5.Fixed notify window taking focus every time you connect to a server. The notify window also no longer automatically closes when you disconnect from all servers. 6.Fixed tips control codes bug. 7.Fixed if/elseif error display bug. 8.Fixed /window -dh not hiding desktop window. 9.Changed $tip() $null parameters so that they are now optional. 10.Fixed scripts editor Windows taskbar display bug. 11.Fixed /dll gpf bug with self-calling dlls. 12.Fixed on START event not being triggered before all other events on startup for loaded scripts. 13.Fixed while loop break/continue bugs. 14.Fixed /writeini error handling bug. 15.Fixed ial not being updated by protect/ignore/etc. commands. 16.Added @wid support to /setlayer. 17.Added /tips [on|off] and $tips identifier. 18.Added "Hide tips when locked" option to lock dialog. 19.Fixed editbox/listbox focus bug when switching windows. 20.Fixed $inellipse() bug by enabling floating point consistency option in compiler. 21.Fixed /hinc bug. 22.Fixed -nouninst backward compatibility bug. 23.Fixed flickering in channel nickname, channels list, and all other window listboxes. 24.Changed scripts editor interface slightly, now cleaner and easier to read. Added Check Bracket/Sort Variables items to Edit menu, line numbers to margin, and enter/home key indentation support. No longer flickers when resized. 25.Updated to PNG 1.2.22 and PCRE v7.4 libraries. 26.Fixed double-click on treebar notify nicks bug, now triggers correct Clicks dialog notify list alias. 27.Fixed on ^filesent/rcvd not /halting text bug. 28.Fixed treebar notify nicks menu not having $1 set as nick. 29.Fixed installer bug with mIRC/help file not being launched on install completion. 30.Fixed Unicode encoding bug when pasting large amounts of text. 31.Fixed Unicode not being copied to clipboard correctly from a @window with no editbox. 32.Changed right-click behavior in custom dialog listboxes to allow selecting an item without checking its radio/check box. 33.The default text for /list numerics 321 and 323 can now be halted. 34.Added SSL option to automatically accept invalid certificates. 35.Fixed @window tabs display bug. 36.Tips now shade each alternate message that is added to an existing tip to make it easier to distinguish individual messages. 37.When bars are locked the drag bars are now hidden from view. 38.Added /abook -h switch to open highlight dialog. 39.Fixed background picture display bug when loading large images. 40.Fixed line width/height measurement bug in @windows, now the same as non-@windows. 41.Fixed /splay and /sound error display bug. 42.Fixed saving tray/maximized window state bug. 43.Fixed /drawtext clipping bug when using tabs. 44.Fixed tray icon click multi-monitor bug. 45.Fixed reload log files bug when lock log files option is enabled. 46.Fixed Editor "Monitor File Changes" memory bug. 47.Changed behavior of "Hide minimized desktop windows" option so that query, message, and chat windows remain visible when they are first opened minimized on the desktop. 48.Fixed /hinc and /hdec maximum value bug. 49.Fixed clipboard handling bug. 50.Fixed $longfn() routine not appending / slash to the result when it is a directory. 51.Updated the mIRC icon and over seventy other icons in the toolbar, switchbar, tray, and window icons. 52.Fixed treebar focus bug when selecting item in treebar while mIRC is not active application. 53.Fixed some settings in editor dialog not being remembered if it was closed using the cancel button. 54.Fixed favorites dialog gpf bug when editing folder name. 16/08/2007 - mIRC v6.3 Changes: 1.Fixed /var bug when parsing multiple $identifiers() on one line. 2.Fixed /auser bug halting script if user already existed. 3.Fixed /toolbar -fl bug when an item in toolbar.ini contained a popup @menu. 4.Fixed custom DLL delay-unload feature so that it is only applied when mIRC exits. In other cases, the DLL is unloaded immediately. 5.Fixed mIRC always forcing an SSL +port if the last connection was an SSL +port. 6.Fixed popup menu positioning bug when pressing spacebar to display popup close to edge of Windows desktop. 7.Fixed $inroundrect() and $inellipse() bug. 8.When connecting to a round robin dns pool ip address the original connect address is now remembered and the connect message now has "dns pool" appended to it. 9.Fixed round robin dns pool ip address bug with SSL connections not remembering original host address during verification. 10.Fixed /queryrn bug not renaming same name with different case. 11.Fixed right-click popup menu selections not working correctly under Vista in some cases. 12.Fixed Servers List popup menu not displaying items correctly. 13.Fixed firewall password corruption bug. 14.Fixed scripts editor minimize/restore bug. 15.Fixed $sin/$cos/etc. rounding errors. 16.Fixed ? marked urls being deleted incorrectly while mIRC was running. 17.Fixed color codes not being processed properly in wrapped lines in some situations. 18.Fixed URL links not being opened with default browser under Vista. 19.The -r command line switch behavior has been changed so that if no path is specified after -r, mIRC will use the executable path. 20.For Vista compatibility, new installations of mIRC now save all settings in the User's "Application Data\mIRC" folder by default. However, if the installer or mIRC find mirc.ini in the same folder as mirc.exe they will use the mirc.exe folder for all settings. Users installing over an old version of mIRC should therefore see no change in behavior. The installer is now also aware of administrator and standard user accounts and installs mIRC accordingly. 21.Fixed command prefix /!. parsing inconsistencies across routines. 22.Fixed "// echo hello" being parsed as "//echo hello". The parser now halts parsing of empty // commands. 23.Fixed reload logs bug, was loading logs in wrong order. 24.Fixed on KICK event clearing $chan/$nick too early when you are kicked from a channel. 25.Fixed /drawtext color parsing bug in picture @windows. 26.Fixed /toolbar -fs bug, icon size was being saved incorrectly. 27.Fixed servers dialog intermittent gpf bug when sorting servers. 28.Fixed /dcc send -l and -m parsing bugs. 29.Fixed irc:// links not working under Vista. 30.Changed registry handling to ensure that mIRC works the same way whether run under administrator or standard user accounts. mIRC no longer updates the Uninstall section of the registry to point to the currently running mIRC, the Uninstall section is now only set by the installer. Removed -nouninst command line switch since this is no longer applicable. Also irc:// links are now only added to the Current User registry, not the local machine registry and this is only done when mIRC is run, not by the installer. The -service command line switch has been removed from the help file though it is still supported under 95/98/ME. 31.mIRC no longer uses an internal uninstaller, instead the install program now places an uninstall.exe in the mIRC folder. 32.Fixed dialog table definition not being able to call local aliases if dialog was opened from the command line. 33.Extended custom dialog "tab id" parameter to allow id to be an alias/identifier. 34.Fixed comments not being parsed correctly in the users list. 35.Fixed mouse cursor display bug during mark/copy. 36.Added internal U3 support to mIRC. mIRC looks for these command line parameters -appStart, -appStop, and -hostCleanUp, and looks for U3_HOST_EXEC_PATH and U3_APP_DATA_PATH environment variables. 37.Fixed INI storage bug when using -portable switch. 38.Changed -portable command line switch behavior. Now makes mIRC both 1) avoid use of the registry and 2) use the executable folder as the mirc.ini folder. 39.Fixed /if parser not reporting invalid operator for => and =<, and added not support for !> !<= etc. 40.Fixed window display bug when rejoining an already joined channel. 41.Fixed /writeini and /remini not reporting an error if they were unable to write to the file. 42.Added support for positioning Treebar at top/bottom of mIRC window. 43.Added support for network specific notify nicks. If no network is specified, nick is used on all networks. Extended command to /notify -n [network] [note], where -n indicates network has been specified. Also added $notify().network. 44.Changed "Received Files" explorer display to show folders pane. 45.Notify/Urls list windows are now displayed in both the treebar and the switchbar. 46.Changed the way the notify list window is displayed on connect. 47.Added -noreg command line switch to make mIRC avoid use of the registry (to make up for old -portable behavior). 48.Fixed $input() dialog (and other windows) not being centered on desktop correctly if main mIRC window was minimized. 49.Added support for numeric 005 TARGMAX and MAXTARGETS tokens when sending privmsgs and notices in /amsg, /ame, /qme, /qmsg, /omsg, and /onotice. 50.Fixed notify list routine that was not correctly optimized, may have led to high cpu usage/interface lag for some users. 51.Fixed various dialogs opening centered in main window when opened with keyboard shortcuts, eg. Alt+O, Alt+B, etc. 52.Added support for notify list display in treebar, option enabled via treebar popup menu. 53.Added treebar menu option to use System menus or Window menus for right-clicked treebar items. System menus are the default. Toggle by holding shift key while right-clicking. 54.Added $menutype and $menucontext to supplement $menu. They are available during popup menu creation and indicate the menu type and context of the menu being created. 55.Changed left-click method on treebar items, it takes one click to open and close windows now. 56.Fixed issues with /mkdir and $isdir(). $isdir() will now only accept folder names, whereas previously it was accepting filenames as well. 57.Changed status window icon so that you can now tell when it is connected, connecting, logging on, or disconnecting. 58.Alt+LeftClick no longer changes the status window icon, instead it now adds a down arrow to the button. When clicked it displays a popup menu of hidden windows. 59.The status window title in switchbar/treebar now always shows the network/server name, even when not connected. 60.Added Buffer menu to custom @window system menu. 61.Changed the way files are renamed/copied/deleted to resolve file issues experienced by some users. 62.Fixed favorites menu recent channels history bug. 63.Changed the way $active works, was not consistent before. 64.Changed on ACTIVE so that it always triggers when a window gets the focus, was not triggering in all situations before. 65.Fixed /unload not halting script on error. 66.Added treebar support for spacebar to pop up menu for selected item. 67.Fixed $wrap() bug not handling bold control codes across multiple lines correctly. 68.If an incoming notice is displayed in more than one window eg. in common channels or the active window, windows are now highlighted only if necessary. 69.Added /cnick -f switch that forces the addition of a new entry to the list instead of updating an existing nick. 70.Fixed relative path bug when handling short paths. 71.Improved error handling in /load command. 72.Added notify and urls list items to windows order dialog, affects position of these items in treebar. 73.Added support for on ^TABCOMP, triggers before a $id or %var is evaluated. 74.Changed $fserv() to $fserve(), old identifier still supported but no longer documented. 75.Fixed MDI background display flickering bug. 76.The /setlayer command can now set the transparency of the main mIRC window. 77.When in the scripts editor mIRC no longer considers itself the active application, this allows flash/beep/etc. events to trigger. 78.All buttons that select/display files/folders now display the whole file/path with ellipsis if necessary. 79.Fixed nick color list freeze issue, instead of updating all nicks immediately when colors change, now only updates them when they are visible. 80.Moved highlight dialog to address book and added regex support. 81.Fixed options dialog memory leak. 82.Fixed "Move status window..." bug in Group dialog. 83.Fixed wildcard matching bug. 84.Added support for tips, text balloons that pop up near the Windows tray to notify you of various events such as incoming messages or users in your notify list coming on or leaving IRC. Tips only appear when mIRC is not the active application and are hidden the moment mIRC becomes active. Tips can be configured in the Options/Windows/Options dialog. The Highlight dialog in the Address Book also supports tips for matched items. Tips can also be scripted using the $tip() identifier: $tip(name,title,text,delay,iconfn,iconpos,alias,wid) Returns Nth position of tip if successful, zero if not. name - name of the tip title - title text - text delay - from 3 to 60 seconds iconfn - icon filename iconpos - icon position in filename alias - alias to perform when tip is double-clicked wid - id of window to which tip belongs name, title, text are required. delay, iconfn, iconpos, alias, and wid can be $null. $tip(name/N) can be used to list existing tips. Notes: Right-click in a tip pauses the time-out for all tips. Shift+Left-click in a tip closes that tip. Double-click in a tip triggers the alias if one is defined, or opens the associated window if not. The tip automatically fits the text into it and will at most widen to quarter of your screen width. New tips are queued until older tips time-out. Tips time-out at a slower rate if they are not at the head of the queue. If no wid is specified, the tip belongs to the status window of the currently active connection. A tip is closed if the window it belongs to is made active or is closed, or if mIRC is made active and the tip belongs to an MDI window. 85.Fixed /showmirc -nt bug minimizing mIRC but not activating the next application window. 86.Fixed $mp3() not handling Unicode tags correctly. 87.Added $fullscreen identifier, returns 1 if an application is running in full screen mode, 0 if not. This applies to game and non-game applications. 88.Fixed agent speaking bug. 89.Extended /echo -iN to allow maximum N of 256. 90.By popular request, changed logging method back to old method, no longer uses name.N.log filename format. 91.For new installs the "download" folder is now named "downloads" and a "scripts" folder is created by default. 92.Added $ebeeps identifier, returns sounds enabled/disabled state. 93.Updated tab display routines to use XP/Vista themes. 94.Fixed menubar spaces bug, all scripts are now aligned on load using same align routine as editor. 95.Removed support for mirc.hlp file on F1 key, only mirc.chm is used now. 96.Fixed editor "monitor file changes" bug with INI files. 97.When run under Vista mIRC now checks for a corresponding virtual store folder at startup. Vista creates virtual store folders for older non-Vista compatible applications, such as older versions of mIRC. If mIRC finds such a folder, it displays a dialog box allowing you to retrieve your old mIRC files and settings. 98.Added $sha1(text|&binvar|filename,[N]) identifier, where N = 0 for plain text (default), 1 for &binvar, 2 for filename. 99.Updated to PNG 1.2.18 and PCRE v7.2 libraries and to OpenSSL 0.9.8e support files. 100.The about dialog now displays a second page that loads from the mIRC website. No information is sent to the server. 101.Fixed custom dialog icon definitions not setting %var values correctly on exit. 102.Changed compiler optimization settings resulting in slightly larger executable. 103.Added Mode menu item to the View menu in the menubar that allows you to switch between Normal and Compact modes. Compact mode makes mIRC behave like a messenger with the treebar filling the main window, all windows opening on the desktop, and so on. 23/11/2006 - mIRC v6.21 Changes: 1.Fixed $timer().secs bug when used with /timer HH:MM. 2.Fixed right-click on disabled toolbar button popping up menu. 3.Fixed treebar and toolbar using same key accelerator in the view menu. 4.Changed wording in help file for /windows -D. 5.Changed /winhelp to allow help system to search for help file if it's not found in the mIRC folder. 6.Fixed /toolbar -z3 not loading actual icon size from an .ico file. 7.Fixed pressing spacebar in channel nicklist not popping up correct menu. 8.Fixed bug with popup menus displayed using spacebar in notify/url listboxes. 9.Fixed passive DCC send bug rejecting files in DCC ignore list. 10.Fixed /window -h not being able to hide status window switchbar buttons. 11.Fixed various tabbed text display bugs in @window text/listbox. 12.Fixed scripts reacting to superfuous windows mouse move messages. 13.Fixed display bug in reversed tabbed text in listbox @windows. 14.Fixed DCC get window not being auto-closed on time-out in some situations. 15.Improved /drawrot, now faster and supports float values. 16.Changed the way mIRC displays popup menus so that it triggers the WM_INITMENUPOPUP for plugin developers. 17.The LOADINFO structure now returns a minor version value that is right-padded with zeros, eg. "6 20". 18.Fixed /drawpic parameter parsing bug. 19.Fixed windows taking focus when mIRC is not the active application. 20.Fixed $regsubex() bug with \0 parameter and various other characters. 21.Added $regsubex() \A parameter, non-spaced version of \a. 22.Fixed issue with $lactive not always returning a value. 23.Fixed horizontal scrollbar bug in tabbed listbox @windows. 24.Optimized display speed of text in windows and listboxes. 25.Improved /window -b speed. 26.Improved $network return value when connected/disconnected when on networks that use different network names in numerics 001/005. 27.Fixed $dialog().focus not working correctly with comboboxes. 28.Added on HOTLINK support for $() and %var in matchtext. 29.When drag-dropping files on listboxes the listbox item under the mouse is now highlighted. 30.Fixed query windows in treebar/switchbar not being re-sorted on a nickname change. 31.Added Minimize/Close All menu items to treebar folder menus. 32.Fixed scripts editor bug deleting very long lines instead of truncating them. 33.Fixed /window -c gpf bug when several status windows are open and the first status window is closed. 34.Fixed $window().state bug. 35.Added $window().sbstate/tbstate, return switchbar/treebar button state for a window. 36.Updated library to PCRE v6.7, fixes various bugs. 37.Updated support files to OpenSSL v0.9.8b. 38.Fixed on WAVEEVEND event not being triggered correctly. 39.Fixed switchbar fill display bug. 40.Fixed $didwm() bug not handling blank lines in editboxes. 41.Fixed DCC Get behavior if download folder does not exist. 42.Fixed logging bug where logfiles were being lost if "make folder" was enabled and the same status window was used to connect to different networks. 43.Fixed $eval() parsing bug when passed more than two parameters. 44.Fixed nested $regsubex() gpf bug. 45.Extended commandline -r and -i parameters to accept non-full paths. 46.IRC Servers dialog now uses a treeview to display the servers list. 47.Fixed $inellipse() bug. 48.Fixed kill event handling bug. 49.Fixed $regml() bug. 50.Fixed log filenames handling bug. 51.Changed DNS routine so that it now randomizes the retrieved pool of IP addresses to spread the load across connections. 52.Fixed /btrunc bug. 53.Added /server -z switch, minimizes new status window. 54.Fixed numeric 345 not triggering on RAW event. 55.Fixed DCC send time-out bug when sending empty file. 56.Added command line switch -portable to make mIRC avoid use of the registry, and $portable identifier. 57.Fixed gif transparency issues. 58.Added 48 x 48 icon to mIRC icon for Vista. 59.Fixed minor cosmetic issues when running under Vista. 60.Fixed /window -h not hiding desktop @window when it is first created. 61.Fixed Alt+N behavior, when switchbar/treebar was enabled Alt+N was selecting windows hidden with /window -h. 62.Added Lock Bars option to toolbar/switchbar/treebar menus. 63.Fixed treebar not remembering /window -i item open/closed state when jumping between server items in treebar list. 64.Fixed treebar not placing /window -z windows at end of list. This affects custom @windows as well as other windows whose original server window has been closed. 65.Fixed Control+Minimize lock bug. Windows opened on the desktop are now also minimized and locked, and system menus are no longer usable without unlocking. 66.Fixed editor dialog not remembering correct position if Windows tray was in top/left position. 67.Fixed /editbox not working with minimized/hidden windows. 68.Added /toolbar -f[lsd] switches, load/save/delete toolbar in toolbar.ini file. mIRC auto-loads toolbar.ini on startup. 69.Fixed $rand() floating point handling bug. 70.Changed PCRE compile options, previous change had resulted in a significant performance decrease. 71.Fixed $error being reset when an alias/identifier is called in the :error section without using /reseterror. 72.Fixed regex identifiers not handling script errors correctly. 73.Fixed logfiles bug resulting in lost or corrupted logfiles when connecting to multiple servers. 74.Fixed reload logfiles bug when lines prefixed with both color codes and timestamps. 75.Fixed channel topic/mode bug, were not being cleared correctly on reconnecting to a server. 76.Fixed Treebar folder icon display bug. 77.Added "Single click on tray icon to open" option to tray dialog. 78.When settings are changed in logging dialog, the logging state of windows and any open log filenames are now immediately updated to reflect new settings. 79.Added "Flash on chat message" option to IRC Options dialog. 80.Added "Beep on chat message" option to Sounds dialog. 81.Disabling sounds in the Sounds dialog now does actually disable all sounds, even those using /splay or /beep. 82.Fixed bug with Background pictures not applying correct display method (center, fill, etc.) in some cases. 83.Added new sound events to the Sounds dialog. 84.Fixed DCC Send/Get progress bar display bug, was not showing completed transfer in some situations. 85.Fixed incorrect evaluation of parameters containing $nulls when passed to identifiers. 86.Fixed /ctcps, /events, and /remote not handling "off" parameter correctly. 87.Fixed $fline() and $line() returning results when "listbox" specified and used with a non-listbox window. 28/07/2006 - mIRC v6.2 Changes: 1.Reverted changes that made the display smoother since slower computers where unable to cope. The display now flickers a bit as in previous versions. 2.Changed mark/copy behavior so that it works like it did in previous versions. 3.Fixed various $regsubex() bugs. 4.Fixed switchbar not displaying at least first character of a window name when ellipses are appended. 5.Extended /did to support a long list of ids as opposed to only up to 256 characters. 6.Fixed agent speech being interrupted when Options dialog is closed. 7.The Channel/Message beep settings in Options/Sounds are now applied to all windows when the Options dialog is closed. 8.Fixed bug with Control+F find dialog in desktop windows. 9.Fixed bug with active window not being internally set correctly in some situations. 10.Fixed /window -t width measurements being smaller then previous versions, changed back for compatibility. 11.Fixed /localinfo incorrectly displaying DNS messages. 12.Extended /drawpic -gN switch, where N = 1 for small icon, 2 for large icon, and 3 for actual icon. 13.Changed $findfile() so that it works as fast as in past versions if the new semi-colon feature is not used. The semi-colon feature is now also somewhat faster. 14.Fixed change in / commandline parsing behavior. 15.Fixed text measurement bug which was affecting /drawtext, $height(), $width(), and $wrap(). 16.Fixed Control+K bug in channel central topic when clicking on color dialog to insert a color number. 17.Fixed $longip() bug. 18.Fixed UTF-8 bug when parsing notice, privmsg, and other commands that contained comma-separated nicks as the target. 19.Fixed SSL security dialog display bug when using /sockopen and SSL. 20.Added $sock().addr which displays original named address if one was used, and /socklist now also displays the named address. 21.Fixed /names list display being truncated when a UHNAMES list is returned with full addresses. 22.Fixed SSL gpf bugs related to multi-threading issues. 23.Fixed auto-hide nicklist not hiding when mouse is moved outside of the channel window. 24.Added /clearall -a switch, applies to window on all connections. 25.Added /timer -d switch, ensures that a timer and any subsequent timers using the -d switch are triggered in that order. 26.Fixed $iel()/$iil() bugs. 27.Changed $me in on NICK messages so that it refers to your old nick as in previous versions. 28.Fixed bug in /dde connect parsing. 29.Fixed decrease in picture @window display speed. 30.Copying text from both a UTF-8 "display" or "encode" enabled window now copies the text as Unicode to the clipboard. 31.Fixed /filter color bug when filtering text windows. 32.Fixed bug relating to the order in which SJIS/JIS and UTF-8 encodings are applied when both options are enabled. 33.Fixed $regsub() parsing bug. 34.The $rawmsg identifier now works in the on CHAT event. 35.Fixed flood protection bug, was UTF-8/SJIS/JIS double-encoding text that was queued. 36.Fixed switchbar button text color bug. 37.Channel Folder now shows channel description alongside channel name. 38.Fixed horizontal scrollbar being too long in all listbox windows in mIRC. 39.Fixed an old bug in the /flush command not parsing the -l switch correctly. 40.Added $did().isid property, returns $true or $false depending on whether the specified id exists in the dialog. 41.Added custom dialog listbox property "radio", creates listbox of radioboxes. 42.Pressing spacebar in custom dialog listbox of checkboxes now checks or unchecks all selected items. 43.Fixed spacebar not working in mIRC Options dialog treelist. 44.Added "Match only whole words" option to Agents Lexicon dialog. 45.Added $editbox().selstart/selend properties, return start and end of selection in editbox, and /editbox -bNeN, set the start and end of the selection. 46.Added on TABCOMP event, triggers when a user presses the TAB key in an editbox and mIRC is about to perform tab completion. Halting the event prevents mIRC's default tab completion. on *:TABCOMP:<*#?=!@>:echo event: $event target: $target line: $1- 47.Can now specify a range of ids in on dialog events using a dash, eg. on 1:dialog:name:event:1-5,6,7-8,9-11,10: { ... } 48.Fixed multibyte editbox cursor display bug when switching between windows. 49.Tabbing into the editbox in the Editor dialog no longer selects all text in the editbox. 50.Fixed old bug in users list IP address/wildcard matching in remote events. 51.Fixed /drawscroll bug. 52.Fixed switchbar button hottracking display bug. 53.Fixed an empty $calc() halting a script with no error message. 54.Changed behavior of Recent Channels menu in favorites so that it is now network-based as opposed to server-based, ie. if you have several connections open to the same network, the Recent Channels list is shared between them. 55.Added custom dialog icon options, can now specify small, large, or actual in icon dialog definition. 56.The on ^HOTLINK event now triggers on right-click, use $mouse.key to check for right mouse button. 57.Added /run -h switch to hide the application being run. 58.Fixed bug in /drawtext -bp where -b was not being parsed correctly with the -p switch. 59.Added support for UTF-8 display font substitution/linking, option enabled by default in IRC/Messages dialog, should allow mIRC to display all characters regardless of the font you are using, assuming you have the required fonts on your system. 60.Fixed UTF-8/Multibyte text-wrapping display bug. 61.The $regml() identifier can now be used inside $regsubex(). 62.Fixed /font -z not affecting custom @windows. 63.Added $activewid, $lactivewid, and $leftwinwid identifiers. 64.Channels Folder now displays UTF-8 channel names and desciptions correctly. 65.Fixed window listboxes display bug with horizontal scrolling. 66.Pressing Control+A in the urls list and in custom @window listboxes now selects all items. 67.Fixed /scon /scid display bug when invalid id is used. 68.Fixed font dialog not setting font for minimized windows. 69.Custom DLLs are now delay-unloaded to allow subclassing DLLs to work better. The UnloadDLL routine is still called at the same point as before. 70.Scripts editor now has minimize/maximize buttons. 71.Pressing spacebar in the Lock dialog checkbox list now correctly checks/unchecks an item. 72.The toolbar can now be repositioned to top/bottom/left/right of main mIRC window. 73.Fixed Control+Break handling in scripts. 74.Added /loadbuf -a switch to load text into active window. 75.The $com() identifier now uses UTF-8 internally and the .result property now returns UTF-8 text, when necessary. 76.Added $cb(N,u) option, returns UTF-8 text. 77.Fixed /splay not handling \\network directory format. 78.Fixed nick/url/etc. right-click popup menu not working if text in window scrolled while popup menu was visible. 79.Fixed installer default folder bug under xp64. 80.Updated library to PCRE v6.6, which supports limiting the regex recursion depth. This prevent gpfs caused by runaway expressions. 81.Fixed /drawcopy -n not updating window when no parameters are used. 82.Fixed /sockread -nf bug, switches were not being parsed correctly. 83.Buttons in top/bottom position switchbar are now wider by default. 84.Fixed bug in Options dialog. When there were many channel/query/etc. windows open the Options dialog would take a long time to close. 85.Fixed focusing bug when using Alt+N to switch to Nth window right after a window opened in a minimized state. 86.Fixed $sfile() bug with some file name formats. 87.Extended $os to detect Vista. 88.Fixed bug in popup menu parsing when text contained { character. 89.Invisible mode connect option is now enabled by default. 90.Added a Treebar which lists connections and open windows, much like the switchbar. It behaves like the switchbar in many ways as well, eg. Shift/Control + left-click support, icon blinking, etc. and uses various switchbar settings in the Options/Dialog. Right-clicking on an item pops up the usual system menu for that window. Right-clicking in an empty area of the treebar pops up a menu with various display options. The treebar width can be set by dragging the border with the mouse, and the background and text colors can be set in the colors dialog. 91.The right-click popup menus for the Toolbar/Switchbar now offer options that were removed from the Options/Display dialog. The Switchbar can now be resized by dragging the border of the bar with the mouse. 92.Fixed right-click popup menu bug where menus were being wrongly displayed when clicking on window borders. 93.Fixed switchbar display bug when scrolling with mouse wheel. 94.Fixed regex bug which was truncating long results instead of returning a string too long error. 95.Fixed /server gpf bug with long parameters. 96.Added /window -D switch, allows toggling of MDI/desktop setting for custom @windows via system menu. 97.Added $fline().text property. 98.Added /exit -nr switches, -n disables confirmation dialogs, and -r restarts mIRC. 99.Extended /window -nN switch, if N = 2, minimizes window without auto-expanding its item in the treebar. 100.Fixed / and /! not being treated as text with Control+Enter. 101.Added Up/Down sort buttons for Options/DCC/Folders dialog to set order of matching. 102.Added "Minimize mIRC on close" option to Display/Windows dialog. 103.The Reload logs feature in the logging dialog can now be set separately for channels and chats. 104.Fixed bug in the Line colors feature in the logging dialog, the default line color is now reset correctly if colors are used in the line. 105.Fixed minimize option in DCC Send dialog not being applied immediately to current DCC send. 106.Added vertical tile option to toolbar and window menu, and to auto tile section in Window/Group dialog. 107.Added /abook -wncl switches, open the different tabs in the address book dialog. 108.Added "Preserve nicks" feature to Connect/Options dialog. If enabled, mIRC will use /tnick internally to ensure that your nicknames in the Connect dialog remain static. Also added /mnick command to change your main nickname. 109.Added "Include desktop windows" to the Display dialog. If disabled, desktop windows are not displayed in the switchbar. 110.Extended /window -wN switch, where 0 = hide from switchbar/treebar, 1 = show in switchbar, 2 = show in treebar, 3 = show in both. 111.Fixed hotlinks not handling nicknames with multiple prefixes. 112.Default colors are now stored internally in mIRC and are written to mirc.ini if no colors are found. 113.Default wav/mid/etc. DCC folder item is now only re-created if no extensions section is found in mirc.ini. 114.Extended SendMessage() support. The lParam value can now be used to create a uniquely named mapped file. Where lParam = N, the mapped filename is mIRCN. If lParam is zero, the filename is mIRC, as in previous versions. 115.Added "Auto" option to Switchbar lines setting in Options/Display dialog. Auto-expands switchbar as number of buttons changes when switchbar is in top/bottom position. 116.Added "Multi-line toolbar" option to Options/Display dialog. 117.Added /toolbar command, allows modification of toolbar buttons. /toolbar -aidmsxkNnNzNebwhyNurctplor [N] [x y w h] [/alias] [popfile|@] -a = add button -i = insert button at position [N] -d = delete button at position [N] or -m = move button to position [N] -s = separator -x = wide button -kN = use when adding button to make it a check button check/uncheck with N = 1 or N = 0 -nN = icon index in picfile -zN = icon size, 1 = small, 2 = large, 3 = actual -eb = enable/disable button [N] or -wh = show/hide button [N] or -yN = set transparency (0 to 255) for button [N] or -u = update display immediately -r = reset buttons -c = clear all buttons To update properties for an existing button: -t = tooltip -p = picfile -l = alias -o = popup name = unique name assigned to button/separator, it cannot be a number tooltip = text displayed when the mouse hovers over button picfile|@ = picture filename or picture @window min 16x16, max 256x256 pixels x y w h = position in bitmap and size of bitmap to use not for use with icons /alias = command performed when button pressed, $!1 = name popupfile|@ = popup filename or @menu name The tooltip, picfile, alias and popup can be enclosed in quotes if necessary. To clear an item use "" empty quotes. $toolbar(name/N), if N = 0 returns number of buttons Properties: name,type,tip,alias,popup,width,height,wide, enabled,visible,checked,alpha Note: modifying some of the default mIRC buttons, such as Connect, Notify, etc. may not always work since they are managed by mIRC. They can however be deleted. 118.Fixed /signal -n bug, was allowing $? dialog in server event. 119.Fixed /!.var conversion to /set -l, was not using the !. prefixes. 120.mIRC now stores a [success] section in servers.ini that lists servers that were connected to successfully. When you later connect to a server group, the success list is used to prioritize server connection attempts. "Clear History" via the servers list popup menu clears this list. 121.Fixed various multi-monitor right-click mouse button bugs. 122.Added /help and /winhelp support for .chm files. 123.Added aline/iline/sline/etc. -t switch, forces a re-wrap of all lines in a window that have not yet been wrapped to the current window size. 124.Toolbar disconnect confirmation feature now displays a question mark on the disconnect button when you try to disconnect. 17/02/2006 - mIRC v6.17 Changes: 1.Fixed $comval() gpf bug. 2.Fixed /font gpf bug. 3.Fixed menu {} rclick related bug. 4.Fixed numeric 338 remote bug. 5.Fixed recursion stack overflow gpf bug. 6.Fixed /.uwho message not being hidden. 7.Fixed /close gpf bug in on close event. 8.Fixed ! command prefix bug when used with certain commands. 9.Added support for IRCnet numeric 265/266 format change. 10.Fixed handling of <> URL formats in hotlinks. 11.Fixed remote /whois display bug. 12.Fixed switchbar status highlight bug with orphaned DCC chats. 13.Fixed perform on connect listbox not displaying scrollbar. 14.Fixed auto-join bug. 15.Added support for unreal ircd /whois numeric 671. 16.Most file dialogs are now resizable. 17.Fixed SSL file dialog display bug. 18.Added support for numeric 005 NAMESX token, indicating that mIRC supports multiple mode prefixes for a nickname in a NAMES list, eg. @+nickname. 19.Fixed disappearing background pictures bug in query/chat windows. 20.Added /sockopen -e switch which creates an SSL connection and $sock().ssl identifier. 21.Added /tray -mNsNtNaN switches where N is 0 or 1 and enables or disables the tray settings always show, startup minimized, minimize to tray, and animate on activity. 22.Added $decode to Lock options dialog. Lock dialog now also allows individual setting of lock items. $decode is disabled by default. 23.Fixed ANSI support for MOTD message. 24.Added default sounds options to notify options dialog. 25.Added $mouse.key & 8 to check for Alt key and $mouse.key & 16 to check for right mouse button. 26.Added $inellipse(x,y,x,y,w,h) and $inroundrect(x,y,x,y,w,h,w,h). 27.Added /sockpause [-r] command, pauses/restarts a socket from reading incoming data. $sock().pause returns current state. 28.Added connection timeout option in connect/options dialog, PINGs the server every so often to test connection. 29.Added /dcc send -m switch to minimize DCC send windows. 30.Fixed script recursion gpf bug. 31.Fixed $inpaste bug. 32./hsave -b now displays a warning when it is unable to save data that is longer than 65535 bytes. 33.Fixed isnum bug with negative values. 34.Added global Join on connect option to favorites dialog. 35.The Hide ping? pong! event option is now enabled by default. 36.Fixed ordering of notify/unotify events on non-WATCH servers during a /nick change. 37.Added support for initiating passive DCC send/chat connections, option in DCC Options dialog. Also added /dcc passive [on|off] command and $passivedcc identifier. 38.Added $locked identifier, returns whether mIRC is locked or not. 39.Fixed $target processing for /msg +#channel, mIRC now correctly checks the CHANTYPES and PREFIX numeric 005 tokens to strip prefixes. 40.Fixed formatting of outgoing wallchops/users/voices. 41.Changed flood protection feature so that it uses PING instead of PRIVMSG when testing server lag. 42.Added custom dialog listbox property "check", creates listbox of checkboxes, manipulated with /did -sl and $did().csel/cstate. 43.Added $window().fontcs identifier, returns the selected character set/script for a window's font. 44./debug windows now show raw text without interpreting multibyte or utf text. 45.Changing the default font for a window type now affects all open windows of the same type immediately. 46.Fixed SSL files path bug where certificate files where not being loaded if not in mIRC root folder. 47.Fixed :error handler bug where the normal break message was being displayed due to Control+Break being detected more than once. 48.Added support for display of UTF-8 text as Unicode in status, channel, query, and other windows, and in nickname listboxes, window titlebars, switchbar, and tooltips. The display of UTF-8 can be enabled for all windows in the Options/IRC/Messages dialog, or individually for each window via the Fonts dialog. The Fonts dialog also has an "Encode" option that encodes outgoing text in UTF-8 based on the script/codepage selected for that window. Note: The Encode feature is selective, ie. it only encodes the parts of an outgoing message that are not already in UTF-8 format. Added $utfencode(text, C) and $utfdecode(text, C), where C is the script/codepage ($window().fontcs) of the plain text. Added $isutf(text) identifier, returns UTF-8 status of text, where 0 = not UTF-8 (contains invalid UTF-8 sequences), 1 = seems to be plain text, 2 = seems to contain valid UTF-8. Note: mIRC does not convert incoming UTF-8 into the local codepage. Server text is stored internally unchanged. This enables mIRC (scripts, etc.) to work fully with UTF-8 IRC servers that allow UTF-8 in channel and nick names. 49.Fixed /load -nrs switch bug. 50.Fixed DCC Options dialog gpf bug. 51.Fixed mark/copy clipboard memory leak bugs. 52.Fixed $encode/$decode memory not being freed in some situations. 53.Added $qt(text) identifier, ensures text is enclosed in quotes, and $noqt(text), removes outer enclosing quotes. 54.Text display is now smoother/less flickery in some situations. 55.Fixed /drawpic bug drawing blurred icons. 56.Added /drawpic -g switch, loads large icon from icon file. 57.Fixed handling of /describe $ server messages. 58.Fixed buffer save bug, was ocasionally not saving lines. 59.Fixed $sdir() bug. 60.Fixed /bread, /bwrite, and /btrunc not being able to handle files larger than 2 gigs. 61.Fixed toolbar custom buttons bug when changing XP themes. 62.Fixed /debug -i identifier evaluation bug. 63.Fixed channel tab completion freeze bug. 64.Fixed $file().size bug with locked files. 65.Fixed /renwin bug with reserved @window names. 66.Fixed mIRC tray icon double-click bug not showing/hiding mIRC correctly in some cases. 67.Fixed tray-related disappearing mIRC bug. 68.Fixed $script() not parsing quote-enclosed filenames. 69.Fixed wildcard handling bugs. 70.Fixed /window -z bug, can no longer be applied to status window. 71.Fixed contents of second editbox being reset when visual styles are changed. 72.Fixed . prefix not working for /localinfo command. 73.Fixed invalid { parameter gpf bug in $eval, $height, $width, and $wrap identifiers. 74.Fixed while loop bug with :error and /reseterror. 75.Fixed various $comcall() bugs. The $comerr value is also now set when $comcall() calls the alias. Note: If $comcall() fails when calling an object and $com() does not, this means that the object is not compatible with mIRC's threading model, so $com() must be used. 76.Extended $findfile() to handle multiple file types separated by semi-colons, eg. *.exe;*.txt 77.Fixed display of Efnet numeric 338 containing IPv6 address. 78.Improved hotlink handling of bracket-enclosed channel names. 79.Fixed switchbar button text color not matching XP theme color. 80.Fixed /goto bug which resulted in jumping to the wrong line. 81.Fixed $com() memory leak bug. 82.Fixed various $did() bugs affecting "multsel" listboxes. 83.Fixed $iif() bug when parsing $null parameters. 84.Fixed DCC gpf bug in iphlpapi.dll where initiating a DCC would result in a gpf for some users. This bug may also have been affecting mIRC's general sockets behavior. 85.The $asctime() identifier now allows am/pm to be separate from the time value. 86.Fixed text-wrapping of messages for /fopen-related commands. 87./firewall command now also accepts server:port format. 88.Added /autojoin -nsdN command, can be used in on CONNECT or perform to delay or prevent auto-joining of channels. This also affects the rejoining of open channel windows during a reconnect. Where -n = join now, -s = skip auto-join, -dN = delay auto-join for N seconds. 89.Fixed multi-threading sychnronization bugs in SSL routines. 90.Fixed /queryrn not permitting certain characters in nickname. 91.Fixed if/elseif/while gpf bug when parameters too long. 92.Updated libraries to PNG 1.2.8, zlib 1.2.3, and PCRE v6.4. 93.The SSL warning/password dialogs now auto-cancel after 60 seconds. 94.Fixed /aline -n and -nl, now identical behavior if line exists, ie. both have no effect on the line. This also affects /iline. 95.Fixed /list bug, now reports an error if /list is sent before you are connected to the server. 96.Fixed mIRC not saving settings when Windows shutsdown/restarts. 97.Fixed switchbar tooltip display bug. 98.Fixed $bfind(&binvar, N, M) bugs relating to reading beyond the end of the actual &binvar length. 99.Fixed $input() 'd' option, was playing a default sound even if none was set for the specified system icon. 100.Added support for displaying GIFs via the GIFLIB library. 101.Added $findfilen/$finddirn identifiers, return Nth position of files/dirs found with $findfile/$finddir. 102.Can now specify a range of ids with one /did command by using a dash, eg. /did -b test 1-5,6,7-8,9-11,10 103.Added separate timestamp option for logfiles in logging dialog /timestamp -g switch to set logstamp format, and $logstamp and $logstampfmt identifiers. 104.Extended $sound() to read id3v2 tags, with properties .id3, .tags, and $sound(filename,N|name).tag. If you don't use .tag, it returns the id3v1 values. 105.Extended /flash -bNrNwN, where N limits the number of flashes/beeps, and fixed /flash making a sound even if -b or -w were not used. 106.Fixed DCC Send/Get window button/window sizing when different fonts are selected for the window. 107.Extended $input(text,kN), where kN is an N second timeout value. On timing out, $timeout is returned if 'v' is specified, no value if 'e' is specified, and $false otherwise. 108.Added custom dialog editbox 'number' property to limit input to numbers. Note that this only applies to typing in the editbox, not pasting. 109.Added /noop command, performs no operation. 110.Extended /showmirc -ntl, where -l locks mIRC when it is being minimized. 111.Added $regsubex([name], text, re, subtext), where subtext is evaluated during substitution and can be an identifier. Subtext can contain special markers where \0 = number of matches, \n = match number, \t = match text, \a = all match items. Returns text result. 112.Fixed "fill switchbar" display bug with /window -z windows. 113.Fixed parsing bug with combinations of $& and | separator. 114.Fixed /timer not checking for an invalid timer delay value. 115.Fixed /url not opening default browser in some situations. 116.Added /set/inc/dec -e switch, unsets variable on mIRC exit. 117.Extended /window and $window(), can now refer to existing windows using wid value, eg. /window -n @1. 118.Fixed $line() not parsing chat =names correctly. 119.Fixed if parser treating 00 as text instead of a zero value. 120.Fixed $upper/$lower not converting accented characters correctly. 121.Fixed udpread event treating zero incoming bytes as closing of the connection. 122.Fixed broken behavior of notify list /whois option due to Efnet not accepting /whois nick1,nick2,... format. 123.Changing the font for a DCC Send/Get window now immediately resizes the window and buttons. 124.Fixed if/while parsing bug when parameter begins with ; character. 125.Fixed on OPEN event not supporting $()/%var in text match section. 126.Fixed $regsub() not reporting an error if an invalid %varname is specified. 127.Added support for numeric 005 UHNAMES token, indicating that mIRC supports the nick!user@host format in the NAMES list which it uses to the fill the IAL on joining a channel. 128.Using /halt in the alias called by $findfile/$finddir now halts the file/dir search. 129.Added support for /adchat, /netglobal, and /globops commands. 130.Added $bytes(N,d) switch, retains decimals. Also fixed handling of negative values. 131.Added support for numeric 345 channel invite message. 132.Editor variables sort button now toggles between four different sort methods. 133.Extended the number of url types that the hotlinks/urls list features handle. 134.Added support for internal excepts/invites list with $chan().iel and .iil, $iel() and $iil(), and if isexcept and isinvite. 135.Added "Line colors" option to logging dialog, prefixes the line with actual line color in logfile if necessary. 136.Fixed intermittent load/reload scripts gpf bug. 137.Added support for numeric 005 TARGMAX=WHOIS:N token, number of nicknames that a /whois command allows. 138.Fixed favorites menu bug with recent channels and active server connections. 139.Calling /clipboard with no text now empties the clipboard instead of assigning it an empty string. 140.Fixed highlight feature bug when matching against non-ascii text. 141.Fixed nick color list option not using first matching item in the list when matching against a user level. 142.Fixed intermittent /dialog gpf bug with long table names. 143.Fixed parser bug when handling empty custom identifiers with properties. 144.Fixed $longip() handling of zero-padded ip addresses. 145.Fixed DCC Folders dialog bug where items added with mIRC folder as the save folder were being lost on restart. 146.Fixed timestamp display bug in "copy messages to query" option. 147.Fixed /timers triggering in an unexpected order, should now trigger according to the order in which they were set even if they have the same delay. 148.Since numeric 005 ELIST token now exists, from the next version mIRC will no longer treat SAFELIST as implying support for /list parameters and will only use /list parameters if a server specifies the ELIST token in numeric 005. 149.Fixed $prop returning only the last part of a property name that contains multiple . in the name. 150.Fixed mime decoding not ignoring non-base64 characters. 151.Fixed $ini() returning 0 instead of $null for non-existent topics. 152.Added support for more genres to mp3 identifiers. 153.Fixed /rename bug when attempting to rename an existing file with the same name. 154.Fixed custom @window logfiles not rotating filenames correctly at midnight as with channel/chat windows. 155.Improved handling of ANSI color codes. 156.Fixed /comopen and /comclose not triggering error catcher if item was already open/closed. 157.Both $regsub() and $regsubex() no longer treat $N as \N. 158.Extended /filter -e to handle larger numbers when sorting. 159.Fixed /did -ocueb not working on submenu items. 160.Fixed /loadbuf display bug with custom dialog hidden controls. 161.File dialogs now display the places bar under 2k/XP. 162.Switchbar now allows wider buttons when placed on left/right. 163.Fixed /splay bug with path/extension handling. 164.Added "Show nick list on Shift+Tab key" option to channel nick list options dialog. 07/07/2004 - mIRC v6.16 Changes: 1.Fixed $did().seltext/text bug. 2.Fixed /hinc /hdec result message bug. 3.Fixed $ssl not being set correctly if not connected to a server. 4.Fixed $chr(160) SJIS/JIS gpf bug. 5.Fixed while/continue/break bugs. 6.Fixed /filter -ntk returning incorrect line numbers. 7.Fixed MDI window display bug with maximized windows. 8.Fixed /list -min -max values being offset by one. 9.Fixed urls list sort bug for ? items. 10.Fixed $serverip not working in on disconnect event. 11.Fixed handling of different server formats for numeric 328. 12.Added $input() option 'u', makes input dialog use currently active window as the parent window, including custom dialogs. 13.Fixed $result not working in $iif() and some other identifiers. 14.Fixed :error detection not working for /splay and /alias commands. 15.Fixed DCC get open folder bug when filename contains commas. 16.SJIS/JIS is now applied to messages only if you have a window open that uses the SJIS charset, as in previous versions. 17.Added /if iswmcs case-sensitive wildcard match comparison. 18.The $pnick and $play(1).pos values are now updated after the on PLAYEND event is triggered. 19.Fixed /alias reporting incorrect error message when alias can't be removed. 20.Fixed /filter incorrectly retaining indentations in lines. 21.The $ifmatch identifier now returns the value of the previous if comparison, even if it failed. 22.Fixed $did().next/prev bug. 23.Added /window -H switch to enable @window listbox auto-hide. 24.Fixed notify list bug with popup menu using incorrect server connection with aliases. 25.Fixed $ial() not being updated after a /hop. 26.Added $v1 and $v2 identifiers, return values of first and second parts of an if comparison. Note: $v1 replaces $ifmatch, however $ifmatch is still supported for now. 27.Added $insong.pause returns $true if song is paused. 28.Updated support for numeric 489 due to different meaning across networks. 29.Fixed /uwho numeric processing bug. 30.Fixed background display/resize bug with desktop windows. 31.Fixed highlight feature gpf bug. 32.Added /drawpic -o command, indicates that you have specified an [N] value before the filename which is the index of the icon in the file. 33.Updated $disk() to work with mounted NTFS drives. 34.Fixed /hop bug. 35.Fixed $file().size limitation. 36.Improved support for multiple server formats for numeric 338. 37.Added $comval(name,N,member) identifier, returns member values for the Nth retrieved instance ie. enumerated collection. 03/06/2004 - mIRC v6.15 Changes: 1.Fixed $base() gpf bug with large numbers. 2.Fixed SSL gpf on connect with certain certificate types. 3.Fixed notify list hidden edit button bug. 4.The DCC send/get on filesent/filercvd/etc. events can now halt the default messages displayed in the status window. 5.Fixed bug in /findtext and Control+F routines. 6.Fixed &binvars not being unset at end of script in some cases. 7.Fixed Find URL bug in URL window. 8./names no longer fills nick list of channel window from which you have been kicked. 9.Fixed /echo -eg causing line separator to be logged. 10.Query window logs that are created but not written to are now automatically deleted when the query window is closed. 11.Fixed $error in :error handler not displaying correct line number and backward propagation of error. 12.Fixed $encode() not working with one character length text. 13.Fixed /gtalk -w, now looks in waves folder for sound. 14.Fixed random port selection bug. 15.SJIS/JIS support is now only automatically enabled when first running mIRC on a multi-byte SJIS/JIS system. 16.If auto-get is enabled with auto-resume and the incoming file is smaller than an existing file, the DCC is now cancelled. 17.Fixed Alt+Minus key combination displaying incorrect system menu when a window is maximized. 18./hop is ignored if issued more than once in a channel window that is in the process of being rejoined. 19.Fixed $sfile/$msfile bug when multiple filetypes are used. 20.Fixed $input() not always initially setting focus to editbox. 21.Fixed handling of SSL port numbers where a disconnect and reconnect resulted in use of a non-SSL port. mIRC will now always use an SSL port when connecting if it was using one in the prior connection. 22.Recent servers list in servers.ini now stores entries with port numbers not in the servers list for that server. 23.Fixed /if comparison evaluation bug with $identifiers. 24.Fixed /debug bug, failed if called more than once in some cases. 25.Fixed $addtok() handling of $null values. 26.Fixed $did/$dname/$devent being reset during an on dialog event in some situations. 27.Reverted change to /echo -bfh which allowed custom @windows to blink. 28.Fixed DCC accept message not applying the fill spaces option to a filename with spaces. 29.Fixed ampersand bug in custom dialog combo boxes. 30./window -a now activates DCC chat windows associated with active connection first if any are found. 31.Improved port-in-use detection method so port selection for DCC and other connections works more smoothly. 32.Fixed recursion gpf bug with /scon and /scid. 33.Fixed while/if bug when using $iif() in comparisons. 34.An error message is now displayed when the maximum recursion depth is reached in a script. 35.%helper users now able to use +voice related features such as auto-voice, /pvoice, etc. 36.Fixed Address Book/Control dialog not displaying ignore time value correctly when /ignore -uN is used. 37.Fixed channels list lower-case display bug on keypress. 38.Fixed /window not handling quotes around =chat window names. 39.Fixed $onpoly() not handling intersecting polygons of zero volume. 40.Fixed handling of regular expressions that contained certain characters in remote event definitions. 41.Fixed binary variables being unset immediately instead of at the end of a script when $scon() is used. 42.Fixed custom socket bug that was causing sockets to be closed randomly. 43.Fixed "start minimized" bug where windows were not being sized properly at start up if mIRC was minimized. 44.Fixed editbox display bug when using certain fonts. 45.Fixed DCC trusted listbox not displaying vertical scroll bar. 46.Fixed tabkey evaluation bug. 47.Fixed /drawpic memory leak when drawing icons. 48.Fixed the way /ban -uN and /ignore -uN values are processed, now identical. 49.Fixed DCC send/chat using incorrect network when initiated via notify list window. 50.Added /filter -k switch, calls alias instead of outputting to a file or window. 51.The Open Folder button in a completed DCC Get window now opens the explorer window and highlights the received file. 52.Fixed custom dialog combo editbox bug when deleting item. 53.Added /font -z switch, clears all font settings and sets all windows to the specified font. If no font is specified, all default font settings are set to fixedsys. 54.Fixed log folder bug where a subfolder was incorrectly being created in some situations. 55.Added "Find selection" option to Editor dialog, toggles find dialog behavior of using text under cursor. 56.Fixed /dialog -c gpf bug. 57.Fixed SSL key files handling bug, changes in SSL dialog were not being applied. 58.Fixed SSL root certificate handling bug, resulted in rejection of valid certificates. 59.Fixed various multi-byte display/mark/copy bugs. 60.Fixed SJIS/JIS processing bug, was corrupting outgoing lines in some situations. 61.Fixed links list window display bug. 62.Fixed /window -b not working on side-listbox. 63.Fixed /while loop handling bug when /break on same line. 64.Added support for unreal ircd numeric 489, sent when you try to join a channel with +z channel mode set and you are not using a secure/ssl connection. 65.Can now use $send(-1) and $get(-1) in on FILESENT/SENDFAIL/etc. events to refer to DCC associated with the event. 66.Fixed /fserve maxgets limit bug. 67.Added $hotlinepos, returns line and word position. 68.Added /url -ils switches, which insert a new item, and load and save the urls list. 69.Added $replacex() identifier, same as $replace() except that it ignores previous replacements in the line. 70.Fixed multi-monitor display bug. 71.Fixed /goto gpf with empty : goto points. 72.Fixed $regsub() handling of \ and $ characters. 73.Fixed DCC get via http proxy/socks bug. 74.Fixed firewall not releasing DCC-related sockets in some cases. 75.Added support for numeric 005 ELIST=MNUCTP token. 76.Fixed reload logs bug. 03/03/2004 - mIRC v6.14 Changes: 1.Fixed /links -n not minimizing window. 2.Fixed tooltip gpf bug. 3.DCC send/get results are now always displayed in the status window. 4.Non-custom @windows are now displayed in their saved positions on multi-monitor setups. 5.Fixed /write -lN running out of temporary filenames error bug, also affected a few other file related commands. 6.Fixed DCC received files menu when DCC folders changed in options dialog. 7.Fixed move server to top on connect option not working in some situations. 8.Fixed scripts editor not saving current editbox contents when current/another file is loaded/unloaded. 9.Added match method option in log view dialog. 10.Increased zeropad max value in $base() to 100. 11.Fixed $matchkey in on open event. 12.Improvied $addtok() $deltok() handling of $null. 13.Fixed handling of INI files when system file attribute set. 14.Fixed $+() handling of $null. 15.Fixed fill switchbar display bug with vertical switchbar. 16.Fixed DCC send/get timeout display bug. 17.Fixed gpf bug caused by /close in an on CHAT event. 18.Fixed send buffer overflow gpf when sending many commands to a server in a script all at once. 19.Fixed daylight savings time offset bug. 20.Moved port range to connect/advanced dialog, now applies to all connections. 21.Fixed editbox gpf bug when tab completion results in long text. 22.Tooltips now correctly use system tooltip font. 23.Fixed bug in /ignore and isignore when using/checking for applied switches. 24.Added /cnick -sN switch, sorts item into Nth position. 25.Fixed custom dialog icons display bug. 26.DCC ports range is no longer limited to 1024 and above. 27.Fixed nicknames being added to tab key list even if incoming message was ignored. 28.Fixed ctcp resume message not including original filename. 29.Fixed address book whois display bug. 30.Fixed /fopen not being able to open read-only files. 31.Fixed get active url feature in url editor dialog. 32.Fixed /qmsg and /qme display bug. 33.The $read() and $readini() identifiers no longer parse command separators by default. Added 'p' switch to enable this. 34.Fixed shift+control+v combination resulting in double-paste. 35.Fixed /ignore -w not removing network from an existing ignore item. 36.Fixed auto-get "if file exists" settings being applied even if auto-get wasn't enabled. 37.Fixed $send().resume returning incorrect value. 38.Fixed fileserver filename handling bug. 39.MDI window no longer displays horizontal/vertical scrollbars. 40.Switchbar now allows up to eight lines in height. 41.Fixed multi-threading gpf and memory loss issues. 42.Added reload logs feature to logs dialog, works with channel and chat windows. Loads up to the maximum window buffer value specified in the options/other dialog. 43.Updated libraries to zlib 1.2.1. 44.Added support for OpenSSL. The libeay32.dll and ssleay32.dll OpenSSL 0.9.7c dlls must be downloaded separately from mIRC and placed in the mIRC folder. mIRC will load the dlls automatically if it finds them. $sslready can be used to determine whether mIRC has loaded the dlls successfully. To initiate a secure connection to an SSL capable server, you can use the /server -e switch, or prefix the port number with a plus sign, eg. +7001. $ssl can be used to determine whether a connection is secure or not. SSL settings can be found in the Connect/Options dialog, and are visible only when OpenSSL dlls are loaded. 46.Fixed $submenu() bug when returning $null for the begin menu item. 47.Fixed script parser bug when handling ; and rem comment prefixes in some situations. 48.Fixed $highlight(text) case-sensitivity bug, and added a .cs property. 49./echo can now target an open DCC chat window even if the DCC chat session has ended. 50.Fixed /filter gpf bug when /filter was being called a second time in the filter sort alias. 51.Fixed /unset not properly clearing a variable that was set with /inc -c. 52.Fixed bug with paste confirmation dialog, text was being pasted as a command even if the control key had been pressed. 53.Fixed server edit dialog allowing multiple entries with the same description. 54.Lines in listboxes are now the same height as those in the text display area in windows, allowing them to be aligned. 55.Fixed $com() dispatch pointers bug. You can now make mIRC create a new $com() object by specifying a dispatch* item as the last parameter in a $com() call, without a value. 56.Added lock option to disable /com features. 57.Fixed agent bug in ignore line if percentage of the line was non-text, if enabled it resulted in most lines not being spoken. 58.Added backup file on save option to editor. 59./.hop now hides display of hop message. 60.The /echo -sa swiches can now be used at the same time. 61.The /echo -bfh switches now affect custom @windows. 62.The recent servers list is now stored in [recent] in servers.ini and remembers servers that aren't in the servers list. 63.Fixed multi-server bug which may have caused a gpf/freeze in some situations. 64.The switchbar now displays scroll buttons when it is vertical and unable to fully show all windows. The mouse wheel can be used to scroll through the window list. 65.Fixed line marker bug, failed to behave correctly after a /clear. 66.Fixed Alt-Switchbar button bug when windows for a Status window were hidden, closing the status window was not re-displaying hidden @windows. 67.Fixed /msg chopping channel name at 60 characters. 68.Added /filter -z switch, remembers line color when copying from one @window to another. 69.Added $line().color property, returns line color. 70.Fixed fileserver DCC get bug. 71.Added dialog option to enable/disable the nick colors list. 72.Fixed $fline() regex case bug. 73.Fixed $cnick() bug resulting in non-match when modes were used. 74.Fixed on sockclose event triggering twice in some situations. 75.Added /server -jn switch where 'n' minimizes joined channels. 76.Fixed mark/copy right-click over editbox bug. 77.Fixed /scid -a gpf bug when used with /window -c. 78.Added Sort dialog to Window Menu, allows you to specify the sort order of Switchbar buttons and Windows. 79.Fixed tabkey channel completion with non-# channels. 80.Fixed /fseek regex gpf bug on long lines of text. 81.Fixed right-click titlebar roll/unroll bug. 82.Changed switchbar "sort buttons" behavior. Buttons are now always sorted into groups. However if the sort option is turned off, they are sorted according to creation time within groups as opposed to alphabetical sorting. 83.Fixed various multi-byte display/mark/copy bugs and improved SJIS/JIS support. 84.Fixed $line() not working with channels list window. 85.Added "None" sort method to channels list popup menu, displays channels in the order sent by the server. 86.Script errors can now be caught by adding an :error goto point to your script. When an error occurs, the script will jump to :error and continue running. $error returns the error message. You can reset the error with /reseterror. If you don't reset the error, it will propagate backwards to any calling aliases until an :error is found and will halt the script. 87.Improved text scrolling in windows to avoid jumps after lines rewrap. 88.Fixed while loop /continue bug in nested while loops. 89.Query/Chat windows now remember their individual font settings, also added "use default" option to font dialog. 90.Fixed bug in random server port selection while connecting. 91.Added /loadbuf -nm switches, where -n logs the loaded text to the log file (if logging is enabled for that window). The -m switch indicates that the loaded text is already time-stamped. 92.The find dialog in the scripts editor now automatically uses the word at the cursor. 93.Added right-click popup menu for urls list toolbar button. 13/10/2003 - mIRC v6.12 Changes: 1.Fixed DCC related gpf bug. 2.Fixed /dline gpf bug. 3.Fixed /rename not being able to rename dirs. 4.Fixed log files network/folder name bug. 5.Fixed about dialog not closing issue. 6.Fixed /hdec bug. 7.Fixed /color not remembering palette changes. 8.Fixed /mkdir failing if dir already exists. 9.Fixed custom dialogs border display bug. 10.Fixed /fwrite display bug. 11.Fixed /debug recursive gpf bug. 10/10/2003 - mIRC v6.11 Changes: 1.Fixed channel folders join bug, wasn't setting focus on a channel window properly. 2.Fixed raw on/off not setting/unsetting red dot in remote toolbar button. 3.Fixed /fwrite text display bug. 4.Fixed $duration(N,3) bug with large values. 5.Fixed $base() bug when converting decimal places from one base to another by limiting the maximum precision allowed. 6.Fixed /hdec bug. 7.Fixed /mkdir bug. 8.Extended $os to detect 2003. 9.Added language selection option to agents speech dialog. Must have the required agent language compenent installed. 10.Fixed /qmsg /qme display bug if not on a channel. 11.Reverted change relating to firewall exclude list, in some cases mIRC has to depend on the socks5 server to resolve the address. 12.Fixed switchbar option via View menu not showing/hiding minimized window icons. 13.Fixed servers popup menu gpf bug. 14.Reverted $submenu() change. 15.Fixed $comcall() $dllcall() gpfing with insufficient parameters. 16.Fixed favorites recent menu bug displaying channel keys. 17.Fixed Control+KN color bug when N was larger than 15. 18.Fixed favorites folder display of folder icons. 19.Favorites folder now allows multiple selection. 20.Fixed switchbar display bug when displaying the DCC send/get progress bar. 21.Fixed multi-byte mark/copy display bug. 22.Fixed gpf when attempting to load a corrupted png file. 23.Fixed bug with binary variables being unset too early in some situations. 24.Fixed identifier warning feature triggering on remote identifiers outside of remote events. 25.Fixed /color changes not being saved correctly. 26.Changed control/ignore dialog, now displays unignore seconds instead of minutes. 27.Fixed status window titlebar not showing "logging on" message when first connecting to a server. 28.Fixed /server not using the specified port. 29.mIRC no longer performs a soft disconnect. 30.Fixed right-click channel/query popup menus sometimes using incorrect nickname. 31.Fixed keys not working in popup menu items that don't use the & prefix. 32.Empty lines in popup menu scripts are no longer removed. 33.Fixed custom dialog tab control display bug. 34.Fixed Right-Alt key bug. Still works correctly as AltGr on keyboard layouts that use AltGr. 35.Added $sorttok(text,a) switch which sorts both text and numbers in a list. $sorttok(text,n) now behaves as it did in previous versions. 36.Changed /away handling, and fixed $awaytime. 37.Changed various API file-handling calls to c-runtime counterparts due to API calls resulting in some strange behaviors (most likely due to buffering) when used intensively. 38.Fixed duplicate separators bug in popup menus. 39.Fixed $highlight().color returning incorrect color index. If no color is selected, returns index for Normal text color. 40.Changed /fopen behavior, now fails if file doesn't exist. The -n switch creates a new file, fails if it exists. And -o creates a new file, overwrites if it exists. 41.$fopen() now returns $null if you reference a name that does not exist. 42.Fixed $md5() bug with plain text containing % characters. 43.Nick color list now uses the ignore/protect/etc. lists even if ignore/protect/etc. in the control dialog are not enabled. 44.Address book whois section no longer strips control codes. 45.Control+M in the scripts editor now displays the More dialog. The Editbox in the More dialog now performs auto-completion. 46.Fixed "move server to top on connect" option not always moving the last connect server to top. 47.Improved dual monitor handling for @windows and custom dialogs. The scripts editor is still displayed in its last saved position. 48.Fixed $mask() gpf bug with long parameters. 49.Fixed /timerN without parameters listing all timers. 50.Added /echo -c color name switch, eg. /echo -c action text. The line color uses the selected theme in the colors dialog. 51.Fixed $* gpf bug. 52.Added auto-hide nick list option in channel nick list dialog. 53.During a DCC resume, the last 8192 bytes are chopped off only once the transfer actually begins. 54.Fixed /hload and /hsave with binary files when some items in table are empty. 55.Fixed windows not being auto-tiled when switchbar is moved. 56.$online now returns value based on settings in timer dialog. 57.Fixed DDE gpf bug. 58.Fixed /filter numeric sorting bug. 59.Added /showmirc -m switch, minimizes according to tray options. 60.Fixed $fline() bug with wrapped lines. 61.Fixed numeric 472 not being displayed or processed by scripts. 62.Added support for server password in irc://password@server links. 63.Fixed menu handling bug that affected the favorites popup menu as well as various other menus under 95/NT. 64.Fixed /fseek -wr bug when the last line in a file did not end in a CRLF. 29/08/2003 - mIRC v6.1 Changes: 1.Fixed editboxes in options/custom dialogs using double-border when themes are enabled. 2.Fixed default browser issue. 3.Fixed $serverip bug. 4.The $awaytime value is now available in scripts that handle numeric 305. 5.Fixed $isid when used as first parameter in $iif(). 6.Fixed $nick().idle time being incorrectly reset in certain situations, eg. /mode changes on a nickname. 7.Fixed listbox size in firewall dialog. 8.Fixed $sorttok() not handling negative numbers. 9.Fixed custom window visual style display bug. 10.Fixed $input() bug when multiple $input() dialogs were opened at the same time. 11.Fixed /set /inc /dec -cz bug which caused -cz to stop in some situations. 12.Fixed $script() and $alias() bug when handling LFNs. 13.Fixed /amsg and /ame trying to send to non-joined channels. 14.Double-clicking on web/ftp hotlink now displays a warning dialog before the site is opened. 15.Fixed /color bug. 16.Fixed Control + mark/copy not working in custom windows. 17.Fixed /background bug, wasn't applying settings in some situations. 18.Extended $os to detect NET. 19.Fixed Editor dialog bug, was not reading text in the editbox correctly in some situations. 20.All Socks5 firewall error messages are now displayed correctly. 21.Added /play [-a] [alias] [channel/nick/stop] [delay] makes /play use specified alias instead of /msg or /notice. 22.Files opened for logging, sends/gets, etc. are no longer limited to a maximum total of 50 or so open files. 23./dcc commands, such as /dcc send, ignore, etc. are now also handled in the form /dccsend, /dccignore, etc. 24.Added 'r' switch regex match method to $read() and /write. 25.Added /clipboard -n switch, appends $crlf to text. 26.Added /dcc nick -sgcf , allows you to change the nickname associated with a DCC send/get/chat/fserve. 27.Added $file().shortfn/longfn properties. 28.Nicknames in channel part/quit messages now show mode prefix. 29.Added multsel value for custom dialog listbox controls. 30.Uninstaller will now work even if you have other copies of mIRC running. 31.Now using Visual C++ .NET 7.0 to compile mIRC. 32.Fixed memory bug relating to registry handling. 33.The /did -cf switches now scroll the cursor into view when used on an editbox. 34./window now handles negative font sizes correctly. 35./window -o now displays a desktop window in a non-active state. 36.Fixed /drawtext default colors and font/size bugs. 37.Fixed tab completion wildcard handling bug for identifiers and variables. 38.Added support for .jpeg extension. 39.Fixed /play -e display bug. 40.$duration() can now handle h:m:s format and if N = 3 it outputs in h:m:s format. 41.Fixed /hop bug when part message specified. 42.Extended $crc(text|&binvar|filename,[N]) where N = 0 for plain text, 1 for &binvar, 2 for filename (default). 43.Extended $disk(path|N) where N = 0 for total available drives, and N > 0 to access each drive. $disk().path returns drive path. 44.Pressing enter key in a DCC get dialog while focus is in editbox now accepts the DCC. 45.Added identifier warning option to editor dialog options menu, halts script if identifier doesn't exist. 46.Fixed /aop bug. 47.Fixed /whois related memory bug. 48.The "no such nick" message is now shown only in the query window if one is open. 49.Added /qmsg and /qme, send message/action to all open query windows. 50.If "hide desktop windows when minimized" is enabled, can now hold down shift key when minimizing to prevent hiding. 51.Channels list files are now saved to their own channels folder. 52.Fixed $bvar().long/word bug when used with a binary variable containing insufficient bytes. 53.Changed DCC section in Options dialog, moved Ignore to own section, and Folders section now uses a listview control. 54.Changed default visual styles. 55.Notify list dialog now uses listview, and added notify offline sound. 56.Added $ceil(N) and $floor(N), round to next highest or next lowest integer. 57.Fixed $asin(), $acos(), and $atan() bugs. 58.Fixed /playctrl gpf bug. 59.Fixed /ignore -wuN combination causing unignore to fail. 60.Fixed "use default" not working in background menu item for channel windows. 61.Added $msfile(dir,title,oktext) identifier, same as $sfile() but allows selection of multiple files. Returns N, number of selected files. $msfile(N) returns each file. If a user selects too many files, $msfile() returns -1. 62.Updated libraries to PNG 1.2.5, zlib 1.1.4, and PCRE v4.3. 63.Fixed $base() bug. 64.Fixed $group() bug. 65.Fixed editor dialog not re-aligning and spacing out text when a file is changed and saved. 66.Fixed $chan().limit and other related bugs. 67.Fixed list channels dialog gpf bug. 68.Added custom file-handling commands and identifiers, which allow you to open multiple files for reading and writing. /fopen [-n] If file open fails, script continues to run. See $ferr and $feof below. /fclose Closes specified files. /flist [name | wildcard] Lists open files /fseek -l -n -w -r Sets read/write pointer to specified position in file. /fwrite [-bn] -b indicates that a &binvar is being specified -n appends a cr/lf to the line $fopen(name | N) .fname .pos .eof .err .eof and .err must be checked after each file access command or identifier, since file access errors will not halt a script. $fread(name | N) Returns next cr/lf delimited line. $fread(name | N, M, &binvar) Returns number of bytes read into binary variable, where M is the number of bytes to read. $fgetc(name | N) Returns character value $feof and $ferr May be used to refer to the result of the last file access attempt in any script, where $feof = end of file was reached, and $ferr = error accessing file. 69.Added file type ignore warning, which pops up when a file type is ignored, and explains why, with a direct link to the options dialog, DCC ignore section. 70.Extended /drawpic, can now draw icons from ico/exe/dll files. 71.Fixed $findfile() not halting on control+break key in some cases. 72.Added $rawmsg, returns raw server line for server events. 73.Fixed background picture fill/stretch/etc. display bug in windows. 74.Extended $send()/$get() .status propery to also return "sent", "received", and "failed". The .done property is still supported. 75.All alias and remote files in the Editor can now be unloaded, and a default empty file will be created. 76.Changed buttons in all dialogs to standard size. Many dialogs were re-designed to accomodate this. 77.Browse folder button in DCC get dialog now shows a folder icon. 78.Play button in sounds dialog now shows a play icon. 79.Changed the way the add/delete buttons work in the Address book dialog, and made changes to the info section. 80.Simplified connect dialog, and added a separate servers dialog. 81.Added a new section to servers.ini, with the following format: [networks] n0=Quakenet n1=EFnet n2=Undernet n3=DALnet A newly installed mIRC, which is missing the "host" entry in the [mirc] section in mirc.ini, will select an initial random server from this list. 82.Added $file().attr, returns file attributes. 83.Fixed $regsub() gpf bug with long strings. 84.Can now use /* and */ to comment out multiple lines in an alias, popup, or script. Each must be used alone on a single line. 85.Fixed script custom @menu gpf bug. 86.Fixed tabbed dialogs display bug. 87.Fixed line marker being saved to log/buffer as empty line. 88.The /dns command now indicates if a request is being queued. 89.Fixed /echo -iN display bug causing indented part of a wrapped line to display control codes. 90.In the DCC Resume and Accept ctcp messages, mIRC now uses the original transfer filename instead of "file.ext". 91.A single toolbar button is now used for the editor dialog. The red light is now on when any of ctcp/event/raw are enabled, and off when they are all disabled. A right-click on the toolbar button now displays a most recently used files list. 92.Fixed "on top" setting for main mIRC window not being set on startup. 93.Merge logfiles feature now closes all open logs before attempting a merge and then reopens the logs after the merge is finished. 94.Fixed memory bug in logfiles merge dialog. 95.Added $input() options: 'r' creates a retrycancel dialog, 'd' plays the system sound associated with each system icon, 'g' right aligns buttons. 96.Channels list now displays channel names which begin with a non- recognized prefix. 97.On a throttled connection attempt, mIRC will now wait 60 seconds. 98.Fixed mIRC not opening a new webbrowser for "latest news", "how to register" etc. links. 99.Fixed bug in "On Send" setting in catcher dialog. 100.Channel central topic editbox is now limited to TOPICLEN length specific in server numeric 005. 101.Fixed timed unban in /ban command not working with half-ops. 102.Search option in View Logs dialog now actually searches through files for matching text, as well as matching on the filename. 103.Added /ban -k switch, performs a ban/kick. You can specify a kick message as the last parameter. 104.Incoming part messages are no longer truncated to 65 characters. 105.Added Alt+D shortcut to open Aliases section in scripts editor, due to conflicting Alt+A in Favorites menu. The Favorites menu can however be turned off, in which case Alt+A will revert to opening Aliases. 106.Added "navigation clicks" to sounds dialog, makes a sound when you click on a url or hotlink such as a channel/user name. 107.Changed the way colors are referenced for events text in windows so that colors are now an index to the color type eg. "Normal text", as opposed to the 16 color palette. 108.The log view dialog now allows you to merge/delete files that are in use. It closes log files if necessary before using them, and then re-opens them afterwards. 109.Empty lines are now stripped out of popup menu definitions in editor dialog. 110.Many interface changes and improvements. 111.Added color scheme option to colors dialog to allow you to switch between different color schemes easily. 112.Fixed /server -n -i bug not setting nicknames in new server window. 113.Fixed irc:// links not using default port value. 114.Fixed main menu flickering when switching windows. 115.Fixed /amsg and /ame bug when a long message is specified. 116.Fixed $submenu() bug, was over-evaluating parameters. 117.Fixed /rename bug. 118.Notify list now displays network name and server address. 119.Fixed $bfind() bug. 120.Fixed $base() floating point handling bug. 121.When repeatedly calling /notify to add multiple nicknames to the notify list, mIRC now pauses for one second before updating the server to prevent flooding. 122.The $() identifier used in the matchtext section of a remote event definition can now use $1- to reference the incoming line. 123.The matchtext section of a remote event definition can now contain a regular expression. You must specify the $ event prefix to use this feature. on $*:TEXT:m/regular expression/switches:#:/echo message: $1- The 'm' and switches are optional. The // are required. If switches are used they must be standard PCRE switches, otherwise the match will fail. You can use switch 'S' to strip control codes from $1-. 124.On systems that support it, mIRC uses the new format for the browse for folder dialog, eg. $sdir() etc. 125.Added toolbar disconnect confirm option: requires two clicks to disconnect from a server, to prevent accidental disconnects. 126.Fixed $mp3() not returning correct .length for large mp3s. 127.The on CONNECTFAIL event now sets $1- to the error message. 128.Fixed $isdde() bug. 129.Added /color -s "scheme name" to allow changing of color schemes, and /color -l to reload color settings from mirc.ini. 130.Individual incoming lines (numeric 322 during a channel listing) can now be /halted in a script. 131.Fixed popup menu resources bug. Submenus which were merged due to duplicate names were not being freed afterwards. 132.Control+Enter with a /! prefixed command now triggers on INPUT. 133.Changing the flash settings in IRC options now applies them to all open windows (whose flash settings weren't manually enabled). 134.Fixed finger server bug. 135.Added $line().state property, returns selection state for a line in a @window listbox. 136.Control+Break no longer halts a script if it is pressed while mIRC is not the active application. 137.Fixed long script filenames not being displayed correctly in Editor dialog. 138.Added $didreg() identifier, same as $didwm() but uses regex. 139.Extended $fline(), where the T parameter can be 1 to use a listbox, 2 to use regex, or 3 for both. 140.Closing a debug @window now turns off debugging for that server. 141.Added "paste confirm" option to confirm dialog, displays warning you when you try to paste more than N lines of text to a window. 142.Added Key combination Alt+X to toggle maximized state of a window. 143.Binary variables no longer have an upper limit on the number of bytes that can be stored. 144.Added $compress(file|&binvar, blN) and $decompress(file|&binvar, blN) that compress/decompress files/binary variables. The result is raw compressed data. Where -b indicates a binary variable in the first parameter, and -lN sets a compression level of 1 to 6 (the default is 6). 145.Added /write -n switch, prevents /write from appending the line with a $crlf. 146.Using /hdec on a non-existent hash table item now sets it to a default value of -1. 147.Added /debug -i <...> [identifier] which calls the specified identifier before a debug line is logged. The return value of the identifier is used as the debug line. 148.The "enable" sounds option in the sounds dialog now affects most sounds, including highlight, notify, window/icon flashing, etc. Sound requests and Agents still need to be enabled/disabled individually. This does not affect the use of sound-related commands in scripts. 149.Pressing Control-C while marking text in a window now copies the text and cancels the mark process. 150.Added /server -pfoc switches, which prevent: perform, popup favorites folder, auto-join channels, and on connect event, on connecting to a server. 151.Time and date identifiers eg. $ctime() now return $null if an invalid time/date is specified. 152.Status window switchbar button now displays highlight state of associated windows hidden with Alt+F1. 153.Disconnecting via the file menu/toolbar/disconnect command now results in a soft disconnect, allowing any pending server info to be displayed. Incoming data will not trigger scripts, etc. during this time. 154.Added "show nicks on join" option to IRC options dialog. 155.Added "Alt+Z closes active window" option to keys dialog. 156.The $ticks identifier should now take account of the 49.7 day windows tick counter wrapping around to zero. 157.When connecting to a server, named addresses are now resolved before checking for a match in the firewall exclude list. 158.Fixed "session time" not being written to log files at midnight. 159.Fixed $modefirst and $modelast not working in on op/deop/etc. events. 160.Status window titlebar now displays connect info when you are not connected to a server. 161.$calc($null) now returns zero instead of $null. 162.Fixed $dns(0).ip not returning ip address for a failed ip address lookup. 163.Fixed $rand() number distribution bug. 164.Fixed mark/copy display bug. 165.Fixed /did not showing/hiding tabs and their contents properly. 166.Added $comcall(name, alias,...) and $dllcall(filename, alias,...) identifiers, same format as $com() and $dll(), except these return immediately and allow the script to continue running. When the COM/DLL returns, the specified alias is called. 16/08/2002 - mIRC v6.03 Changes: 1.Fixed perform on connect sorting bug. 2.Fixed numeric 330 bug. 3.Fixed menubar and toolbar flickering when switching windows. 4.Fixed ! on INPUT processing bug. 5.Fixed $read/etc. freeze bug when used with invalid filenames. 6./window -o no longer activates a window. 7.Fixed switchbar multi-line display bug. 8.Fixed /window -h and Alt+F1 bug. 9.Fixed up/down keys not working in certain windows. 10.Fixed DCC ignore bug. 11.Fixed /timer bug, was triggering too early in some situations. 12.Fixed /window -h displaying minimized icon for a window when switchbar was turned off. 13.Shift+DoubleClick on a line in the Channels List window now joins the channel minimized. 14.Fixed bug in highlight feature. 15.Fixed remote toolbar button right-click menu bug. 16.Nick color list now allows you to add an item with no color selected. 17.Fixed background picture display bug when a window is resized. 18.Fixed listbox selection/cursor bug which affected listboxes in dialog windows. 19.Fixed /load command triggering multiple on load events. 20.mIRC now supports the IRCX events KNOCK, WHISPER, EVENT, PROP on any server that sends them, not just an IRCX server. 21.Added on LOGON event, triggers before and after mIRC sends the standard PASS, NICK, and USER messages to the server. on ^*:LOGON:*:echo Logging on to $network $server on *:LOGON:*:echo Logged on to $network $server If you /halt the event, mIRC will not send the standard logon messages, allowing to send your own messages. 22.mIRC will again try to rejoin a channel even if it was +i or +k, since there are situations on some networks where the rejoin will work. 23.Fixed /set -u0 bug not unsetting variables in some situations. 24.Fixed enter key bug in empty channel nicklist. 25.Changed $ticks back to old method due to bug in Windows high performance timer which returned incorrect values. 26.Now handles numeric 378 in whois replies. 27.Fixed fileserver window not being closed on a time-out. 28.Fixed window active titlebar display bug when certain Window tile/cascade options were enabled. 29.Fixed /did -k not triggering events again if halted once. 30.Fixed debug window not showing entire raw line if it contained a $cr or $lf. 31.Fixed on START bug caused by loading custom dialogs during the event. 32.Fixed memory bug in script parser. 33.Fixed /load /unload not treating short/long filenames as the same file. 34.Notify list titlebar now shows total number of notify users online across all server connections. 35.Added $window().sbtext and .sbcolor properties. 36.Can now mark/copy text backwards or forwards. 37.Fixed $base() bug not handling negative numbers correctly. 38.Added $ialchan().pnick property. 39.Added $serverip identifier, returns server ip address. 40.Added /editbox -f switch, sets editbox focus. 41.Added $nick().idle property, returns idle time in seconds for nick on a channel, ie. the time since the user last sent a message to the channel. 42.Fixed on CONNECTFAIL bug. 43.Fixed $mklogfn() bug. 44.Fixed proxy authentication bug. 45.Added idle time option to nick color list dialog. Also added $cnick().idle property. 46.Fixed $asctime() bug. 47.Fixed /ignore -u bug. 48.Added exception masks option to firewall dialog. 49.Fixed DCC server ignore bug. 50.Can now specify %variables in a dialog item definition, and the %variable will be set with the contents of that item when the dialog is closed, eg. edit "", 2, 10 10 100 20, autohs %test 51.Online timer now handles multi-server connections. 52.Changed $input(prompt,N,window,title,text), where N is: e - show input editbox p - show input password editbox o - ok button y - yesno buttons n - yesnocancel buttons v - return $ok, $yes, $no, $cancel for buttons iqwh - show the info, question, warning, and hand icons s - indicates that window name has been specified a - activate dialog 53.Fixed @window menu bug relating to $1 value when no item was selected in a listbox. 54.Added $md5(text|&binvar|filename,[N]) identifier, where N = 0 for plain text (default), 1 for &binvar, 2 for filename. 06/06/2002 - mIRC v6.02 Changes: 1.Fixed tab key nick completion bug. 2.Fixed window tiling bug when a maximized window is closed while auto-tile/cascade is enabled. 3.Fixed /dcc trust bug. 4.Fixed on keydown/keyup events in custom @windows not handling some keys. 5.Fixed editboxes limiting amount of text that can be entered. 6.Fixed DCC sends/chats not being auto-minimized when switchbar was turned off. 7.$ticks now uses a different method to get the ticks value. 8.Extended /drawsave -qN to save .jpg files with quality N, where N is between 1 and 100. 9.Custom dialog initial size now takes account of wrapped menubar height. 10.Fixed memory handling bug in jpg loading routine. 11.Extended switchbar multi-line option in display dialog. 12.Added Options dialog to Window menu. 13.Inverted /drawpic -m switch, now uses slower better quality method only when -m is specified. 14.Fixed mIRC always adding itself to the tray if the tray is restarted even if tray option wasn't enabled. 15.Added /dialog -h switch, works same as -i in /timer and /window, makes dialog hop between connections. 16.The on CLOSE event is now again triggered for open windows when mIRC exits. 17.mIRC now uses the default system cursor for hotlinks. 18.mIRC now uses the command "LIST stop" to stop the channels list from the server, on all IRC networks. 19.Fixed /flash bug. 20.Fixed /ignore -r bug. 21.Fixed DCC get file exists dialog bug incorrectly truncating file before rename. 22.Fixed DCC server protocol bug when rejecting a connection. 23.The on INPUT event is no longer triggered for commands that use the ! command prefix. 24.Fixed $style() menu option not being set in some situations. 25.Fixed $inrect() bug. 26.Fixed /drawcopy bug, was copying one pixel too many. 27.Extended Channels Folder Add/Edit dialog to allow selection of multiple networks for each channel entry. 28.Fixed fserve window time-out beep/closing bug. 29.Fixed connection wizard dialog bug. 30.Fixed * Disconnected not being displayed in channel window in some situations. 31.Fixed tooltip display bug. 32.Fixed /notify /ignore /protect /aop /avoice not always applying nick color settings after changes. 33.Fixed bugs in DCC trust feature. 34.Added ignore option to DCC trust dialog. 35.Fixed /sound lpt1/com1/etc. bug under Win2k. 36.Editing an item in the highlight dialog no longer changes the position of the item. 37.Fixed $dccignore(N) bug when N = 0. 38.Fixed $submenu() not working in picture @windows. 39.Fixed ctcp finger reply not evaluating user name if it contained variables or identifiers. 40.Fixed /hdel -w bug, wasn't unsetting items which had been created with the -z switch. 41.Notify list window titlebar now shows total number of users in list. 42.Perform on connect section now allows you to specify a different set of commands for each network. Moved perform dialog to connect section. 43.Fixed $input() bugs. 44.If a $cid ceases to exist during execution of a script, eg. if /window -c is used to close a status window, mIRC now re-assigns the script to an existing $cid. 45.Fixed scrollbar display bug in windows in some situations. 46.Fixed /window and $mouse.dx/dy bugs when windows taskbar positioned at left/top of desktop. 47.Fixed mIRC not using system default for browser/email programs. 48.Fixed $active/$lactive bug. 49.Fixed bug which caused custom dialog to lose focus when window was closed with /window -c. 50.Fixed /set -u0 bug not unsetting variables in some situations. 51.The "unable to join channel" message is now displayed in the status window and in the channel window. 52.Strip codes option in logging dialog now also strips control codes from the timestamp. 53.Separators at the bottom of a custom menu definition are no longer stripped out from a menu. 54.Fixed $gettok() bug when handling negative N values. 55.Can now use /font to set font settings in mirc.ini for non-open windows. 56.mIRC no longer closes a channel window on reconnect to a server if you have keep channels open enabled. 57.mIRC no longer attempts to rejoin a channel on reconnect if the channel was +i, or if it was +k and mIRC didn't have the key. 58.Fixed /window -f bug when used on hidden @windows. 59.DCC Sends/Gets that fail during transfer now show cps/time info in status window message. 60.$var() now evalutes the first parameter if it isn't a %variable. 61.Dlls opened by $dll() or /dll are now closed before mIRC closes all other windows on exit. 62.Can now use %variables in custom dialog table definitions for control size/position values. 63.Fixed /dcc send not handling UNC format filenames correctly. 64.Fixed MIME $encode()/$decode() bug when processing &binvars that contained zero values. 65.Can now use $* as a parameter to an alias. 66.Fixed $bvar().word/nword/long/nlong properties, now return an unsigned value. 67.Fixed infinite recursion bug when using /timer -e switch. 68.DCC Get Resume dialog now shows current and incoming file size. 69.Added on dialog close event. 70.Custom dialogs no longer require an ok or cancel button. 71.Added $sin()/$cos()/etc. .deg property to treat number as degrees instead of radians. 72.$window().type for custom windows now returns: custom, picture, and listbox. 73.Mozilla is now used correctly when opening URLs. 74.Changed "Group by Network" behavior. 75.You can now use $dns(0).nick/addr/ip to reference properties if an address couldn't be resolved. 76.Fixed memory handling bug when using /sockwrite * wildcard format. 77.Added /window -R switch, resets window position to previously saved position. 78./nick changes are now saved to mirc.ini immediately. 79.Fixed bug with second editbox not appearing when you are voiced on a channel. 80.Fixed nick in channel/query window titlebar not being updated on a nick change if "Show nick in channel/query titlebars" was enabled. 81.Using $hget(name, item, &binvar) where item is a non-existent item now returns 0 and does not create the &binvar. 82.Added /hload and /hsave -i switch, saves hash table in INI file format. Can specify optional [section] name after filename. 83.$regex() now handles empty strings correctly. 84.Rejoin channels on connect option now combines JOINs for multiple channels. 85.Fixed /socklist display bug for listening connections. 86.Extended $hfind(name/N, text, N, M) to handle wildcard/regex matches. Where M is: n - normal text comparison (default if M isn't specified) w - text is wildcard text W - hash table item/data is wildcard text r - text is regular expression R - hash table item/data is regular expression Note: $hmatch() and $hregex() are still supported for now but are no longer listed in the help file. 87.Fixed mouse button right-click popup menu bug when connected to multiple servers. 88.The second parameter in a /who request is no longer treated as a filter string if it does not contain a wildcard character. 89.Fixed bug relating to time and timezone handling, happened only in certain timezones. 90.The /aop /avoice /protect /ignore commands now allow you to specify a network name as the last parameter. 91.Updated Regular Expression library to PCRE v3.9. 92.Updated PNG library to PNG v1.2.1. 93.Added sort button to control dialog. 94.Can now specify wildcard name in /close command. 95.Fixed bug in Copy messages to Query window feature. 96.The -r and -l switches now work the same way in /aop /ignore /avoice and /protect. 97.Added on CONNECTFAIL event, same format as on CONNECT, triggers when a connection attempt (including retries) has failed. 98.Added /clearall -snqmtgu switches, where s = status, n = channel, q = query, m = message window, t = chat, g = finger, u = custom. If no switches are specified all windows are cleared. 99.Added /bread -t switch, reads data up to the next CR/LF. 100.Added "Flush files" option to DCC Options dialog. 101.Fixed /timer bug, may not have been triggering correctly in some situations. 102.Show whois in active window now handles /whois nick1,nick2,etc. 103.Added IRCX-specific fix for handling messages sent by a channel to a user, eg. #channel PRIVMSG nick :message. mIRC only supports this format when connected to an IRCX server. 104.Added Alt+LeftClick on Status Window switchbar button, shows/hides all switchbar buttons associated with the status window. New windows will always have their buttons displayed even if the hide option is on. Can also use Alt+F1 to show/hide buttons. 105.$mask() now handles ^ and = as userid prefixes. 106.Fixed List Channels dialog bug which caused it to lose settings in some situations. 107.The on DIALOG mouse event now triggers over controls in a dialog and $did is set to the control id value. 108.Added on DIALOG active event, works with $dialog().active. 10/02/2002 - mIRC v6.01 Changes: 1.Fixed MDI border display bug when windows are opened while mIRC is minimized. 2.Added visual styles dialog to display dialog. 3.mIRC no longer changes all paths/filenames to lower case. 4.Fixed notify list being lost if you used command line parameters in a shortcut icon to change the default INI filename. 5.Fixed /cnick -an bug. 6.Fixed IRCX support for MS servers. 7.Fixed $target bug in channel events. 8.Fixed $dns(N) always returning a value, even if N was invalid. 9.Fixed on NOSOUND event not triggering. 10.Added Show away in active window option to IRC dialog. 11.Added /editbox -o switch, applies to the second editbox in a channel window. 12.Extended $editbox(window,N), where N = 1 applies to second editbox in a channel window. 13.Channel Central and Folder dialogs are now closed only when you disconnect the connection on which the dialogs were opened. 14.Fixed /ignore -u bug multi-server support. 15.Fixed display of small buttons in finger/chat/find dialogs under XP. 16.Added irc:// link options to catcher dialog. 17.Fixed password editbox in Lock dialog not allowing enough characters to be entered under XP. 18.The channel central dialog will now always popup centered over the channel window where it was called. 19.Added $cmdbox, returns $true if script was called from the command editbox in a channel. 20.The /fullname and /username commands now correctly update their settings before a connection is made. 21.Fixed DCC send/get/chat/fileserver timeout message bug. 22.Fixed $eval() bug when handling N parameter. 23.Fixed $hget() bug when .item or .data was specified with an out of range N value. 24.Fixed query window titlebar not displaying user address even if user was in IAL. 25.Fixed notify nickname hotlinks not working. 26.$disk(a:) no longer causes a windows dialog to pop up if there is no disk in the drive. 27.Fixed titlebar right-click option not working on desktop windows. 28.Fixed /whois away reply resetting $awaytime value. 29.Made DDE delay editbox width larger in options dialog. 30.Fixed /play not being cancelled if unable to play to nick/channel. 31.Fixed channel central ban list appearing in status window in some situations. 32.Local info server lookup method now holds on to any host or ip address that it has, even if the DNS lookup for that address failed. This means that if numeric 001 or a /whois or /userhost returns your IP, mIRC will use it even if it can't resolve your host from it. 33.Fixed Agent support in Sounds dialog. 34.Identd should again work for any external applications, not just for mIRC connections. 35.Menu items created by $submenu() can now call local -l aliases. 36.Fixed $sfile() titlebar text bug. 37.Switching between maximized windows no longer causes flicker. 38.Chat/query windows now only prevent you from closing a window if an incoming message appeared in the window, not your own typed message. 39.mIRC is now a bit more lenient with CTCP message formats. 40.$address now returns address of the server that sent the server message. 41.Fixed while loop break/continue bug. 42.Added /drawsave -bN switch, specifies number of bits. 43.Added -m switch to /draw commands, changes the stretch mode quality when a picture is resized. 44./dcc get now overrides the "sort by nicks into own folder" option in DCC folder items. 45.A /mode on join is no longer sent went joining a modeless +channel. 46.Added /dcc trust [-r] to add/remove items to DCC trust dialog, and $trust(N) to return items in trust list. 47.Fixed DCC send/get/chat timing out when system time changed. 48.Channel nicklists are now cleared after the on DISCONNECT event has been triggered on a disconnection. 49.Flash option for a highlight item now flashes continuously, whereas the sound is played only N times. 50.Can now use $opnick in on owner/deowner events again. 51.Fixed /server N gpf bug where N is a non-existent Nth server. 52.Fixed connection related gpf bug. 53.Fixed DCC send/get windows not showing "transfer incomplete" in some situations when a transfer fails. 54.Improved /ignore /protect etc. handling of network/non-network specific addresses. 55.Added /server [-i nick anick email name] [-j #channel pass] switches, must be used after the server parameters. 56.Added "User id from email address" to identd dialog. 57.Fixed on close ? event triggering when status window is closed. 58.Fixed $sound() bug. 59.Fixed /whowas and /whois away message handling bug. 03/02/2002 - mIRC v6.0 Changes: 1.Fixed /filter numeric sorting bug. 2.Fixed $hget().data bug. 3.Fixed Nick color listbox display bug. 4.Fixed $mask() not handling masked address. 5.Channel nick list is now cleared when you disconnect from a server and you have "keep channels open" enabled. 6.Added /flush -l switch, removes only the specified levels from entries in the user list, instead of removing the entries. 7.Added $mnick back, returns your primary nickname. 8.The max cps fserve option now allows a DCC send to use up the full max cps if no other DCCs are using the bandwidth. 9.Speeded up the way the servers list is handled in many routines, including identifiers such as $server(). 10.Fixed mIRC not processing ports correctly in server definition if password contains a - character. 11.Improved the way /dcc get works, now also allows you to redirect a file to any folder. 12.Fixed switchbar display bug with overlapping buttons. 13.Fixed topic text being highlighted in channel central when dialog is displayed. 14.mIRC now recognizes MS IRC Server 6.0 as IRCX. 15.Fixed /whois, etc. bug in query windows which was causing a command to use the wrong nickname. 16.Fixed /drawrect -d bug. 17.Fixed /filter not working with local aliases. 18.Fixed $! not being passed in $iif() call. 19.Added /notify -l switch to list notify entries. 20.Added dialog -l table definition switch, makes a dialog table local, now also looks for dialog table in the active remote file before searching through all others. 21.Added command line switch -nouninst which prevents mIRC from adding an uninstall item to the control panel add/remove dialog. 22.Fixed switchbar, in left/right position, not displaying partial button at bottom. 23.Fixed selecting MDI window menu item in tray menu not redisplaying mIRC window properly. 24.Open Folder button in DCC Get dialog is now enabled even if transfer fails. 25.Fixed #$N- bug. 26.Added /ial [on | off] back for users who need to disable the IAL. 27.Fixed "monitor file changes" option not working with LFNs. 28.File/Folder dialogs and sub-dialogs no longer show "mIRC" in titlebar. 29.Uninstaller now deletes files in the root mIRC folder only and not in sub-folders. 30.Added "Reset default size" option to nicklist dialog. 31.Wheel mouse now scrolls listbox without it needing focus. 32.Added set/use default options to system menu background popup. 33.Fixed window tiling overlap bug. 34.Added 'flat' and "multi' styles to custom dialog button control. 35.Can now create a second editbox on channel windows, via the channel window system menu and right-click menu in editbox. You can use Alt+Q to show/hide the editbox. Also added "Tab key changes editbox focus" to General dialog, makes it easier to switch to the second editbox. The tab key still works as nick/channel/etc. completion if cursor is next to a word. If enabled, you need to use Shift-Tab to cycle between the list of nicks that messaged you. 36.Blink feature now only blinks icons for query/chat windows, and on channels or the message window only if a highlight event was triggered. 37.Fixed /exit not closing mIRC if Editor dialog is open. 39.Updated color dialog, also added inactive editbox option. 40.A DCC resume now chops off the last 8192 bytes of a file in case the end of the file was corrupted during a previous transfer. 41.Added /tnick command, changes to a temporary nickname without affecting your main and alternate nickname settings. 42.$window(-3).dw/dh now return the display area of the MDI window. 43.Fixed Alt+N key bug which would cause it stop working in some situations. 44.Fixed /hadd gpf when insufficient parameters were used. 45.Can now use \ to escape a literal character in $regsub() in the substitution expression. 46.Added /links -nx switches, opens links window minimized or maximized. 47.Added 'nowrap' property to custom dialog text controls. 48.Can now specify "range N N" for custom dialog scroll control. 49.Fixed /dialog bug preventing you from creating more than one modal custom dialog. 50.Fixed a bug in my socket random port selection routine. 51.Fixed /load -rs \path\to\script.mrc not loading the script. 52.Fixed /echo -h bug. 53.Fixed /server gpf bug with long server names. 54.If the auto-close DCC send/get options are enabled and you manually click the cancel button in DCC send/get windows, they are no longer auto-closed. 55.Fixed $snicks error message, and it no longer halts a script if used on a non-channel window. 56./renwin now allows you to change the window name even if it's the same name but different case. 57.Away messages for a nick are now displayed in their associated query window if it is the currently active window. 58.mIRC will no longer rejoin an open channel window if you disconnect and then connect to a different network. 59.Added /pvoice command, works the same as /pop but for +v modes. 60.Fixed nick color list bug, was coloring nicknames incorrectly if your ignore/op/voice/etc. lists where not enabled. 61.Hotlink now works for all channel names in channel windows. 62.Fixed bug with /play -e option processing | separator in text. 63.Added internal support for +d channel mode for hybrid6 servers. 64.Fixed $cnick().method bug. 65.Added $awaymsg and $awaytime to return away status when used with $away identifier. 66.Added /window -B switch to prevent custom @window editbox from using a border. 67.Fixed $nick().color not working correctly when used with the 'aohvr' mode parameters. 68.$readn is now correctly reset on a failed $read. 69.Fixed $remove() not working if a $null substring was specified. 70.mIRC no longer includes the >N parameter in a /LIST if N is zero. This allows it to list registered channels with no users. 71./channel request now has a time-out again. 72.Fixed /flash -rN, now repeats flash only N times. 73.The nick color list now allows you to prioritize the list, so mIRC no longer determines the best match by itself, it will use the first match it finds in the list. 74.Added support for server redirection numeric 10. 75.Fixed Position Reset menu item not working correctly if window MDI/desktop position changed. 76.Fixed bug with +channel windows. 77.Added /remove -b switch, deletes file and places it in the recycle bin. 78.Improved $rand() behavior. 79.Added /if islower/isupper comparison. 80.Added WMA/OGG support to sounds dialog, /splay and /sound commands, and added new identifiers. $sound(filename|type) Returns information about the specified file if a filename was specified, or the associated folder for a filename or file type, where type can be wave, midi, mp3, wma, ogg. When used with an mp3 files it supports the same properties as $mp3(). Note: this replaces $wavedir, $mididir, $mp3dir, and $mp3(). These are still supported for now but no longer documented. $insong Returns information about the mp3, wma, or ogg file that is being played, same properties as $inmp3. Note: this replaces $inmp3, which is still supported for now but no longer documented. 81./alias now replaces an existing alias without changing it's position in the script. 82.Added Trusted Users list to DCC Auto-get options dialog. 83.Changed behavior of #channel name tab completion to include currently open channels. 84.Custom dialog size now takes account of menubar height. 85.Added $timestampfmt to return options dialog timestamp format. 86.Fixed Shift+Control+V pasting text twice. 87.Fixed /renwin not allowing custom menus to work with new window name. 88.All internal joins and names now use the /join and /names commands to allow scripts to override the default behavior. 89.Added $send()/$get() .resume property returns resume position. 90.Added "fast screen update" back to options/display dialog. 91.Fixed /links gpf bug with long server addresses. 92.Added minimize button to DCC chat accept dialog which also has default focus. 93.Log files now include a "Session ident" at the start of the log, with the name of the window being logged. 94.Fixed /channel behavior when used on an open channel window from which you were kicked. 95.Fixed window positioning bug when Windows Taskbar wsa on the left side of the desktop. 96.Incoming DCC get files are now flushed to disk every 500k. 97.Fixed remote script popup menus not being merged properly. 98.Added case-sensitive option to Highlight dialog items. 99.Added Message Window double-click item to Mouse dialog. 100.Added $color().dd property, returns double digit format. 101.Fixed fserve cd/get bug. 102.Fixed $base() not handling fractions properly. 103.Fixed "Save As" bug in scripts editor dialog when over-writing an existing file. 104.Firewall can now be enabled separately for server and DCC connections. 105.Added signalling commands and events which allow you to trigger signal events in scripts: /signal -n [parameters] By default the signal is triggered after all current scripts have finished executing. You can use -n to make the script trigger immediately. on *:signal:name:echo Received signal: $signal Parameters: $1- The name can contain wildcards. The script that called /signal is triggered first, and then all other scripts are triggered. 106.Fixed DCC send/get/chat beeping on completion when you had your Sounds disabled in the Options/Sounds dialog. 107.mIRC now strips out tab characters from filenames. 108.$input() now allows $null for all parameters except prompt. 109.Fixed DCC chat "ignore all" option bug. 110.Fixed bug where on DNS event triggered for DNS requests not made by the /dns command. 111.Added $dns(N) identifier, used in the on DNS event to list the address that was resolved and any associated IP addresses. Properties: nick, addr, ip. $dns(N) without a property returns the address being resolved. You can use N = 0 to return number of IP addresses found. Note: the old identifiers $iaddress, $naddress, and $raddress are still supported but are no longer listed in the help file. 112.Added $ignore().secs property, returns number of seconds until ignore is removed if /ignore -uN was used. 113.Can now use $null as third parameter in $dll() identifier. 114.Added /echo -g switch, prevents line from being logged to logfile, and /echo -r switch which applies the strip settings in the Options, Messages dialog. 115.Fixed script menus not working when first line of menu definition was empty. 116.Fixed mIRC not handling multiple numeric 005's correctly. 117.Custom dialog "limit N" option now works in combo editbox. 118.Added /hadd -z switch, decreases hash item once per second until it reaches zero and then unsets it. Also added commands: /hinc -smbczuN [data | &binvar] /hdec -smbczuN [data | &binvar] Switches are the same as /hadd, except for -c which increases or decreases the value once per second. Also added $hget().unset property, returns time remaining before item is unset. 118.Fixed DCC send/get windows sometimes not showing 100% completion after a transfer has completed. 119.Changed highlight dialog item "Flash N times" to apply to both the number of times mIRC flashes and plays the flash sound. 120.DCC chats now display the time the connection was initiated in the DCC Chat Session line. 121.Changed the way /set -u0 works slightly. 122.Fixed $eval() not handling values containing commas properly. 123.When running under XP, mIRC now uses the XP theme for dialogs, buttons, etc. 124.Can now change nicknames in options dialog while connected. 125.Added $stripped identifier, returns number of BURK codes that were stripped from an incoming message, if any. 126.Extended /socklist [-tul] [name], allows you to list open tcp, udp, or listening sockets, as well as sockets matching the specified wildcard name. 127.While loops now works properly even if {} enclosing brackets aren't used. 128.Fixed /queryrn, was allowing you to change the name of any window not just query windows. 129.The retry options in the connect/options dialog now have their own dialog. 130.The /clearall command no longer clears custom @windows, only status, channel, and query windows. 131.Fixed display of $+ string too long error message. 132.The /alias command can now handle LFNs in quotes. 133.Added $cmdline identifier, returns command line passed to mIRC when it is first run. 134.Auto-join on invite now uses channel's password from channels folder if it is listed in the folder. 135.The "Logging to" message now shows the full logfile name. 136.Fixed $chan().ial issue, I've added a separate $chan().inwho property. $chan.ial will still return $inwho for now but will not do so in future versions of mIRC. 137./filter now allows you to use -l to read from a channel nickname listbox. 138.Fixed $timer().reps returning negative value in some situations. 139.Fixed $read and $readini bug. 140./cnick * N now sets the Any mode/No mode switches if no mode is specified, and *!*@* now matches any nickname. 141.Fixed bug with full exception list not being displayed in channel central dialog. 142.Popup menus now allow menu headers without a sub-menu. 143.The control dialog lists, ie. ignore, voice, protect, op, are now stored in a control.ini file, separate from mirc.ini. 144.Fixed servers.ini processing bug, mIRC was unable to read server entries which didn't specify a port number. 145.Fixed $dll() not correctly handling partial paths in filenames. 146.Fixed $result not being reset to an empty value when /return $null is used. 147.Added logging dialog "make folder" option to network option. 148.Added retry delay option to Retry connect dialog. 149.It is no longer possible to enter editbox commands that begin with an $identifier or %variable. 150.Added $submenu($id($1)) identifier, can only be used in popup menu definitions. It calls $id($1) with $1 = 1, increasing $1 with each call, and adding whatever is return by $id() to the popup menu. The returned value must be a one line definition format for a popup menu. The iteration ends when $id() returns no value. test { if ($1 == begin) return - if ($1 == 1) return Moo:echo Moo if ($1 == 2) return Cow:echo Cow if ($1 == end) return - } The "begin" and "end" values are sent to check if the item should be enclosed in separators. 151.Added "Group by Network" option to Window menu. 152.Added "Save Links" option to Links window popup window. 153./server address now looks for a match for address in servers list and uses that info for the network, group, etc. 154.$islower()/$isupper() now ignore numbers. 155.Comments in popup menus are now handled correctly. 156.Fixed /showmirc -t and window restore via tray bug. 157.$read() should now correctly handle matchtext with quotes, also fixed a bug in $read() handling of -s switch. 158.Extended socket commands to allow binding to an ip address: /socklisten -d [ipaddress] etc. /sockopen -d [ipaddress] etc. /sockudp -d [ipaddress] etc. Also added $sock().bindip and .bindport properties, and /socklist now shows the bind address and ip. 159.Can now use /halt in the on KEYDOWN event to prevent mIRC from applying it's own TAB key completion. 160.Added "Queue own messages" option to flood dialog, applies only to your PRIVMSG and NOTICE messages. Also added "Show status updates", displays flood queue status 1) when there is a new item in the queue, 2) every 10 seconds, if the queue status changed, and 3) when the queue becomes empty. 161.Added [type] parameter to /protect command. 162.Added kludge to handle multiple meanings for numeric 477 on DALnet servers. 163.mIRC now processes only the first 700 bytes of an incoming server message, and ignores the remainder up to the next LF character. 164.Editor dialog now also displays horizontal cursor position. 165.Fixed find text dialog not saving trailing spaces in search words. 166.Fixed /drawtext width measurement bug. 167.Fixed bitmap file loading bug. 168.Imroved $wrap(), no longer needs to re-calculate if you use the same parameters as the previous call. 169.Added support for DALnet services numerics 650 and 651. 170.Improved file/dir existence checking routines. 171.mIRC now prevents a chat/query window from being closed if it receives a message just as you click the close button. You need to click the close button twice within a few seconds of the last message to close the window. 172.Fixed $sfile() $sdir() not handling incomplete paths properly. 173.Fixed /splay -c bug. 174.Fixed /window not handling LFNs for icon filename. 175.Changed $sfile() behavior, it will now only list files of the type you've specified, if it finds a match for that file type in the "file types" listbox in the file dialog. 176.Added Multi-Server support. mIRC now allows you to connect to multiple servers at the same time. This feature required major internal changes to mIRC code and forced improvement of code in many areas which has hopefully resulted in a more stable/robust mIRC. Added "New server window" checkbox to connect dialog. To open a new server window without connecting to a server, you can check the "New Server Window" checkbox and press the OK button. Added "New Server Window" menu item to options toolbar button servers popup menu. You can also open a new server window by holding down the Shift key when you select a server from the popup menu. Added multi-server dialog to connect/options dialog. New commands and identifiers: $cid - returns server connection id for current script $wid - returns window id for current script $status - returns server connection status. Also returns "closing" during the on disconnect event if the status window being closed is the cause of the disconnection. $activecid, and $lactivecid. $scid(N)[.command], where N is a $cid value $scon(N)[.command], where N is the Nth connection If N = 0, returns total number of open status windows. You can also specify a property which is a command name and it will be called using that server connection. /scid <-rsatM | N> [command], where N is a $cid value /scon <-rsatM | N> [command], where N is the Nth connection If you specify a command, the connection id is set only for that command. The -r switch resets the connection id to the original id for that script. The -a and -tM switches can only be used if you specify a command. -a - perform the command on all connection ids. -tM - where M is an or'd value of 1 = server connected, 2 = not connected, 4 = connecting, 8 = not connecting. The command is only performed if N matches the connect status of the connection id. Note: if you use a command that contains $identifiers, and you want the identifiers to be evaluated in the target connection, you must pass them as $!identifier to prevent them from being evaluated first in the current connection. Also added new properties to $window(): .type - returns window type name And to $query(), $window(), $chat(), $send(), $get(), $chan(), and $timer(): .cid - server connection id .wid - window id .hwnd - window handle Added /server -mn switches, where -m creates a new server window and connects, -n creates new server window without connecting. Misc. notes: Windows whose server connection has been closed are placed at the end of the switchbar list. This includes things like DCC send/get/chat, and custom windows. Everything in mIRC now has a unique id number, all windows, server connections, DCC sends/get/chats, etc. The tray icon displays the animation for the current active server connection, same goes for the Connect toolbar button, and File menu. Each server connection has it's own /play list, and the play dialog shows the play list for the current active connection. Urls list "Send To" menu, and Tray popup menu, show the network and nickname for each status window. 177.Added /timer -i switch, makes a timer auto-associate with the currently active server connection. The -i switch keeps the /timer alive across server windows, if a server window is closed, the /timer just picks a new one automatically. /timer now shows the associated network name for a timer. You can use $timer().anysc to check if it has the -i switch enabled. 178.on PLAYEND is now triggered at the end of each played file. 179.Extended /ignore, /protect, etc. handling. Changed display format in Control dialog listbox. /ignore, /protect, /aop, and /avoice now all by default include a network name, unless you use the -w switch. /ignore -l now displays the unignore time. /ignore -l, when you're not connected to a server, lists all ignores. When connected, it lists all ignores that apply to that connection. Added .network property to $ignore()/$protect/$aop()/$avoice(). Also note that isaop, isavoice, isignore, and isprotect all apply to the current connection. 180.Added /window switches: When a @window is created, it is automatically associated with the current connection. If that connection is closed, the @window is associated with the next available connection. You can change this behavior with /window -ivz: -i - makes a @window dynamically associate with the currently active connection. You can use $window().anysc to check if this setting is active. -v - closes window when associated status window is closed The on close event is triggered for the window. If this switch isn't used and the status window is closed, the @window is moved to the end of the switchbar, and is associated with the first available status window. -z - places window button at end of switchbar 181.The . prefix now makes /debug quiet. Extended /debug to allow output to a custom @window or filename. /debug [-cnpt] [N] [on | off | @window | filename] /debug -c off closes associated @window /debug -n @moo opens @window minimized /debug -pt wrap or timestamp text /debug N @moo use color N for text $debug returns name of debug file or @window. /debug now works independently for each server connection, indents lines if not wrapped, and prefixes each line with the server address, and <- and ->. /debug @window now also works with listbox @windows. 182.Active switchbar button now uses bold text and shaded background. 183.Using new path-splitting routines which affect eg. $nopath(). 184.Auto-tile/cascade/arrange are no longer triggered when you close a desktop window. 185.Fixed switchbar/toolbar display glitch when mIRC window is sized to a very small height. 186.Fixed $findfile() bug when handling wildcards with numbers. 187.$chan is now filled for the on ctcpreply event if it was a channel ctcp message. 188.Ctcp messages that use an invalid format are now treated as plain text, and will trigger script events. 189.Added "Control+Tab uses switchbar order" to General dialog. 15/06/2001 - mIRC v5.91 Changes: 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 scripts 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() behavior. 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 Changes: 1.Fixed wheel mouse bug when 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 behavior 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 behavior 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.Scripts 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 overrides 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 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.Extended $os to detect 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 successful, $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. 14/12/2000 - mIRC v5.82 Changes: 1.Fixed DCC folder ignore bug. 2.Fixed bug in /mode reply display for channel creation time. 3.Fixed tab completion not working with channel names in channels folder dialog. 4.Added /dcc ignore [on|off|only|except] command. 5.Fixed channel nicklist being affected by line-spacing settings. 6.Fixed DCC chat/fserve MDI/desktop setting not being saved. 7.When using function keys in a channel, the $1- identifier now always contains any nicks selected in the listbox. 8.Improved handling of irc: URI and .chat files. 9.Fixed flood protection bug. 10.The 32bit mIRC will no longer work under win3.11/32s. 11.Fixed SJIS/JIS conversion not working in DCC chats. 12.Fixed invalid cps display in DCC send/get when resuming a file. 13.Fixed custom dialog bug when using a background bmp, checkboxes weren't being displayed properly. 14.Change limit cps method in fserve dialog, should now be more precise, and should send packets more smoothly. 15.Added Control+L key combination, scrolls to the last line you read when the status/channel/chat window was last open/active. Added Line Marker dialog to Display/Options dialog. You can also use a picture for the line, rgb 255,0,255 is the transparency colour, same as for switchbar/toolbar pictures. Custom windows can use line marker feature if they are created with /window -m switch. 16.Fixed channel central bug, was trying to set topic even if you didn't have ops. 17.Fixed gpf bug in $mode() when used outside of a remote event. 18.Added $ctimer identifier, returns name of timer that triggered the current script. 19.Fixed bug which prevented opening more than one $dialog() at a time. 20.$lf and $cr chars are now stripped from lines written to ini files. 21.Changed $bvar(&binvar,N-N2) to $bvar(&binvar,N,M), where M is number of bytes, simplifies use. Old format still supported. 22.Fixed $iif() bug. 23.Channel windows can now be closed during a disconnect even if rejoin on connect is turned on. 24.Added $play(N)/$play(Nick,N) identifier, with properties: type, fname, topic, pos, lines, delay, status. Returns info on /play queue. 25.Added "Event" colour to Options/Display dialog. This colour is now used for all non-message events. The "Message" colour is used for actual messages, and the "Highlight" colour is used for highlighted messages. 26.Added Names button to Channels Folder. 27.Fixed bug with empty text "" in menu items in custom dialog. 28.Added $disk(drive).unc returns UNC path for network drive. 29.$mp3() now caches the info for the last referenced mp3 file. 30.Can now use styles (top left right bottom) with custom dialog icon definitions to align picture. Default is center. 31.Added built-in mouse wheel support for microsoft mice. 32.Fixed topic setting in events display dialog not being used. 33.Fixed $round() bug, was rounding negative numbers incorrectly. 34./ban now expands ban address if you didn't specify a full nick!user@host address format. 35.Fixed channel folder group entries not auto-joining. 36.Can now /join group to join a group defined in the channels folder. 37.Fixed bug in $ulevel. 38.When using mode prefixes with tab key nick completion on a channel, only users with the specified mode are shown. 39.Added $findfile().shortfn property. 40.Fixed bug in $inrect(). 41.Fixed /set bug when first character of variable is a wildcard. 42.Custom dialog icon definitions now default to the path of the script if icon isn't found in mIRC root folder. 43.Fixed $dialog().hwnd bug. 44.Fixed $readini bug. 09/11/2000 - mIRC v5.81 Changes: 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 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 change 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] [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 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 for example, #mIRC Note: currently this format only seems to work with IE. 100.Can now set localinfo manually with /localinfo . 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 Changes: 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 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 , can now also use /colour 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 $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 highlighting 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 behavior of on HOTLINK event, /halt in one script will no longer affect the event in a following script. 69.Extended $os to detect 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 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 - create a new hash table size N /hfree - destroy an existing hash table /hadd - add an item /hdel - 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 - load table from a file /hsave - 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. 07/05/2000 - mIRC v5.71 Changes: 1.Fixed text wrapping bug in /gtalk. 2.Fixed scrollbar not being displayed in address book nick listbox. 3.Fixed switchbar display bug. 4.The toolbar/switchbar now use colour 255,0,255 as the background transparent colour. 5.Changed the way $null is processed when used in identifiers. 6.Fixed bug with mark/copy routine display not working properly when an Agent is over a window. 7.Voice commands may or may not work in desktop windows, this seems to be a limitation of the SR software you are using. 8.Fixed icon display bug in custom dialogs. 9.Can now have unlimited controls per tab section in a custom dialog, also fixed bug with visible/hidden state not being preserved for controls. 10.Fixed Editor dialog display bug when "minimizing all" via task bar menu. 11.Fixed bug in handling of port ranges for IRC servers list. 12.When clicking the "Connect" button to connect to a server, you can now hold down the Control key to force mIRC to use the next server in the list. 13.Fixed /close bug. 14.Fixed quit message in channel window not showing user's address. 15.$dbuw and $dbuh now return a decimal value. 16.Fixed small offset bug in $window().dx/dy. 17.Now checks for /window "@Invalid Format". 18.Changed behavior in editbox which was making it incompatible with applications which paste text into mIRC, eg. NJStar. 19.Changed default editbox in Editor dialog back to standard non-rtf editbox, the rtf editbox was behaving oddly. 20.Clicking right-button in a non-active window editbox now makes the window active. 21.Added option in lock dialog to hide the list of channels/queries in tray menu when mIRC is locked. 22.Added "mIRC window always on top" switch to Windows dialog. 23.Fixed bug in handling of {} brackets in some situations. 24.Added /username and /emailaddr command, allow you to set the corresponding values in the connect dialog. 25.Should handle UNC paths/filenames properly now. 26.If you do $dir sounds\*.*, the full path defaults to the mIRC dir. 27.Can now send "!nick file" to channel by pressing Control+Enter. 28.DCC Send "filetype ignored" message now shows filename. 29.Added support for JPG and PNG files in 32bit mIRC. 30.Fixed background picture bug, if the bmp was very small the "fill" mode would fail to display it properly. 31.Number of users in channel now shown in channel titlebar. 32.Added $poscs() case sensitive version of $pos(). 33.You can now use to turn these options off in the /gopts -b command. 34.Fixed display bug if you had paragraph-spacing turned on in a window with a background picture. 35.Can now use $ids and &vars in custom dialog tables. 36.Fixed bug in $base(), can handle larger values. It now also strips out 0x number prefix, eg. from 0x0809. 37.Agent now tries to set the language id for speaking based on the language id of the TTS module on your system. If it can't, it defaults to a US language ID. Can now also be set manually with /gopts -n where langid is the hex id value. 38.DCC chat send/recv errors now trigger the on close event. 39.Fixed +e handling on Conference Room servers which use +e as a channel mode, not as the exception list mode as on IRCnet. 40.$mask() now replaces part of an address containings an equal '=' sign with a '*' wild card, for ircds, eg. conference room, that encrypt part of the address and use '=' to mark it. 41.Fixed "paragraph" spacing not working in listbox windows, eg. notify list, etc. 42.Fixed gpf bug in the view menu in the Popups editor dialog. 43.Fixed bug with spacebar not displaying popup menu in a listbox. 44.$window() now lists DCC chat windows as =chatname to be compatible with $active. 45.Added /clearial command to clear the internal address list. 46.Added /socklist command, lists open custom sockets. 47.Fixed bug with /remini, mIRC now replaces all [] characters in INI section names and headers with ~ when using INI commands and identifiers. 48.Changed Highlight method, when using wildcards the wildcard text is matched against individual words separated by spaces, instead of against the whole line, eg. "test*" will match "Now testing". 49.Added /play -b switch, plays text in the clipboard to a window. The text is temporarily saved to a file playqN.txt, which is deleted once playing is completed. 50.Fixed page up/down scrolling too far when using paragraph line spacing. 51.Fixed switchbar display for time-out DCC sends/gets. 52.mIRC now maintains an internal banlist for each channel. Added $chan().banlist, returns $true if mode +b has been seen already, or $false if not, or $inmode if currently in a mode +b listing. Added $banlist(#channel,N) identifier, returns Nth item, or if N is 0 returns total number of items in list. $banlist().by returns the address of the user who set the ban, and $banlist().date returns the date. Note: this feature does not work on ircx servers. 53.The isop comparison now evalutes to true if a nick is an owner on ircx servers. 54.Added support for menus in custom dialogs: dialog name { menu "text", [, menuid] item "text", [, menuid] item break, [, menuid] } If you don't specify a [menuid] for an item, it will use the last menuid that was created/used in a previous menu/item. on 1:dialog:name:menu:*:{ echo 5 $dname $devent $did } You can use /did -ebcuadio to enable/disable, check/uncheck, append, delete, insert, and overwrite a menu item. To add an item to a menu you can use: /did -a name . To insert an item you must use: /did -i name where is the item before which you want to insert an item. Note: You can use the text "break" to refer to a break item in the /did command. 55.Fixed while loop bug in custom window popup menus. 56.Ctcp version requests are now queued, and the replies are sent once every few seconds. 57.DCC Get now locks the file being downloaded to prevent it being modified/over-written by a second download or other applications. 58.Can now resize nicknames listbox in channel windows. 59.Added "DCC Fail" event sound to Sounds section. 60.Changed /url [on|off|show|hide|-ran] [[N|mark]|address] -r removes either the Nth item, or all items that match the mark. You can also do /url -an address to visit a new URL, where -a = activate browser, -n = use new browser window. 61.Added $bytes(N,bkmgt3).suf identifier, returns comma formatted filesize. 62.Improved /var, now handles identifiers containing commas better though note that you should use the equal sign in the definition, eg. /var %x = etc. 63.Added $sock().wserr,wsmsg returns winsock error number and message for a socket in the event of a socket error. 64.Custom dialog Tab control now automatically adds a scrollbar if the tabs don't fit the width of the tab control. 65.Fixed $prop and $isid not working in $iif() identifier. 66.Added "Show mode prefix" to IRC dialog, prefixes nicks in messages with their .@%+ mode on a channel. 67.Fixed memory bug in DCC window popup menus. 68.Server socket now binds to a random local port. 69.File type selection in file dialogs is now set more intelligently. 70.Added Agents section to Options dialog. You can also turn agent on or off for a window via the channel or query window system menu. Added new switches: /gtalk -lu switch, where -l applies lexicon settings to text, and -u uses the speech settings, ie. pitch, volume, the increase speed setting, etc. /gload -h and /gopts -h switch, makes mIRC hide the agent when mIRC is minimized. Also added $agent().hide property. You can also use the -h switch with the other agent commands to prevent them from popping the agent when mIRC is minimized and has the -h setting. 71.Added /loadbuf -r switch, resets contents of window. 72.Fixed bug in /ignore /auto /protect, if you used -r to remove an address, and the entry contained a #channel, the address wasn't being removed. 73.Fixed bug with control+copy when copying text and control codes. 74.Fixed bug when using /filter -io where dialog name contained a '.' character. 75.$mklogfn() now appends date to filename if you have the dated logfiles option turned on in the logging dialog. 76.Fixed max DCC gets bug in fileserver. 77.Added custom dialog editbox item "limit N" which limits text in an editbox to N characters. 78.Can now rename tabs in a tab control using /did. 79.Added /hop [#channel [key]] command, parts the current channel and joins a new one. If no channel is specified, it parts and rejoins the current channel without closing the window. 80.Can now use /url to open email addresses as well. 81.Added hyperlinks to custom dialogs: link "test", id, x y w h 82.Added $disk().size property. 83.Added $file().atime, .mtime, .ctime, return last access and modify time, and creation time. 84.Fixed bug with $findfile() and $finddir() not being able to see local variables in a command. 85.For ircx compatible servers which mIRC doesn't recognize, you can send /ircx to the server on connect, and if mIRC receives the 800 numeric reply, it will treat the server as ircx internally. 86.Fixed switchbar display bug when windows are maximized in some situations. 87.Added /showmirc -op switches, -o sets mIRC on top, -p removes the on top setting. 88.Changed the "ignore types" feature in DCC options, now works as "ignore all except". Also added ignore timer, allows you to turn off the ignore temporarily. 89.Fixed positions of windows not being saved correctly if windows taskbar was positioned to top or left of desktop. 90.Fixe $sdir changing folder name to lowercase. 91.The notice sent before initiating a DCC chat for a fileserver now says "DCC Fserve" instead of "DCC Chat". 92.Added Kick event to Options/IRC/Show dialog and Channel central. 93.Added "Highlight nicknames" option to Display/options dialog, it colours nickname prefixes in messages with the "highlight text" colour. Note: if you use the /cline command to colour a nickname in a channel nicklist, the nicks colour in the listbox is used as the highlight colour. 94.Fixed bug in mark/copy routine, in some cases may not have been copying text to clipboard properly. 95.Fixed bug with ! command prefix, was affecting subsequent commands when used in a script. 96.Fixed /drawcopy bug. 97.Added menu { rclick:/command } event, only triggers in a custom @window if no menu items are defined. Also added $mouse.lb property, returns $true if a mouse event occurred in a listbox. 98.Improved support for dual monitor displays in 32bit mIRC, added switch to Display/options dialog. 99.Added $nick().colour property, returns nickname colour, if it's not coloured, returns highlight colour. 02/02/2000 - mIRC v5.7 Changes: 1.Fixed $ord() bug. 2.Corrected parts of help file. 3.Changed identd server behavior. 4.Fixed custom dialog icons bug in tab control. 5.Fixed Control-Q/N minimizing windows. 6./raw quit now won't trigger the "reconnect on disconnect" switch in the IRC options dialog. 7.Fixed bug in custom identifiers where the 255 character was being interpreted as a separator. 8.Fixed custom dialogs Tab control display bug. 9.Added network listbox to connect dialog. 10.Fixed "max remotely initiated DCC sends" allowing one more DCC than specified. 11.Fixed bug in !nick filename, when filename is an LFN containing spaces. 12.Fixed mIRC not remembering minimized state if closed while it was minimized to tray. 13.Fixed custom dialog tab control button sizes in "pixels" mode. 14.Added $didwm(name,id,wildtext,N) which returns the number of the line that matches wildtext, with the search starting at line N, N is optional. 15./identd now saves the settings to mirc.ini. 16.The % helper mode on channels is now recognized on all servers, not just on IRCnet servers. Note: this will inevitably cause problems with scripts, since % is the %variable prefix. 17.Editor dialog now warns you if files haven't changed when you exit the dialog without saving. Also added option to turn this behavior on or off. 18.Can now /clipboard -a to append text to existing text in the clipboard. 19.The custom timestamp set in options dialog, messages section, is now used for time-stamping all messages/logs/etc. 20.Fixed cursor not being set properly when using Tab key to evaluate an item in an editbox. 21.Channels in channels folder are now stored in chanfldr.ini file. 22.The ircx prop MEMBERKEY event is now interpreted as mode +k and an on MODE event, and the prop TOPIC event is interpreted as on TOPIC. 23.The "not connected" message displayed for commands that need a connection to a server now contains script/line number info. 24.If connected to a server, you can now hold down shift-key when pressing OK in Options dialog to set selected server. 25.Added "sort files by nickname into own folders" feature in DCC Folders dialog. 26.The "date logfiles" logging option now closes all logfiles with dated filenames at 12am and re-opens them with the new date. 27.Invalid table error for custom dialogs now provides more info. 28.Fixed bug in /background command updating mirc.ini incorrectly. 29.Can now specify negative index in $gettok(), eg. $gettok(a.b.c.d.e.f,-3,46) returns d $gettok(a.b.c.d.e.f,-3-,46) returns d.e.f 30.Fixed bug in $did() not being able to read the "text" control in custom dialogs if it had the "center" style set. 31.Extended editbox handling in custom dialogs: $did().seltext returns selected text in an editbox $did().selstart returns select start character in editbox line $did().selend returns select end character in editbox line /did -c name id [n] [start [end]] This selects line N in editbox, and sets selection to specified range of characters. 32.Added option to Messages dialog to strip codes section only if there are more than N codes in a messages. 33.Extended $strip(text,burcmo), where m = strip codes according to settings in Messages dialog, and o = strip codes using the "only" setting in the messages dialog if it is turned on. 34.Can now hold down Control key while copying text in a window with the mouse if you want control codes included. 35.Fixed finger server bug, was leaving CR appended to nickname. 36.Added "on top" setting to editor dialog. 37.Fixed bug in DCC Send dialog not displaying file size info properly if "hide file extensions for known file types" was turned on in windows. 38.Added $sorttok(text,C,ncr) identifier, default is alphabetic sort, optional parameters n = numeric sort, c = channel nick prefix sort, r = reverse sort. 39.The "search all files" option in the find dialog in editor now works when you are replacing text. 40.Added $ini(file,topic/N,item/N), where item/N is optional, and can specify N = 0 for total, or item name to see if it exists, etc. It replaces $initopic() which is still supported but removed from documentation. 41.Added $ctrlenter identifier, returns $true if Control-Enter was pressed when entering a message/command. 42.Date/time format spec. now allows TT for uppercase AM/PM, and ZZZ for a timezone with GMT appended. 43.Fixed $hotline, now returns the full line where a link occurs, even if the line wraps. 44.Fixed $isdir() not working on NT network drives. 45.Fixed /did -f not working in custom dialog init event. 46.Added $didtok(name,id,C), creates tokenized list from list/combo/edit box, and /didtok name id C text, adds tokenized list to list/combo/ edit box. 47.If "tooltips" are turned off, tooltips won't appear over switchbar buttons any longer. 48.Quotes around filenames are now removed before the filename is used in $isfile/isdir/file/ini/findfile/finddir/getdir/lines/nofile/nopath shortfn/dccignore/dll. 49.Fixed bug in /sockwrite -n only appended an LF instead of CRLF. 50.Fixed /close -cgsf only closing the first window. 51.Fixed nickname highlight bug in DCC chat windows. 52.Right-click on alias/popup/remote/send toolbar buttons now pops up quick access menus. 53.Control+L in Editor now opens the Load file dialog, Control+S now saves the current file, and Control+H now checks the brackets. 54.Added support for while loops. Repeats a loop while the expression in brackets is true. Multiple while loops can be embedded. You can use /break to break out of the current loop. You can also use the /continue command to jump to the beginning of the loop. var %i = 1 while (%i <= 10) { echo 2 %i inc %i if (%i > 5) break } 55.Fixed bug with /filter, was displaying a hidden control in a custom dialog when outputting to it. 56.$numtok(text,C) now returns zero if text is empty. 57./if comparisons now handle $null values properly. In the case of a string comparison $null is treated as an empty string. In the case of a number comparison, if either of the values is $null the comparison fails. 58.Added $send().secs and $get().secs, returns number of seconds that the connection has been open. 59.Added "max cps per user" option to Options/fserve dialog. Allows you to limit max cps used by a DCC send to a user in a fileserver. This is also applied to /dcc sends initiated in a remote script. You can override this by using /dcc send -lN switch, limits transfer speed for a DCC send to N cps. If you specify zero, no limit is applied. The /dcc maxcps command can be used to changed the Max Cps value on the fly. 60.Custom /dialogs created on the desktop can now be minimized. Can use /dialog -ie to minimize or restore the dialog. 61.Added /localinfo -uh command, looks up and sets your local info settings. The -u switch performs a /userhost lookup, the -h switch does a normal lookup. 62.Fixed channel /mode +k bug. 63.Fixed bug with "show whois in active window" feature. 64.Added $did().edited returns $true/$false depending on whether text in an editbox was modified. Can reset the modify flag using the /did -j switch. 65.Added two colour listboxes to Options/display dialog, the message listbox for normal messages, the highlight listbox for messages that match your highlight settings. 66.Added $prop property identifier for custom identifiers which use properties, eg. $test(value).help, in this case, $prop will return the value "help". 67.Can now specify a range in the Ports section of an IRC server entry, eg. 6665-7000 68.Added titlebar right-click option in General dialog. 69.Added /if isalpha comparison, evaluates true if the specified parameter is all text. 70.Fixed drive a:\ access bug. 71.Installer now sets up support for .chat files in registry. 72.Custom dialogs now allow Id numbers from 1 to 3000. 73.Fixed on NOSOUND event bug. 74.Control+V/Shift+Insert now allow you to hold down the keys to paste repeatedly. 75.mIRC now allows you to select the script for a font in the font dialog, to support arabic, cyrillic, etc. characters. The script selection is stored along with the normal font info in mirc.ini. 76.Added support for Microsoft Agent in mIRC 32bit under win95 or greater. I downloaded all of the files on: http://msdn.microsoft.com/workshop/imedia/agent/agentdl.asp /gload /gunload /gshow [x y] /ghide /gmove [speed] /gsize /gtalk -kw > -k - think text -w - play wave file /gplay [timeout] /gpoint /gstop -c [talk play] -c - stops only the current anim/talk instead of all /gopts -bieq -b - balloons: -i - idle effects: -e - sound effects: /gqreq - turns queuing of messages on or off, default on. $agentver - returns Agent version, 0 if not installed $agentstat - returns 1 if Agent ready, or 0 if busy/speaking $agent(name).name, fname, visible, x, y, w, h, ow, oh, speed, pitch, idle, effects, active, langid, balloon name - the name you gave to this agent fname - the filename of the agent, ie. merlin.acs, or "default" if you didn't specify a filename visible - returns $true or $false x,y,w,h - left/top position, width/height. ow, oh - original width/height speed - speaking speed pitch - speaking pitch idle - if idle behavior is on or off effects - if sound effects are on or off active - if this agent is active/topmost langid - language id of system balloon - current setting: on off size pace hide $agent(N).char char - returns filename of Nth available agent, if you specify 0 returns total number of installed agents. $agent(name,N).anim, line anim - returns the names of the animations available for playing for this agent. If you specify 0, returns the total number of animations. If you specify N, returns the name of the Nth animation. line - returns the list of lines currently queued to be spoken for this character. If you specify 0, returns total number of queued lines. If you specify N, returns the Nth line. You can also use tags in /gtalk in which may be recognized by the text-to-speech engine, these are a few: \spd=nnn\ - set speed of spoken text \pit=nnn\ - set pitch of spoken text \vol=nnn\ - set volume of spoken text \chr="string"\ - where string is normal, monotone, or whisper \ctx="string"\ - address, email, unknown \emp\ - emphasize next word \pau=nnn\ - pause speech nnn milliseconds \rst\ - reset settings to default $notags(text) - removes the above tags from text, but only if the tags are correctly written as above. Notes: 1. mIRC queues all requests and plays them one after the other to ensure that even if you use multiple agents at the same time, all messages will be heard, and all agents will act in the order that you requested. You can turn queuing on/off using /gqreq on the fly. 2. You can't load more than one of the same agent, ie. if you load Genie, you can't load a second Genie. You can however load Genie, Merlin, Peedy, and any other custom characters all at the same time. 3. Looping animations prevent an agent from doing anything else until you /gstop the agent. The [timeout] value in /gplay allows you to specify a maximum time-limit for an animation after which it is automatically stopped, and the agent will then perform the remaining queued requests. If you don't specify a timeout value, the default is 5 seconds. If no play or talk requests are pending, the looping animation continues beyond the timeout until there are. 77.The $filename identifier can now be used in the on PLAYEND event to refer to the filename that was just played. 78.Added .logfile property to $chan(), $chat(), $query(), and $window(), returns logfile name if a log is open for the window, otherwise returns $null. 79.Changed channel central dialog, uses a tabbed dialog, and adds support for the +e and +I IRCnet channel modes. Also added a display section for redirecting channels events. 80.If you have Speech Recognition (SR) software installed, mIRC can be made to listen to voice commands by using: /vcmd -lc -c - clears the command list -l - lists current commands sleep - ignores commands temporarily /vcadd /vcrem If the SR software matches a word you've spoken to a word in your commands list, mIRC triggers the VCMD event: on 1:VCMD::<*/#/?/@>:/echo 3 Recognized: $1- The $vcmd(N) identifier returns the Nth item in the voice commands list. $vcmdver - returns version of SR software, $null if not installed $vcmdstat - returns 0 not available 1 currently off 2 ignoring commands 3 listening Notes: 1. Your SR software may have very large speech files/dictionaries, it could take 10 or more seconds for your SR software to load or unload, and may be slow while processing your speech, causing short pauses in mIRC. 2. Adding or removing commands can be done on the fly, however if your SR software is slow at updating the commands list, mIRC has to wait until it finishes. 81.Fixed custom dialogs DBU bug in dialog "size" item, was creating dialogs that were 10 or so pixels taller than they should be. 82.If a new window opens while you are in a dialog, eg. scripts editor, the new window no longer takes away the focus from the dialog. If you want to force a custom window to take focus, you can use the /window -a switch when creating the window. 83.The message highlight section in the Options/IRC dialog now matches against whole words, or words enclosed in non-alphabetic characters. You can use wildcards *? to make a word match non-whole words. 84./unset now evaluates variables inside [] brackets, this allows you to unset variables with dynamically created names: test { set %a [ $+ b ] 1 set %a [ $+ c ] 2 set %a [ $+ d ] 3 unset %a [ $+ b ] %a [ $+ c ] %a [ $+ d ] } 85./part can now close an open channel window while not connected. 87.Changed behavior of /disconnect and /quit, can now cancel a connect in progress. 88.You can now remove a nick from your Tab Key list with Control-D. 89.Added $mklogfn(filename) identifier, returns the filename format that the logging feature uses, $mknickfn(nickname) fixes a nickname for use as a filename, and $mkfn(filename), removes invalid characters. 90.You can now prevent a command from being processed as an alias by prefixing it with a ! character, eg. /!command etc. 91.Added event: on 1:PONG:echo pong reply: $1-, note: you can't use this to intercept /pings to your own nickname, this is used internally by mIRC. 92.Can now use $editbox(=name) for DCC chat editboxes. 93.Fixed a bug in sclick event for comboboxes in custom dialogs. 94.Made a change to the way sockets are closed throught-out mIRC. 95.Fixed bug in /did command causing hidden controls to become visible. 96.The "photo" display method of background pictures can now display pictures properly regardless of their height/width ratio. 97.The problem with the + character being changed to & in custom dialogs is now fixed. 98.Added .stamp property to $chan(), $chat(), $query(), and $window(), returns timestamp setting. 99.Added $dbuw and $dbuh, return dbu per pixel width and height. 100.Changed parsing method for most identifiers so that your custom identifiers will now work even if they begin with the same letters as internal identifiers. Directory related identifiers have not been updated, eg. $mircdir, $getdir, $cd, etc. since many widely used scripts append text directly to them, ie.: //splay $file="Select wave:" $mircdirsounds\ Instead of using the (better) format: //splay $file="Select wave:" $mircdir $+ sounds\ 101.Removed support for the very old $parm and *N identifiers. 102.Fixed bug in /drawrect, sizing was slightly off. You can now also specify negative values for the width/height. 103.Extended "Date filenames" feature to allow you to date filenames by day, week, or month. If dated by week, log files begin on days 1, 7, 14, and 21, and if dated by month, they begin on day 1. 104.Added support for single/double/paragraph line spacing in windows, can set default in Options/Display section, and for each window via the system menu. 105.Fixed bug in socket-related routines which may have affected IRC server connection, DCC Send/Get, and Custom sockets. 106.Changing the MDI/desktop setting of a window no longer makes mIRC forget the previously saved window position. 107.Fixed bug where mIRC was leaving tmpN.$$$ files in mIRC directory in certain situations. 108.Can now stop a /list on Undernet servers by selecting the "stop listing" item in the Channels List window menu. 109.Hotlink feature should be a bit smarter when matching nicknames to a link now. 110.Extended $os to detect 2000. 111.mIRC now re-adds its icon to the tray if the tray is restarted. 112.Added "copy messages to query" option in IRC dialog; if you're talking to a user in the dedicated message window and then decide to open a query to them, this copies the conversation you've had so far from the dedicated message window to the query window. 113.Can now specify a negative index in token identifiers, eg. //echo $puttok(a b c d, e, -2, 32) = a b e d //echo $instok(a b c d, e, -2, 32) = a b c e d //echo $deltok(a b c d, -2, 32) = a b d 114.$len() now returns 0 if passed an empty value. 115.Added $base(N,inbase,outbase,zeropad,precision) to convert number N from inbase to outbase. The last two parameters are optional. 116.Added $bfind(&binvar, N, M), searches a &binvar for a matching value, starting from position N. M can be a character value, ie. 0 to 255, or text. The search is case-insensitive. $bfind(&test, 1, mirc) finds "mirc" starting from pos 1 $bfind(&test, 5, 32) finds char 32 (a space) from pos 5 $bfind(&test, 1, 87 65 86) finds WAV from pos 1 You can use $bfind().text to force a text search if the search text is a number. 117.Sockets now have the "keep alive" setting turned on which should help keep a connection alive over extended periods. 118.Ctcp messages are now time-stamped. 119.$date now returns the full four-digit year. $ctime now also assumes the year 2000 if you specify a year <= 38. 120.$menu now works in mouse events in menu {} definitions. 121.Added "hide ping? pong!" option to IRC dialog. 122.Windows can now have their own timestamp setting independent of the global timestamp setting in the IRC/Messages dialog. You can now use /timestamp on|off|default, where default uses the global setting. You can also set the timestamp format using /timestamp -f [format]. 123.Hotlinks now work on Tab-key nicknames that have messaged you in the message window. 124.Fixed bug in Display/Windows dialog when changing the MDI/desktop setting for windows. 125.Added $dialog().active property, returns $true if dialog is the active window, $false otherwise. 126.Added $longfn(), returns LFN version of a short filename, works only in 32bit mIRC. 127.Added /bcopy [-zc] <&binvar> <&binvar> This copies M bytes from position S in the second &binvar to the first &binvar at position N. This can also be used to copy overlapping parts of a &binvar to itself. If M = -1, all of the bytes from position S onwards are copied. If you specify the -z switch, the bytes in the source &binvar that were copied are zero-filled after the copy. If you specify the -c switch, the first &binvar is chopped to length N + M. Also added /bunset <&binvar> ... <&binvar> command to unset the specified list of &binvars. 128.Fixed bug with /did -i adding CRLF when inserting into a single line editbox. 129.Fixed bug in /dccserver command. 130.Can now use $mid() without specifying the third parameter. 131.Added $appstate, returns minimized, maximized, normal, hidden, or tray, to indicate state of mIRC window. 132.Function keys in the message window work all the time now. 133.Made a change to the way $portfree() works. 134.If you try to use DCC Send/Chat/Fserve while they are locked in the lock dialog, you now see a lock message. 23/09/1999 - mIRC v5.61 Changes: 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 behavior 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/fserve. 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 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 features. 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. 03/06/1999 - mIRC v5.6 Changes: 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:?::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] 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] /filter -io [dialog id] [dialog id] 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 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] [info] /guser [-a] [type] [info] You can also use the /iuser command to set/remove info: /iuser [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 [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 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 MDI/desktop 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] -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 MDI/desktop 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> [ ...] 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> [ ...] 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 19/02/1999 - mIRC v5.51 Changes: 1.Fixed /dcc send not centering DCC send dialog over active window. 2.Fixed /help bug. 3.Corrected on dialog description in help file, should have been on 1:dialog:etc. 4.Improved handling of channels/nicknames in hotlinks. 5.Fixed Menubar gpf bug. Now also handles the first menu item in the menubar definition more intelligently, ie. if it's meant to be a submenu, or the title of menubar. 6./titlebar now also updates tray icon tooltip. 7.Fixed icon highlight bug when switchbar is turned off and a window is iconified. 8.Fixed query window position/size saving bug. 9.Fixed /ison resource string bug. 10.Fixed .ignore menu item in query popup menu definition. 11.Fixed notify icon highlighting too often. 12.Fixed fileserver string resources bug. 13.Fixed date log files bug in 32bit being turned on under win32s. 14.Fixed $isdir() and $isfile() bugs. 15.Fixed List channels dialog not centering over channels list window. 16.Fixed /amsg and /ame not being timestamped. 17.Watch support is now triggered by the WATCH= token in numeric 5, not specifically associated with DALnet servers. Also, mIRC will only request N WATCH nicks as indicated by WATCH=N, plus one extra nick to trigger the "Maximum size for WATCH-list is N entries" message from the server. 18.Fixed mIRC reseting the IRC server name after exiting the options dialog. 19.Fixed $? and other dialog identifiers not being performed when called from a /timer started in a remote event. 20.Pressing OK or Escape in custom dialogs now clicks the Ok or Cancel buttons respectively if there are any. 21.Fixed mouse related bug that was eating up resources. 22.Added Hotlinks on/off option in Options dialog General section. 23.Fixed /did -b bug moving focus to next control. 24.Fixed $calc() bug. 25.Fixed Editor not remembering last popup that was being edited after quitting and then running mIRC. 26.Extended Trim log files feature to allow greater log file sizes. 27.Corrected description of $pos() in help file. 28.Fixed a bug in the flood control method, was sometimes ordering lines sent to a user in the wrong order. 29.DCC Chat window now allows you to perform commands after the DCC session ends. 30.Corrected on open event description in help file. 31.Sorting the servers list now places non-group servers at end of list. 32.Added $dialog() properties x,y,w,h,title,modal,table,ok,cancel,result. 33.Added /dialog -ax switches; -ma creates a dialog and uses the currently active window as the parent, and -x closes a dialog without triggering any events. 34.Fixed bug with Beeping/Flashing settings not being remember for DCC chat windows. 35.Fixed checkboxes with "push" style only triggering sclick event when they were checked. Now also trigger when unchecked. 36.Fixed bug related to not ignoring a user if you have a query window open with them and their address matches an ignore address. 37.Fixed /map not being displayed on non-DALnet servers, the numerics conflict with the new support of the DALnet WATCH list. 38.Fixed bug in /dialog tables, if the x y w h were separated by extra spaces they were being misread. 39.mIRC now shows the server text for numeric 375 (Start of MOTD) instead of using it's own internal text. 40.Fixed drag-drop filenames being made lower-case. 41.Fixed shift-key behavior when minimizing mIRC to tray. 42.Added -3 and -4 values to $dialog(), -3 opens the dialog using the current active mIRC window as the parent, and -4 opens the dialog using the current active mIRC dialog as the parent, if no dialog is open, it defaults to -3. 43.Fixed bug in $gmt, added $gmt(format) same as in $asctime(). 44.Added /write -w switch which finds a line that contains the matching wildcard text. Also extended -sw switches so you can now specify multiple words enclosed in "" quotes. 45.Fixed bug in /write and $read -switch processing. 46.Fixed bug with Address Book not starting certain emailers properly. 47.Fixed mIRC creating a second query window if your script opened one itself during the on ^open event. 48.Fixed editbox buffer bug. 49.Fixed tree display bug in options dialog when using a large systen font. 50.Fixed /copy using mIRC as root dir when filename is prefixed with the \ root dir prefix. 51.Fixed "hide" style not applying to icons in a /dialog on creation. 52.Added /play -e switch, /echos out the text as it would be sent to the server. 53.DCC Chat editbox is no longer cleared when the connection is made. 54.Fixed not being able to enter Control-K etc. codes in Find dialog. 55.Fixed bug in /rmdir. 56.[removed] 57.Fixed bug in DCC server. 58.Fixed loading popup changing the popup view. 59./did no longer triggers dialog events when a control is modified. 60.Can now use /did -co switches together for a checkbox. 61.$calc() now treats $null values as zero. 62.$?, $dialog(), and /dialog now warn you if you try to use them from inside an event. You should use /timer to initiate them, and they will appear after the event ends. Note: /dialog was causing problems when called from an event, there was no way to get around this unfortunately due to the current script parser design. 63.Added /did -nm, -n to enable and -m to disable an editbox. 64.$replace() and $remove() now accept $null values. 65.Fixed /dialog -n not removing topmost setting. 66.Fixed /window -ou not updating system menu. 67.Fixed /timer -e bug. 68.Updating an existing users info from the Whois tab in the Address Book dialog no longer clears the notes for that user. 69.If your notify list is turned off, mIRC no longer interferes with the display of /watch. 70./run now accepts quoted filenames to handle LFNs. 71./splay no longer displays error messages if the . prefix is used. 72.Added custom dialog style 'size' for listboxes, forces the listbox to be sized to the vertical size you specify instead of being rounded to the nearest whole size for a listbox item. 73.Fixed /dialog -s sizing bug when used in dialog init event. 74.Can now use %variables in dialog table definitions for certain items: title, size, "text", id, and icon name and n index. 75.Fixed bug in processing of /whowas numeric reply resetting a users notify list status. 76.Fixed extraneous line highlight bug after a /sound in a DCC chat which is halted by an on chat event. 77.Fixed bug in "View Website" menu item in Channels list window popup menu turning URL to lowercase. 78.Fixed bug with Notify list sounds not being played if "only show notifies in notify window" switch was turned on. 79.If /whois is turned on for a user in the notify list, and show notifies in active window is on, the /whois will now also appear in the active window. 80.Fixed bug in timing of /timer hh:mm timer request. 81.Improved IP address checking routine to prevent it from matching a wildcard IP address with a named address. 82.Fixed /msg -s =nick bug. 83.Fixed bug in $ulist(*) wasn't returning all addresses. 84.Can now specify an "icon" in a dialog table without a filename, to allow you to set it later. 85.Added Timestamp Logs switch to logging options dialog, allows you to turn on time-stamping just for log files. 86.Fixed bug with . prefix in a menu definition, was confusing the popup menu parser in some situations. 87.Fixed /whois not being issued for users in notify list after the first notification. 88.Fixed email catcher bug. 89.Numeric 404 "can't send to channel" is now displayed in the channel window if it is open. 90.Can now use /window on =chat windows, and other windows by enclosing the window name in "quotes". 91.Added /window -gN switch to set/remove highlight for a window icon, where 0 = none, 1 = red, 2 = green. 08/01/1999 - mIRC v5.5 Changes: 1.Fixed /drawtext clipping bug. 2.Fixed Socks firewall support of DCC Sends/Chats. 3.Fixed $pos() bug. 4.Fixed /savebuf with no parameters gpf bug. 5.Fixed bug in $findfile(), $finddir(), /copy command, and the files list in the Logging tab of the Options dialog, for 32bit under win32s. 6.Added -t switch to $read, prevents mIRC from checking if the first line is a number, it treats it as plain text. 7.Fixed $mask() types 11 to 19 not removing ~ prefix from userid. 8.Revamped Options dialog, now uses treelist, provides more space to add new features clearly and cleanly. 9.Fixed on OPEN/CLOSE event processing bug. 10.Fixed on ACTION not triggering if query window wasn't already open. 11.Fixed font display bug which seemed to affect some systems. 12.Fixed /dcc fserve with no parameters gpfing. 13.Changed Nth returned value in $nvnick()/$nhnick()/$nopnick() when you specify a nickname. 14.$nopnick() now returns all nicks that aren't ops, $nhnick() returns all nicks that aren't helpers/voiced (excluding nicks that are ops), and $nvnick() returns all nicks that aren't voiced (excluding nicks that are ops or helpers). 15.Added $& identifier, allows you to break up a single line into multiple lines which are combined when the script is performed, so you can edit long commands more easily.: test { echo You can now split up long commands $& into several lines to make them easier to $& edit } 16.Your own messages and notices are now time-stamped if you have time- stamping turned on in a window. 17.Fix bug in $findfile()/$finddir() identifiers, file handles weren't being freed in some situations in the 32bit mIRC. 18.Added Nick List menu item to Channel Window System menu, allows you to position nick list to the right or left, or to turn it off. 19.The file dialog used for selecting pictures now displays a preview of the selected picture. 20.URL catcher now also catches https:// addresses. 21.Added extra memory checks in $+ and other areas of script processing to warn when concatenated strings are too long. 22.You can now double-click directly on URLs in windows to open a web browser. You can also hold down the shift-key and double-click on email addresses to open your email program. The shift-key is required because of the huge number of addresses on IRC which look like emails but aren't. If you're in a channel window and you move the mouse over text that is a nickname on that channel, you can double-click on it for the usual double- click behavior, or right-click on it to open the nickname list popup menu. If you single-click on the nickname, the cursor in the listbox is scrolled to that nickname. You can also double-click on a channel name to join it. If you move the mouse over text that is a nickname in your Notify list, right-clicking will pop up the notify popup menu. 23./ddeserver and /sound are now quiet when . prefixed. 24.Added "Sort" item to Channels List window popup menu, allows you to sort by channel name, number of users, or channel topics. 25.Using a faster sort routine for sorting the IRC servers list. 26.Made small changes to appearance/processing of Chat/Fserve windows. 27.DDE can now be turned off, and will also remember to turn on again if it failed to initiate previously. 28.Fixed /writeini bug locking file after showing "file too large" warning. 29.Implemented new indexing method for scripts. 30.Added $mircexe identifier, returns full path/name of mIRC exe file. 31.Fixed /window -c closing gpf bug, related to mouse events processing. 32.mIRC now recreates the download/logs/sounds directories if your INI file contains invalid directory names for them. 33.Changed the file/dir existence checking method, it was previously treating non-accessible files ie. no read/write/etc. allowed, as non-existent. 34.Control-F dialog in status/channel/etc. windows now allows you to enter up to 90 characters as search text. 35.Fixed script.ini renaming bug. 36.Added $network identifier, mIRC gets the name of the IRC network you are on from numeric 001, ie. "Welcome to the N Internet Relay Network", where N is the name of the network. If it can't find a network name (some IRC networks don't have this info), it uses the Group name of the server if it's in your IRC Servers list. The network name is used to select the correct filename in the List Channels dialog, eg. if you connect to a DALnet server, mIRC will now auto-select the channels list file called dalnet.txt. 37.Fixed /*line related gpf bug with invalid colour value. 38.Fixed .ial flag, is now reset when you turn IAL on/off. 39.Single/multi-line editbox now beeps if you enter a line that may be too long to be processed by the server. 40.Optimized switchbar dragging routine. 41.Fixed bug in /log command. 42.If you have a /query window open with someone, private messages from them won't be ignored even if their address matches an ignore address. 43.Now processes numeric 437 which is sent on some IRC networks when you try to rejoin a channel after a split and it doesn't allow you. 44.Removed Topic in channel option, now default. 45.Main window background picture is no longer resized when the MDI window scrollbars appear/disappear. 46.Added "Save as..." menu item to Custom Picture windows System menu, and the /drawsave <@window> command, which allow you to save the picture in a @window to a BMP file. 47.Fixed horizontal scrollbar width in custom windows which use a tabbed listbox. 48.Added /window -E switch, creates a custom window with a multi-line editbox. 49.Added Show Ctcps in active window switch. 50.Fixed bug relating to file dialogs, may have been causing mIRC to freeze in some situations. 51.Numeric 477 is now handled differently based on the IRC network you are connected to since it's used for conflicting purposes on different IRC networks. 52.Fixed custom window bug where it would trigger menu {} and mouse events even if the popup menu name wasn't specified. 53.Fixed bug in handling of :goto jump points in some situations. 54.When the switchbar is turned on, the Alt-N key combination now refers to the Nth window in the switchbar, any windows not shown in the switchbar are placed at the end of the Alt-N list. 55.Improved /timers to more precisely measure elapsed time. Also added /timer -c switch, makes mIRC "catch up" a timer by executing it more than once during one interval if the real-time interval isn't matching your requested interval. This happens often because timer messages can be delayed by a few milli-seconds each time they are triggered due to the OS being busy, and the number of milliseconds lost accumulates over time. 56.Added preview button in file dialogs for playing .wav files. 57.Fixed bug in $ulist(). 58.Changed behavior of event "on chat/serve" with and without the ^ prefix to allow you to /halt the default behaviors of an fserve. 59.Fixed /log command not working with DCC Chat/Serv windows. 60.Added "lbclick" menu {} listbox event, triggers when a user clicks on an item, or selects an item using the cursor keys, in a @window listbox. menu { lbclick: echo 4 selection: $active $1 } 61.Added -b switch to /sockwrite, allows you to specify the number of bytes to send. /sockwrite [-tnb] [numbytes] Added -n switch to /sockread, allows you to read a CRLF terminated line into a &binvar. If the incoming line does not contain a CRLF, no bytes will be read into &binvar, unless you specify the -f switch, which forces the read (same as when reading into %vars). /sockread [-fn] [numbytes] <%var|&binvar> 62.Added on notify/unotify to the haltable ^ events list. 63./write now doesn't append an LF character to the end of your line if it already ends in an LF character. 64.Fixed filename checking routine, was treating too many characters as invalid and replacing them with an underscore character. 65.Fixed freeze bug in bracketed identifiers containing certain $+ combinations. 66.Added support for DALnet WATCH list. mIRC now uses this for its notify feature when on DALnet servers >= 4.6.3 since it's far more efficient. All mIRC does is submit a list of nicknames to the server, and the server then notifies mIRC whenever a user comes on or off the network. If you specify a full address (or wildcard address) eg. nick!id@host as a notify nickname, mIRC will match the address against the reply from the WATCH notifications. You can also specify a wildcard address. Also added Dalnet specific options in Notify dialog, only appear when connected to a DALnet server. On non-DALnet servers, mIRC still uses the old notify method which sends an ISON with your entire notify list every 40 seconds or so to get an update. This method ignores the address portion of your notify nickname if you specified one. 67.mIRC now converts ANSI colour codes in private and channel messages to mIRC color codes. Also added $ansi2mirc(text). 68.Fixed bug in $read -w switch, wasn't stripping off ending CRLF at end of line before doing match. Extended $read -w and -s switches so you can now specify multiple words enclosed in quotes. //echo $read -nw"*t public &" versions.txt 69.Added on ACTION and on OPEN to ^ events. on ACTION now behaves exactly the same way as on TEXT, including the way it triggers the on OPEN event if a Query window isn't already open. on ^OPEN is now triggered before a new Query window is created, allowing you to /halt it, and on OPEN (as a non ^ event) is triggered right after the window is opened. If you /halt on ^OPEN no on ACTION/TEXT events are triggered. 70.Fixed bug with switchbar dragging. 71.Extended $findfile() and $finddir() to accept a @window/command. The command is performed on every item that matches your request. You can also specify a search depth which limits the search to N directories deep. $findfile(dir, wildcard, N [, depth, @window | command]) $finddir(dir, wildcard, N [, depth, @window | command]) Both are optional. The old format is still handled. 72.IRC Server popup menu via the right-click on setup toolbar button now lists the top 12 IRC servers, and the top 4 IRC networks. 73.Fixed $nopath()/$nofile() changing filename to lower case. 74.Fixed bug with help file not found dialog popping up at odd times. 75.Currently selected Address Book tab is now remember across sessions, when opening and the Notify tab is selected, the Notify listbox gets the focus. 76.Moved MDI Options Dialog into New options dialog. 77.Added /writeini -n switch, makes mIRC write to the INI file even if it's greater than 64k since some users seem able to create INI files of several megabytes. 78.If several users in your notify list have the same associated sound file, and the notify list sees them at the same time, mIRC only plays the sound once instead of repeating it for each user. 79.If mIRC sees the word "throttled" in the Closing Link disconnect message, it waits 10 seconds before trying to connect to the same server again. 80.Added /window +elL switches, +e gives the window a 3D edge under win95, and +l makes the window a tool window which has a thin titlebar, +L does the same except the window doesn't appear in the taskbar and it can't be accessed via the Alt-Tab keys. 81.Added $rnick(#,N) identifier, returns regular (non-op/help/voice) nicks on a channel, and isreg if comparison. 82.Long Ctcp messages now wrap correctly in status window. 83.Added /tray -iN command, changes the mIRC Tray icon to the Nth icon in the specified file (which might be an .exe, .dll, or .ico). 84.Disconnect messages are now time-stamped. 85.Can now set/unset the default picture for channel/query/chat/fserve windows via the background popup menu. Also added /background -e switch to set a picture as the default. 86.Fixed notify sounds not being played in some situations. 87.If you double-click on the mIRC tray Icon and mIRC is the active window, it is now minimized. 88.The perform section is now performed before channels are auto-rejoined after a disconnect. 89.Added "leave" menu {} listbox event, triggers when the mouse is moved outside a picture @window. menu { leave: echo 4 mouse left $leftwin } 90.Added /dns -h switch, makes it treat parameter as a hostname. 91.Fixed timers not seeing local alias -l aliases if a script is /reloaded. 92.Actions now also show if the action was directed at @+% users. 93.Can now specify -1 for /window x,y,w,h parameters to make mIRC use default or existing values. 94.Fixed bug in /whois colour not being set properly. 95.Fixed bug with +modeless channel handling, mIRC was assuming that you could /msg @+%#channel to send a message to Op/Voice/Help users, but only /msg @#channel to send a message to Ops is supported (which is a good thing since the /msg +#channel would look the same as a normal message on a +modeless channel) 96.Positions of individual query/chat windows can now be saved. 97.Can now use wildcards in /timer -e switch to execute all timers which match the wildcard timer name. 98.Can now Control-F in URL dialog. 99.Added /window +d switch, creates a custom window with no border. 100.Can now save the main window position and make the main mIRC window stay on top of other windows via the main mIRC system menu. 101.Added $matchkey identifier, returns wildcard matchtext that was used in the matching remote event. 102.Fixed bug in display of Editor dialog on being opened. 103.Added /firewall command to allow changing of firewall settings. /firewall [-mN[+|-]d] [on|off] -mN where N is 4 or 5 for Socks4 or Socks5 firewall +|-d where +d turns on DCCs through firewall, -d turns it off 104.Extended $window() to allow wildcard match, $window(@wildcard,N) 105.Address book now deletes picture associated with a nickname when you delete the nickname. 106.Added Date filenames option to Log files dialog, only appears in 32bit under win95. 107.Added switches to /server to allow modification of servers.ini: /server -sar [server] [-p port] [-g group] [-w password] [-d description] -s sorts the servers list -a adds a server. If it exists, it is udpdated -r removes a server mIRC tries to find a match for either the server address or the description in the existing servers list. You can also specify "none" for -g -w and -d to clear the current setting. 108.Fixed /join -n switch not working if you specified several channels separated by commas. 109.Fixed $matchtok() making all text lower case. 110.Fixed bug in Find Text dialog in Editor dialog. 111.Added /window -k switch which removes the @ at sign from the name in the titlebar. 112.Fixed a gpf buf in /sockwrite relating to queuing of data. 113.Added UDP datagram support to sockets scripting. UDP is a connection- less protocol, ie. you can send information via UDP to other UDP addresses without needing to be connected to them first. UDP does NOT guarantee that any information you send will actually reach its destination. This is the way UDP works, it is not a reliable protocol. Also, UDP packets may not arrive in the same order as that in which they were sent. /sockudp [-bntk] [port] [ [numbytes] [data]] -bnt are the same as in /sockwrite. -k forces the socket to stay open, this allows it to listen for data that is sent to its port via UDP. If -k is not specified, the socket is opened, the information is sent to the specified ipaddress and port, and the socket is then closed. If you specify a socket that doesn't exist, it is created. If it does exist, the existing socket is used to send the info. You can also specify the local port number that you wish to use, if it isn't specified, mIRC chooses one randomly. Note: If you specify a socket name and a port, and the socket name exists but is using a different port, mIRC will report an error since it assumes you want a socket with that specific port. and specify the destination address to which you want to send information. You can only use an IP address here. is the information you want to send. The on UDPREAD event and the /sockread command can be used to read incoming info on a UDP socket. Also added $sock() .type property, returns UDP or TCP, and .saddr and .sport properties, return source address and port of last received UDP packet. 114.Added $isfile(filename) and $isdir(dirname) identifiers, return $true or $false. 115.Added /ajinvite [on | off] to turn auto-join on invite on or off. 116.Added $istok(text,token,C) returns $true or $false if token exists in text, and $numtok(text,C) returns number of tokens in text. 117.Added /colour which allows you to change the colour settings for items in the Colours dialog. 118.Added /mdi -act to arrange icons, and cascade/tile windows. 119.Added on KEYDOWN/KEYUP events, and $keyval and $keyrpt identifiers. on 1:KEYDOWN:@window:key,...:echo pressed key $keyval $keyrpt on 1:KEYUP:@window:key,...:echo released key $keyval Where @window is the custom window name, and key is a numeric key value, eg. spacebar = 32. You can specify a list of key values separated by commas, eg. for the cursor keys: on 1:KEYDOWN:@:37,48,39,40:echo pressed cursor key $keyval Note: these events will only work in custom @windows without an editbox and a listbox. 120.Can now load /background pictures for custom @windows. 121.Can now manipulate position/size of channel, private, etc. windows using the /window command. 122.Added /window -w switch which turns a @windows switchbar button on if it was previously turned off. 123.Added format specification to $asctime() $time() and $date(). Year yy 98 yyyy 1998 Month m 1 mm 01 mmm Jan mmmm January Day d 1 dd 01 ddd Mon dddd Monday Hours h 5 hh 05 H 13 HH 13 Minutes n 1 nn 01 Seconds s 1 ss 01 AM/PM t a/p tt am/pm Ordinal oo Add ordinal 1st,2nd,3rd,Nth if appended to a number Timezone z +0 zz +0000 $asctime(ctime,format) $time(ctime,format) $date(ctime,format) If only the format is specified, the current time is used. 124.Fixed freeze bug in $rand(). 125.Added popup menus for channels folder, finger, chat, and notify toolbar buttons. 126.Fixed bug in * userlevel prefix in script events for matching any level user, was matching even if a user level matched another event. 127.mIRC will now only ask you once if you want to create a new sounds or logs folder. 128.Added $window().fontbold property, returns $true or $false. 129.Added Hide minimized desktop windows option to Windows dialog, removes a window's button from the taskbar when you minimize it, unless you're holding down the shift key at the time. 130.Added $gmt and $asctime without brackets. 131.Added -r"root directory" command line switch when running EXE, allows you to set the root mIRC directory. 132.Increased time-out for firewall connections from 60 seconds to 180 seconds. 133.Moved all text to resources area. 134.Added $file(filename).size,.mtime identifier, .mtime returns a $ctime value indicating when the file was last modified. Note: $lof() is supported for now but will be removed in future. 135./timer command now knows when it is initated from inside a remote script event. 136.Fixed bug in tabbed dialogs, some controls weren't appearing in some situations. 137./filter no longer allows you to specify the same window for in & out. 138.Added Trim log files option which keeps log files below the max Kbytes limit that you specify. The log file is only trimmed when a window is opened. If it's greater than the max size allowed, it is trimmed to 60% of the max size allowed. 139.Fixed gpf/freeze bugs relating to [] brackets. 140./set -u0 now unsets a variable at the end of a script. 141.Added /copy -a switch to append to a file. 142./sockmark now allows storage up to the max. length of chars that mIRC usually handles for other lines. 143.Added -r switch to /filter, specifies the range of lines which you want to filter, /filter [-sgdfwxnpr] [n-n2] Also add -lL switches, -l filters from the side-listbox in the first window, -L filters to the side-listbox in the second window. 144.Added custom dialog creation commands and identifiers. The /dialog command allows you to create a modeless dialog: /dialog -mdtsonkc name [table] [x y w h] [text] -m = create a modeless dialog using 'table' -d = open dialog on desktop -t = set dialog title -s = set dialog size/pos -o = set dialog ontop of all windows -n = unset ontop setting -k = click ok button -c = click cancel button You can create a dialog with the /dialog command by using: /dialog -m name table Where name is the name by which you will refer to the dialog, and table is the dialog table name. Dialogs created with the /dialog command are modeless, ie. they do not return a value and do not halt a script, and allow access to other mIRC windows at the same time. They can be kept open indefinitely. The $dialog() identifier allows you to create a modal dialog: %result = $dialog(name,table[,parent]) name = dialog name table = name of the dialog table parent = window name, or -1 desktop window -2 main mIRC window Dialogs created with $dialog() are modal, ie. they return a value, and halt the script and don't allow access to the parent window until the dialog is closed. These types of dialogs should only be displayed for immediate user input. You can also use the $dialog(name/N) identifier to list any open dialogs, where N returns the Nth open dialog. If N is zero, the total number of open dialogs is returned. You can use the dialog prefix to create a dialog table in a script using this format: dialog name { title "text" size x y w h text "text", id, x y w h, style (right, center) edit "text", id, x y w h, style (right, center, multi, pass, read, return, hsbar, vsbar, autohs, autovs) button "text", id, x y w h, style (default, ok, cancel) check "text", id, x y w h, style (left, push, 3state) radio "text", id, x y w h, style (left, push) box "text", id, x y w h, style list id, x y w h, style (sort, extsel) combo id, x y w h, style (sort, edit, drop) icon id, x y w h, filename, index } In addition to the styles shown in brackets for each type of control, you can also specify styles: disable - to disable the control hide - to hide the control group - to identify the start of a group result - to identify the control whose value will be used as the return value to the calling script when the dialog is closed by pressing the ok button. If you specify -1 for any of the x y w h values in the size setting for the dialog, a default setting is used. To make mIRC center the dialog in a window, specify x y as -1 -1. The size setting can be over-ridden in the "init" event by using /dialog name x y w h. Note: You must specify an ok and/or cancel button. When a user clicks the ok or cancel buttons, the dialog is closed. You can prevent the dialog from closing if a user clicks the ok button by using /halt. Clicking certain controls in the dialog triggers the on dialog script event: on dialog:name:event:id: { echo $dname $devent $did } Where name is the dialog name, id is the number of the control triggering the event, and event can be: init = when dialog is about to be displayed, controls can be initialized in this event. id is zero. edit = text in editbox changed text in editbox of combobox changed sclick = single click in list/combo box check/uncheck of radio/check buttons click of a button dclick = double click in list/combo box The /did command allows you to modify dialog controls by id number: /did -ftebvhcukradiog name id [n] [text | filename] -f = set focus on id -t = set id as default button -e = enable id -b = disable id -v = make id visible -h = hide id -c = check checkbox/radiobutton list/combo line -u = uncheck checkbox/radiobutton list/combo line -k = works with -c and -u, keeps other listbox selections -r = clear all text in id -a = add line of text to end -d = delete Nth line -i = insert text at Nth line -o = overwrite Nth line with text -g = set a new icon/bmp to an icon control /dialog -g name id [n] filename Note: you can mark a 3state checkbox as indeterminate by using both -cu switches. You can refer to controls using the $did() dialog id identifier with the following formats and properties as appropriate to the control to which you are referring: $did(name,id) $did(name,id,N) Note: if used in a triggered event, "name" is optional. .text = returns line or Nth line $did(id) is same as $did(id).text .len = returns length of line or Nth line .lines = returns number of lines .sel = returns Line Number of Nth selected line if N is 0, returns number of selected lines .state = returns 0 = off, 1 = on, and 2 = indeterminate .next = returns id of next control in tab order .prev = returns id of previous control in tab order 145.Added option in the Windows dialog to make the Editor dialog modeless ie. opens it as a desktop window, allowing editing of scripts while chatting etc. 146.$cb() should now process LF and/or CR delimited lines properly. 147.Made change to /unload command so that it will match the filename you specify with a loaded filename even if you don't provide a full path specification. 148.Fixed $*nick(#,nick/N) returning N = 0 for non-existent nicknames, now returns $null. 149.If you load/unload alias/popup/script files while the Editor dialog is open, the Editor now updates its current view accordingly. 24/07/1998 - mIRC v5.41 Changes: 1.Fixed win32s under win3.x display bug in 32bit mIRC. 2.Fixed bug with private messages text-wrap when using ^ events. 3.Can now use %variables or $identifiers in the Perform Highlight words. 4.Can now do /dcc send nickname . 5.Fixed $sdir bug. 6.Fixed bug in auto-arrange/cascade/tile options. 7.Fixed SOCKS firewall support bugs. 8.Channel Central dialog now allows mode +h users on TS4 efnet to change the channel settings. 9./remove now tells you if you specified a non-existent file but doesn't halt processing. 10.Changed Channel central dialog behavior, no longer resets channel modes unless they've been changed. 11.Fixed bug in $calc() with very long strings. 12.Fixed bug in inactive DCC Chat windows, editbox allows you to copy text from it but entered text is not processed in any way. 13.$chan().ial now returns $true if the IAL is full, $false if it isn't, or $inwho if you sent a /who #channel to the server to fill the IAL and the IAL isn't full yet. 14.Improved winsock error checking. 15.Fixed bug in /goto command where it was incorrectly reporting a "not found" error instead of a "duplicate name" error in some situations where you had duplicate goto names in a script. 16.Fixed bug in the remote events in %variables in remote event definition not being processed correctly if it evaluated to just #. 17.Fixed /renwin bug allowing you to rename a @window to any name without the @ prefix. 18.Fixed $read bug when reading a line with only a space in it. 19.Fixed disappearing DCC windows bug. 20.Fixed bug with URL/Email catcher being turned off when using the Send To menu in the URL window popup menu. 21.Fixed bug with Status window not remembering MDI/desktop position. 22.Fixed editbox/listbox focusing bug. 23.Fixed BURC code stripping in IRC Switches not applying to channel topics. 24.Using the . prefix to hide /play command information now also hides the /msg command information when sending to a user/channel. 25.Fixed @window listbox background colour bug not being reset when using colour control codes in text. 26.Fixed editbox processing bug in custom @windows. 27.Fixed /ignore -x exclusion bug. 28.Fixed bug in on OPEN event, was preventing on TEXT/ACTION events from triggering if on OPEN was /halted. 29.Can now specify whether you want DCCs to go through the Socks Firewall or not. 30.Fixed /renwin bug, was halting scripts. 31.Fixed bug when processing $? in combination with $+ in some situations. 32.$findfile() and $finddir() in 32bit mIRC now maintain case of filenames. 33.Fixed bug with wave playing not working with certain sound drivers. Note that simple sound drivers eg. speaker driver, are very limited and don't support mIRC's queuing of sounds feature, etc. 34.Fixed /cline when colour not specified, sets to default colour. 35.Fixed ctcp event not processing wildcard ctcps, eg. ctcp 1:*ping*:echo $1- 36.Fixed DCC Send CTCP request not working with IRC clients that add an extra ID number to the CTCP message, mIRC v5.4 also uses this extra ID to identify DCC Send requests through a SOCKS firewall. If mIRC sees an ID but can't match it internally, it assumes it's not valid and processes the CTCP as a normal DCC Send request. 37.Improved handling of long filenames in commands: /dcc send, /unload, /mkdir, /loadbuf, /savebuf, /filter, and /window. 38.Fixed bug in /font command. 39.Extended various commands/identifiers/etc. that reference listboxes so that they can now process any number of selected lines. 40.Can now /clear -n with a picture window, where -n delays update of the display until you force an update (same as with other picture window commands). 41.Fixed bug in $iif(), remote identifiers in it where not being evaluated. 42.Added $inpoly(x,y,x1,y1,...,xN,yN) identifier which returns $true if x,y is inside the polygon made up of the specified points, otherwise $false. 43.Changed DCC server 150 and 151 replies, they now return "unavailable" and "rejected" instead of a nickname. 44.Added .dx and .dy properties to $window(), return the x and y position of a window relative to the desktop. 45.Changed $notify() so that it works with your whole notify list. Added .ison property, returns $true if user is on IRC, otherwise $false. 46.Fixed bug with status window receiving focus in certain situations. 47.Fixed bug in /write command when /writing to files that aren't on the same hard-disk as the mIRC exe file. 48.Fixed freezing bug in $dde, $read, and $readini when used within other identifiers in some situations. 49.The on DNS event is now triggered if you try to /dns a nickname that's not on IRC and the server replies with the "no such nickname" numeric. 50.Fixed bug in listbox windows eg. url/notify/channelslist/etc. when first opening, the background was first set to the main window background colour not the listbox colour, making the window flash. 51.Fixed bug in ip address having a space appended to it when looking up via the server method. Shouldn't have affected processing though. 52.Extended $mask() and all other mask-related commands/identifiers, so that you can now specify a type of 10 to 19 which correspond to masks 0 to 9, but instead of using a * wildcard to replace portions of an address, it uses ? wildcards to replace the numbers in the address. 53.Fixed bug in /window -h switch not setting window focus correctly. 54.Fixed /list command so that it works correctly with older DALnet ircds that don't support serverside filtering. 55.The value of $halted can now be checked in any event to see if a previous event /halted the default text. You can also prefix events with the new & prefix to prevent the event from triggering if $halted is true, eg. on &1:text:*:?:/echo this won't trigger if $halted is true 56.When mIRC joins a channel and issues a /mode to look up the channel modes, the channel creation time numeric is hidden if sent by the server. 57."Unable to connect to IRC server" message now also shows the actual winsock error message. 58./enable and /disable now accept wildcards. 59./loadbuf and /savebuf can now work with DCC =chat windows. Also added switches to /loadbuf: -cN specifies default text colour -e evaluates lines -h hides a line if -e is specified and it doesn't evaluate 60.Fixed /window -c closing gpf bug when using multiple /window opening and closing commands in the same script. 61.Added $isdde(name) identifier, returns $true if DDE name is in use. 62./background can now change background in DCC =chat windows. 63.Fixed bug in remote * event prefix. 64.Timestamp now shows double digits for the hour. 65.Time related identifiers/routines now return $null if a time value is specified that lies outside the values mIRC can handle. 66.Fixed /.copy showing a line separator incorrectly. 67.Fixed bug in Editor dialog, if you loaded a new script and then closed the dialog, the on load event in the script would only trigger if you were in the Remote tab of the dialog. 68.Added -l switch to /ignore [-lpcnitkx] command, specifying the -l switch now displays a list of the ignores which match the specified switches. 69.Fixed bug in Socks firewall handling of a DCC Send to an IP address ie. to a users DCC server. 70.Fixed /echo -a =chat bug. 71.Fixed switchbar display bug. 72.Fixed /drawtext -p switch background filling bug. 73.If the Channels folder dialog is open while connecting to a server, the Join/Names buttons are enabled on connection. 74.Fixed gpf bug in /cline when trying to use it on an empty window. 75.Extended $os identifier in the 32bit mIRC, it now replies differently depending on whether you're on 3.1, 3.1 win32s, 95, 98, and NT. The 16bit is still limited to replying 3.1 or 95. 76.Added $ulist(address,level,N) identifier for referencing the Users list, (replaces $maddress() which is still supported for now). You can specify an address of * to match any address in the user list, or a wildcard address. If you don't specify a full address, it completes the address with wildcards. If you specify L, $ulist() will return matching addresses that contain the specified level. Note: L and N are optional, but if you specify only one number, mIRC assumes it is N, to maintain backward compatibility. 77.Changed $calc() evaluation method slightly, this may break existing scripts. 78.Fixed a few /finger and fingerserver related bugs. 79.Fixed /auto -r bug. 23/06/1998 - mIRC v5.4 Changes: 1.Fixed identd/finger/DCC server bug. 2.Fixed connect retry bug when server name can't be resolved. 3.Fixed bug with windows being displayed/hidden when switchbar is turned on/off. 4.Fixed /join -n bug when specifying a password. 5./load now only asks you once if you want to run the on start and on load sections when your script loads multiple files. 6.Added identd switch to turn identd on/off before/after connection. 7.Added identifier $isalias(name) returns $true/$false. 8./dns now returns a reply for each /dns that is issued even if you specified multiple identical addresses. 9.In addition to specifying -1 in $window() to refer to the desktop screen size, you can now also specify -2 for the main mIRC window, and -3 for internal MDI window where other windows are displayed. 10.Fixed focusing bug when clicking in a window. 11.Added /reload command, reloads the specified script without triggering the on start/load events. 12.Added $finddir(root,wildcard,N) works the same as $findfile() except it returns directory names. 13.Added Options section to Address Book. 14.Fixed Help menu bug when more than 30 items where listed in the menu. 15.Added support for numeric 477, tells you if you can't join a channel if channel only allows registered nicks. 16.Added /renwin <@old> <@new> [topic] command, changes the name of a custom window. 17./sockopen now triggers "on sockopen" if a connection fails immediately, instead of just halting the script with a connection error message. 18.Fixed /editbox command when using lines with CR/LF characters. 19.Can now handle DALnet @+target notices. 20.Small change in DCC Send routine which may have been causing a freeze in certain situations. 21.Fixed bug in action messages, may have been preventing action messages from being displayed sometimes. 22.Can now open the Channels Folder and Channels List dialogs when not connected to a server to edit/view them offline. 23.$chan now works in the on input event. 24.Fixed bug in Alt-1,2,3,etc. that was causing a gpf in certain situations. 25.Fixed display gpf bug which occurred when a window was resized to a width smaller than an indented line. 26.Made a small change to the way DDE messages are sent, should now work with more applications. 27.Fixed bug in Filserver, wasn't displaying the list of dirs or files correctly in certain cases. 28.Added switch -S to /window command. The small -s now sorts the main window (whether text or listbox), the large -S now sorts a listbox on the side. 29.Fixed gpf bug when the custom menubar popup menu is empty and a new item is added to it. 30.The TAB nick completion now works in custom windows. 31.Fixed /join -i bug. 32.Your nicknames, local info, and current irc server are now all updated in mirc.ini whenever they change. 33./filter no longer creates a file if there were no matching items to output to the file. It also fills the $filtered identifier with the number of matches found, if any. 34.A users nick and address are now stored in the log file at the start of the logging session for a query window. 35.Now supports serverside filtering of channels list on DALnet servers. This is done automatically whenever you retrieve a channels list, same as with Undernet servers. DALnet servers also supports server-side wildcard filtering. 36.Fixed /editbox -n switch. 37.If you try to connect to a server which resolves to multiple IP addresses eg. a round robin server, mIRC will now try each IP address until it gets a connection. 38.Colour 99 is now treated as a transparent colour, ie. it will match a users current background colour. The main purpose of this is to allow you to use numbers after a ctrl-k without a problem, eg. /echo ctrl+k5,9954 This would display the number 54. 39.Added $readn identifier to return the line number that matched a search for $read -s. Also added $read -w switch which finds a line that contains the matching text. If you specify the -s or -w switches, you can also specify the -lN switch to specify which line to start searching from in the file, eg.: //echo $read -l100 -w*mirc* versions.txt Note: this will start the search *after* line 100. This allows you to use it with $readn easily. 40.Added -e switch to /dde command, makes /dde send the request as an XTYP_EXECUTE DDE message. This type of message does not require an item, so the format is: /dde -e service topic command 41.Fixed /rline bug. 42.Fixed bug relating to use of [ ] to evaluate items inside a bracketed identifier eg. //echo 1 $gettok( [ $readini -n mirc.ini mirc host ] ,1,58) 43.Fixed gpf bug when trying to resize a window that contains lines of text of which some are empty ie. contain no characters at all, was happening mainly when filling a custom window with lines from a text file eg. using /filter. 44.Added * as a new remote event prefix, matches the level of any user. This allows you to create events that will trigger for all users regardless of their access levels. on *:event:etc. ctcp *:event:etc. 45.Using new method to display icons in toolbar and switchbar, this should fix the disappearing toolbar problem some people have been experiencing. 46.Added .fname property to $group() identifier, to return filename, and the .name property to return the name of the group if you're looking up the Nth group. 47.Added /ban -r switch, this removes a ban of the specified type for nickname, eg. /ban -r nick 2 48.Url catcher now treats more characters as valid parts of a URL. 49.Fixed bug in $pos() identifier. 50.Added $ctime() identifier to compliment $ctime. You can specify the date and time in various formats in $ctime() to return the number of seconds elapsed since 00:00:00 GMT, January 1, 1970. //echo 1 $ctime(January 1 1970 00:00:00) //echo 1 $ctime(3rd August 1987 3:46pm) //echo 1 $ctime(21/4/72 1:30:37) //echo 1 $ctime(Wed 1998-3-27 21:16) 51.Modifed the way the inc/dec -uN switch works, added two new switches, -c and -z. -uN now only incs/decs the %var once and unsets it N seconds later. -c incs/decs %var once per second. -z decreases %var until it reaches zero and then unsets it. The -z switch also works with /set. 52.Fixed bug in /describe appearance in query windows. 53.Can now use $mouse outside of picture window events. Also added the following properties: .win returns the windows name .mx/my returns x,y position relative to mIRC main window .dx/dy returns x,y position relative to desktop 54.Added .fname property to $isalias() identifier, which returns the filename inwhich the alias exists, and .alias property which returns the alias definition itself. 55.Added $ifmatch identifier, returns the first parameter of a matching if statement. eg. if (text isin some text) etc. then $ifmatch will return "text". 56.Added /showmirc -nrstx command, where: -n = minimize -r = restore -s = show -t = tray -x = maximize 57.Added -u switch to /window which removes the -ontop setting for a desktop window. Can also reset it again with -o. 58.If you specify a delay of 0 seconds in /timer, the command is now executed immediately after a script finishes. 59.Added $cb(N) identifier to return CRLF delimited lines from the clipboard. The property .len returns the length of the line, or if N is zero, it returns the total length of text in the clipboard. 60.Extended $timer() to handle both N and a Timer name as a parameter. Also now returns $null correctly if it can't find a match. 61.Extended $nick/opnick/nopnick/vnick/nvnick() to handle both N and a nickname. If a nickname is specified it returns the nicknames Nth position in the nicklist. 62.Fixed Window/Icon Flashing bug, wasn't triggering in certain situations. 63.Fixed gpf bug in fileserver time-out event. 64.Fixed /window sizing bug when first opening a very small window. 65.Added .ial property to $chan(), returns $true if the IAL contains the addresses of all users on the specified channel, otherwise $false. 66.The TAB key nick completion now works as an identifier/variable evaluator when placed over items that begin with $ or % or # (evaluates to current channel name). 67.Notify now displays on/off messages in more situations. 68.Can now specify N = 0 in $findtok() to return number of matching tokens. 69.Added $matchtok(Tokens,String,N,C) identifier, checks if any of the Tokens contain the text String. eg. $matchtok(one two three, e, 0, 32) returns 2 $matchtok(one two three, e, 2, 32) returns three And $wildtok(Tokens,WildString,N,C) which does the same thing using wildcards: $wildtok(one two three, t*e, 0, 32) returns 1 $wildtok(one two three, t*e, 1, 32) returns three 70.Added Remove menu item to notify list popup menu. 71.Made a change to /log command to make it handle the file .ext extension better with LFNs. 72.Moved notify section from Options dialog to Address Book. Also added Notify? and Address? buttons to connect Address and Notify sections. 73.You can now retrieve your basic System colours with $rgb() by specifying: face, shadow, hilight, frame, and text, which return the RGB value. 74.Pressing TAB key in an editbox no longer clears the editbox if it contains text. The editbox needs to be empty in order for TAB to fill in the "/msg nickname" text. 75.DCC Chat window editbox is no longer disabled on a disconnection. 76.Can now click on a number in the Colour index dialog to insert the number into the editbox. 77.Fixed $dde gpf if data being received is too long, now returns $error in this case. 78.Extended $replace() to handle multiple replace parameters, eg. $replace(String,n1,n2,m1,m2,...,t1,t2) And $remove() to handle multiple remove parameters, eg. $remove(String,n1,n2,n3,...) 79.Replaced channel window switching keyboard command from Control-Space to Control-N due to conflict with other applications. 80.Fixed minimized icons appearing in certain sitautions when switching windows via switchbar. 81.Speeded up text display slightly. 82.Added $hash(S,B) where S is a string, and B is the number of bits to use when calculating the hash number. 83.Can now specify a non-existent file in $file/dir/hfile/sdir dialogs. 84.Added /whois in active window switch. Displays whois results in the channel, query/chat, and custom windows if it is turned on and a /whois is issued inside one of these windows. Also added Whois text colour selection to Colours dialog. 85.Added -g switch to /clear and /filter to refer to finger window. 86.Added Background Picture option to System menu for Status, Channel, and Query/Chat windows. Allows you to select a background picture for the window, note that this significantly decreases the display speed of text in a window. Also added picture option to the mIRC background window, right-click on it to pop up a menu with options. Can also select a background picture for the toolbar, toolbar buttons, and switchbar, right-click to pop up a menu. You can use the following command to change the background picture settings and display method for windows: /background [-amsgdluhcfnrtpx] [window] [filename] -a = active window (window name not required) -m = main mIRC window -s = status window -g = finger window -d = dedicated query window -cfnrtp = center, fill, normal, stretch, tile, photo -l = toolbar -u = toolbar buttons -h = switchbar Toolbar buttons can use RGB Colour 192,192,192 for transparency, the BMP must be of the same form as that in mIRC resources. -x = no background picture Window name should only be specified if none of the window switches are specified. The filename does not need to be specified if you are only changing the display method. 87.Added $iif(C,T,F) where C is a conditional clause, and T is the result if the conditional is True, and F is the result if it's false, eg: echo $iif(1 == 2, yes, no) returns "no" $iif returns F if the conditional returns zero, $false, or $null, for any other value $iif returns T. If you don't specify the F parameter, $iif returns a T value if the condition is true, and returns nothing if it's false. echo $iif(1 == 2, yes) returns nothing 88.mIRC can now display longer channel topics in channels. 89.Added -p switch to /editbox, appends a space to the end of the text. 90.Added -t switch to /echo, prefixes line with a timestamp if a user has global time stamping on or timestamping is on for that window. 91.Integrated the notify settings into the Address book dialog. 92.You can now open a query window with the /query command while offline. 93.Fixed $duration() to handle floating point numbers. 94.Titlebars in windows now aren't updated if the new text is identical. 95.Made line sorting in text @windows case-insensitive. 96.Added -o switch to /copy command, overwrites file if it exists. 97.Can now use ! (not prefix) with & bitwise operator. 98.Added uclick event to mouse detection events. menu @test { uclick:echo Released mouse button } 99.The switchbar button for a query window is now updated when there is a nick change. 100.Added -h switch to /clear command, clears the command history for a window. 101.Switchbar can now also be displayed on the left and right sides of the mIRC window, you can drag it with the mouse to reposition it. 102.Fixed $server().port including password at end of ports. 103.Fixed problems with sounds not being heard when your system is set up to use the internal speaker driver for sound playback, note however that this means that events such as on waveend/midiend do not work now since the speaker driver doesn't support them. 104.Added /saveini command, updates all mIRC related INI files with the current info. 105.Added /ignore -x (exclude) switch. Basically this allows you to ignore messages from all people except your friends. For example: a!b@c.org,exclude this excludes this address from being ignored *!*@* this ignores all other addresses 106.Fixed bug in on chat/fserve events not filling $1 correctly. 107.Fixed bug with certain /if operators treating a $null value as plain text eg. if (n isin $null) would evaluate to true. 108.Fixed bug with $calc() not processing identifiers with properties. 109.Fixed on close event not triggering for fileserver. 110.Added Command option to DCC Get Directories dialog, allows a command to be performed when a file is received. The command will be performed if no application has been selected and the filename can be referred to in the command as identifier $1-. 111.Fixed /write not adding an extra LF to the last line in a file if it needs one before appending a new line to the end of the file. 112.Added Rejoin channels on connect switch to Options dialog, if turned on channel windows which are open are auto-rejoined when you reconnect to an IRC server. 113.Fixed custom sockets bug where last packet of a file being received was not received fully in some cases. 114.Added .font and .fontsize properties to $window(). 115.Variables set to the value $null now evaluate to an empty string. 116.Control codes are now stripped from URLs/Emails caught by URL catcher. 117.Fixed bug in DNS resolving routine which may have caused certain problems in the situation where a DNS request failed immediately. Also fixed a bug where an invalid DNS reply may have caused a gpf. 118./dns -c now clears all queued DNS requests except the one currently in progress. 119.Added isincs for a case-sensitive version of isin comparison. 120.Added $fline(@,wildtext,N,T) searches a window for a line matching the wildcard text and returns the matching line number. If T is not zero, it acts on the side-listbox. 121.The on MODE event now triggers when you make a mode change. You can prevent it from triggering on your own mode change using the ! event prefix as usual. 122.Fixed /echo bug, can now specify switches with a DCC chat =nickname. 123.You can now prevent the default text for an event from being shown by using the ^ prefix in an event definition. This allows you to show your own custom event messages, eg. on ^1:JOIN:#:echo $chan Joins: $nick | halt This line is triggered by a JOIN event and shows your own custom join event message, /halt prevents the normal message from being shown. The ^ events don't replace your existing events, your normal events are independent and are still processed whether there is a ^ event in a script or not. Events that currently support ^ prefix: BAN, CHAT, DEHELP, DEOP, DEVOICE, HELP, INVITE, JOIN, KICK, MODE, NICK, NOTICE, OP, PART, TEXT, UNBAN, USERMODE, VOICE, QUIT, SERV, SERVERMODE, SNOTICE, TOPIC, WALLOPS. You can also halt the default text without halting a script by using the /haltdef command. The $halted identifier returns $true if /halt or /haltdef was used in a ^ prefixed event, and $false if it wasn't. 124.Added $shortfn(filename), returns short version of a long filename, only works in 32bit mIRC. In 16bit, returns same filename. 125.Can now /resetidle . 126.Fixed bug in display of DCC transfer window. 127.Fixed bug in timezone calculation routine. 128.Fixed bug in /ignore. 129.Fixed gpf bug in on load/start events. 130.The /ignore and /auto commands now reformat the given nickname/address to a full address spec. if it isn't one already. 131.Fixed bug when switching dedicated query window to/from MDI/desktop mode. 132.Removed minimum window size restrictions. 133.Local info is now looked up using the Server method by default. 134.Fixed bug where first item in a listbox was selected when the listbox window was first opened. 135.Fixed $target for DCC chat/fserve windows. 136.Added Socks5 firewall support for connecting to an IRC server. mIRC passes the domain name to the Socks5 firewall instead of trying to resolve it to an IP itself. mIRC still supports Socks4 however this doesn't support authentication or domain name resolution or listening for a connection. mIRC also supports an EXPERIMENTAL method for DCC Send/Chat through a SOCKS5 firewall. This will NOT work with older versions of mIRC or other IRC clients. mIRC uses a PASSIVE protocol to establish DCC connections when a client is behind a SOCKS5 firewall. The method will work with SOCKS5 firewalls that both: a) Support listening/binding to a port of Zero for an incoming connection. b) Assign outgoing connections an IP address that's the same as the SOCKS firewall IP address. The DCC Send/Chat CTCP messages are extended by adding an extra number to the end of the message which uniquely identifies the negotiation, and a port of Zero is specified to indicate that this is a passive connection request. All other fields are identical to a standard DCC Send/Chat message. DCC Chat Passive Protocol: Client A, initiating the DCC Chat, sends the passive connection request below to Client B. The port is set to zero, and the id number is a unique integer identifying the connection: DCC CHAT nickname address port id If Client A is behind a firewall, the address is the ip address of its SOCKS firewall. Client B receives the message and sets up a listening socket, and sends the IP address and port back to Client A, specifying the id number that identifies Client A's request: DCC CHAT nickname address port id If Client B is behind a SOCKS5 firewall, it requests a listening socket from the SOCKS5 firewall and specifies Client A's IP address as the binding address. Client A then proceeds to connect to this address to chat. If Client A is behind a SOCKS firewall, it sends a connection request to it. DCC Send Passive Protocol: Client A, initiating the DCC Send, sends the passive connection request below to Client B. The port is set to zero, and the id number is a unique integer identifying the connection: DCC SEND filename address port filesize id If Client A is behind a firewall, the address is the ip address of its SOCKS firewall. Client B receives the message and sets up a listening socket, and sends the IP address and port back to Client A, specifying the id number that identifies Client A's request: DCC SEND filename address port filesize id If Client B is behind a SOCKS5 firewall, it requests a listening socket from the SOCKS5 firewall and specifies Client A's IP address as the binding address. Client A then proceeds to connect to this address to begin the transfer. If Client A is behind a SOCKS firewall, it sends a connection request to it. Nb. The DCC Resume and Accept protocols in mIRC are also extended by adding the id number to the end of the CTCP message, but otherwise work in exactly the same way. 137.Fixed on input bug with chat/fserve windows. Can specify = for matching chat events and ! prefix for fserve events, same as on open/close. 138.Fixed bugs in $calc() identifier. 139.Changed the way tooltips are displayed, there is now a small delay before a tooltip appears. 140.Fixed bug in /if handling of multiple parameters, eg.: if (a b c == a b c) echo yes | else echo no This will only work if your /if is specified using () brackets around parameters, or {} around the commands following the /if, so that the conditional clause is fully specified. 141.Added support for certain Efnet TS4 features. mIRC will now process TS4s new mode +h for helper users on a channel, for nicknames prefixed with a %. Also added new script events and identifiers: on 1:HELP/DEHELP:#:echo I just helped/dehelped $hnick $hnick() and $nhnick(), same as $opnick()/etc. Also added a new /if comparison "ishelp". Extended $comchan() properties to: .op, .voice, .help 142.Can now select the background more easily in the Colours dialog. 143.Can now specify a named address when initiating a DCC Send/Chat/Fserve in the /dcc command or in the DCC Send/Chat dialogs. 144.Changed kick/part events routines so that the nickname that is parting or being kicked is only removed from the channels nickname list and the IAL *after* scripts are processed, allowing you to access these users settings. You can use the /updatenl command to force the nicknames list and IAL to update immediately during an on kick/part/quit script event. 145.Can now force a /sockread to read incoming characters into a %variable even if the incoming line does not contain a CRLF. /sockread -f %var 146.Extended $? input identifier, the dialog will expand vertically to accomodate longer questions, and if you use $?* then text will appear as ***** to prevent anyone seeing what you're typing. If you use $?! then a Yes/No dialog will appear without an editbox, it will return $true or $false depending on whether the user clicks on Yes or No respectively. You can make text appear on different lines by using $crlf identifier to separate lines, eg. //echo $?="For example: $crlf $+ This is on the 2nd line." 147.I changed the version checking method slightly to recognize NT 5.0. 148.Fixed bug with $().property processing getting confused by %variables with . in their name. 149.Added $crlf identifier, returns CRLF characters. 150.Added $sreq and $creq identifiers, return current /sreq and /creq settings for DCC Get/Chat respectively (return ask, auto, or ignore). 151.Fixed /drawtext command and $width() identifier so they now work with the same measurements correctly. If no clipping area is specified in /drawtext, the command should only affect the area around the text, whereas before it was affecting most of the window. 152.Added $height(text,font,size) returns height of text in pixels for the specified font and fontsize. 153.Aded /timer -e switch which executes the specified timer name immediately if it exists. 154.Fixed /copy changing filenames to lower case. This only works in the 32bit mIRC, the 16bit is still limited. The original case of the filenames is now retained. 155.When saving the buffer of a query window, the users nickname and address are placed at the top of the buffer, if they are available. 156.Fixed bug in Editor dialog where aliases were getting overwritten by the variables section in certain situations. 157.You can now save a channel window position as maximized/minimized. 158.Added $os identifier, returns operating system version 95 or 3.x. 159.Fixed /sline bug changing the colour of a listbox item when all you wanted to do was select/deselect the line without changing it's colour. 160./splay no longer halts a script if the sound can't be found or played. 161.Fixed =$nick evaluating to just $nick when used outside of a remote event. It worked correctly in remote events though. 162.Fixed -sg switches in loadbuf/savebuf commands. 163.Fixed bug where server password was not being set correctly when retrying a connection if it failed/you were disconnected before. 164.Fixed bug with $script/$scriptdir not evaluating properly in some cases. 165.Fixed Channel central channel key handling, correctly unsets/sets a channel key now if you are changing an existing channel key. 166.Added a fix for undernet ircd behavior regarding channel keys. Here is how the new undernet ircd works now: If you join a channel with a key, the server will NOT send you the channel key to display in the channel window titlebar. If an Op changes the channel key while you are on the channel, the server will send you the channel key and mIRC will display it in the titlebar even if you *aren't* an Op. You can only retrieve the channel key after you have become an Op on the channel. If someone Ops you on a keyed channel and you don't have the channel key yet, mIRC sends a /mode #channel to retrieve it so it can display it in the channel window titlebar automatically. The undernet ircd now sends a +k without specifing the key in the above situation, so be aware that you can now have +k but no key. You should no longer assume that doing a /mode #channel will get you the full info on undernet servers. mIRC will show a +k without a key in the titlebar. mIRC can no longer rejoin a keyed channel automatically in the above situation if a) you have "rejoin on kick" turned on, or b) you have "rejoin on disconnect" turned on. 167.Fixed bug in Installation program which was causing it to fail in certain situations. 168.Fixed bug in INI file saving routine which was preventing INI files from being updated properly in certain situations ie. in a network environment, where the mIRC EXE is not in the same HD/Directory as the INI files. 169.Fixed line highlighting bug, lines were sometimes being highlighted in the wrong situation. 170.Fixed bug in on OPEN/CLOSE events. 04/01/1998 - mIRC v5.31 Changes: 1.Fixed Alt-Gr keyboard bug. 2.Fixed toolbar button display bug. 3.Fixed min/max/close buttons in maximized windows (?) 4.Fixed bug in random port selection routine which was resulting in DCCs freezing if your IP address was incorrect. 5.Fixed certain keys not working if all windows in mIRC are minimized. 6.Fixed sorting bug in sorted text @windows. 7.Fixed bug in remote identifier processing. 8.Fixed /aline/iline/etc. commands scrolling text when adding a line when at the bottom of the text buffer. 9.Fixed wave sounds not playing for people whose computers don't have full wave/midi support, but $inwave and the on waveend event won't work in this case. 10.Fixed $show not being set correctly if . is used in a command that's part of an if statement. 11.Fixed isletter. 12.Fixed $dir/$file/etc. identifiers bug when using a description enclosed in quotes, wasn't evaluating following identifier. 13.Fixed DCC get extensions application bug under win3.x. 14.Fixed channel not being parted bug when a channel window is closed while mIRC is iconified in the taskbar. 15.Changed Help menu display of .txt and .hlp files, they're now separated into their own popup menus for more room, and mIRC won't limit the number of items that are displayed. 16.Added $width(text,font,size,B,C) identifier, returns width of text in pixels for the specified font and fontsize. If B is not zero then text is in bold, if C is not zero then it interprets colour codes. 17.Fixed /sound display bug, was showing channel info when a channel name wasn't specified. 18.Fixed /filter bug. 19.The Alt+1...9 key combination now minimizes a window if it is currently the active window. 20./sockwrite now won't let you queue > 8192 bytes per socket. 21.Fixed a $+ bug when used inside [ ] brackets. 22.Added "Include nicks" option in Options/Perform dialog makes highlight option search nicknames in a message. 23.Fixed bug in $?="...", the "..." wasn't being parsed correctly. 24.Fixed $readini bug when reading commands separated by |. 25.Can now create smaller windows eg. for picture windows. 26.Fixed buffer bug in socket handling. 27.If a user doesn't have a .wav or .mid DCC get directory association, mIRC now sets one up so downloaded .wav and .mid files go straight into the sounds directory so they can be used immediately with /sound and /splay. 28.Fixed on close event bug, closing a @window was triggering an on close:?: query event. 29.$count() now returns 0 if the second string is longer. 30.Added $bits identifier, returns 16 or 32 indicating the 16bit or 32bit version of mIRC. 31./window -a now shows a window that was hidden with /window -h. 32.Fixed $address identifier for a DCC chat in on DCCSERVER event. 13/12/1997 - mIRC v5.3 Changes: 1.Fixed DDE bug, can now use DDE intensively in remote scripts without problems. 2.Fixed /font bug. 3.Fixed finger tooltip. 4.Fixed multiple-line pasting and handling by a script. 5.Fixed Fserve max. downloads per user bug. 6.Fixed DCC Get directory listbox not having a scroll bar. 7.Default drag-drop settings changed from using $2 to $2- to handle long file names. 8.URL catcher now catches @ characters in URLs as well. 9.Fixed @windows not defaulting to status window font. 10.The . prefix now makes /play quiet. 11.Fixed DCC Send dialog bug which was causing mIRC to exit for some people (?) 12.Fixed problem with mIRC not running under non-English versions of windows (was still having problems with certain languages). 13.Fixed tabbed dialogs display bug with large system font. 14.Can now echo to dedicated query window with /echo -d switch. 15.Fixed channel/private message text-wrapping bug. 16.Fixed /stats wrapping bug. 17.on NOSOUND is no longer tied to the "Warn if sound doesnt exist" switch in options dialog, it triggers anyway. 18.Fixed /dline gpf bug when specifying a range of lines. 19.Added -a switch to /savebuf, appends text to end of file. 20./loadbuf now loads text faster into normal (not custom) windows. 21.Can now specify the filename for the channels list file in the list channels dialog. 22.Fixed editbox focusing problem with when switching to/from desktop windows. 23.[removed] 24.Highlight in Options/perform dialog now checks only the text portion of a message and ignores the nickname. 25.Added auto-tile option. 26.Changed auto-tile/cascade/arrange method... these are now only applied when a window is first opened, when it's closed, or when the main mIRC window is resized. 27.Fixed notify popup menu problem when notify window first pops up on connect. 28.Added /filter command, allows filtering of information. /filter [-sdfwxnp] The infile can be a filename or a window name (custom or normal). The outfile can be a filename or a custom window name. You should specify the -fw switches if the names are ambiguous eg. /filter -ff in.txt out.txt *mirc* This indicates that both are filenames, and: /filter -wf #in.txt #out.txt *help* indicates that the first is actually a window name, and the second is a filename. The -x switch excludes matching lines. The -n switch prefixes lines with a line number. The -s switch makes the status window the infile. The -d switch makes the dedicated message window the infile. The -p switch wraps the text output in a custom window 29.Added on WAVEEND event, works the same as on MIDIEND. Also added $inwave which returns $true/$false if currently playing a wave. 30.Added -qwm switches to /splay command. The -q switch allows you to queue wav and mid sounds for playing. The -wm switches are used in conjunction with /splay -wm stop, and allow you to specify whether you want to stop waves, mids, or both playing. 31.The Notify list now queues sounds if several notify users have an associated sound. 32.Fixed scrollbars bug in channel windows. 33.Fixed scrollbar display bug when changing fonts. 34.Added filename editbox to DCC send dialog. 35.Fixed /pdcc range. 36.Can now use $server(address) to look up server info, also speeded up $server() identifier. 37.Now only uses one toolbar button for connect/disconnect. 38.If you right-click on the Setup dialog toolbar button, a popup menu of your top 15 irc servers is displayed. 39.Fixed notify bug. 40.Added $appactive, returns $true if mIRC is the active application, $false if it isn't. 41.$script() no longer includes variables and users. 42.Implemented new indexing method for aliases/scripts, processing should be much faster, especially when many files are loaded. 43./remove can now handle LFNs. 44.Added "show topics in channel" switch to options dialog. 45.Added -uN switch to /set command, where N is the number of seconds delay before the specified variable is /unset. 46./.ignore -u is now completely quiet. 47.Changed behavior of /notify. 48.Added internal ctcp version flood protection. 49./timers can now be given names as well as numbers. 50.Actions now trigger the on QUERYOPEN event if a window isn't open, and fixed bug relating to remote handling of invalid actions. 51.Fixed lines sometimes being highlighted incorrectly. 52.Added nick completion with TAB key in a channel window editbox. If the editbox is empty and the TAB key is pressed it works as before (places /msg nickname in editbox). 53.[removed] 54.Fixed font dialog bug. 55.Fixed channel nickname selection bug with popups. 56.Fixed /sline bug not working with &+ channels. 57.Added -@ switch to /close command for closing custom windows. 58.Fixed /savebuf bug when used with an empty text window. 59.Added /flash [-wb] command, which flashes the mIRC icon/window with the specific text in the titlebar, but only if mIRC is not the active window. The -b switch makes mIRC beep every second, the -w switch makes mIRC play the Flash sound specified in the Event Beeps dialog. Also added Flash option in windows system menu for channel and private windows. 60.The mIRC icon/window is now flashed if mIRC is not the active window and it receives a private or channel message that triggers the highlight option in the perform section. 61.If text specified with the /editbox command contains a linefeed character, it is entered into the editbox and immediately processed as if you had entered it and pressed the enter key. 62.Changed ctcp event format to: ctcp level:matchtext:*|#|?:commands This allows you to differentiate more easily between channel and private ctcps. The old format is still handled. 63.Fixed /server remembering previous server connection info. 64.While connecting or retrying a connection, the connect/disconnect toolbar button remains in the disconnect state. 65.Added "Highlight" and "Flash" sound settings in the Event Beeps dialog. These allow you to specify the sounds that will be played for the highlight/flash options in the Perform dialog. 66.Added .path property to $send() and $get() for a file's directory path. 67.Implemented new indexing method for variables. 68.Added quick colour index dialog that pops up when Control-K is pressed, can be turned on/off in Options/Extras dialog. 69.Changed $pos() to include start search from Nth character. The old format is still handled. $pos(string, substring, N) If N is zero $pos() will return the number of times substring appears in string. 70.Now using one routine for reporting the most common errors, and the majority of commands now report a filename and line number for an error. 71.Added properties to $notify() .note, .sound, .whois, and can now specify either a number or a nickname parameter. 72.Added /rename command. Can also be used to move files from one directory to another. 73.Added -b switch to /font command to specify a bold font. 74.Added -p switch to /aline, /iline, and /loadbuf, forces lines of text to wrap when added to a custom window. 75.Added /linesep [-s|window] command to print line separator. 76.Added /copy command. You can use wildcards for the source, and a directory name for the destination. 77.Added $show identifier, returns $false if a command/alias is prefixed with a . to make it quiet, otherwise returns $true. 78.Added "try next server in group" switch in Setup/options dialog, works in conjunction with the retry option. 79.Added on DCCSERVER event, triggers on a DCC server connection, and allows you to /halt the connection. on 1:DCCSERVER:Chat|Send|Fserve:echo $nick $address $filename 80.Removed support for /msg #@channel for Undernet servers. 81.Can now use === comparison in if statement for case sensitive comparisons. 82.Added -f switch to /log command, allows you to specify a filename. /log [-f filename] 83.Added -l switch to alias prefix in scripts, makes an alias in a remote script local to the script, so it can only be called by events from within that script. It is invisible to all other aliases, scripts, and the command line. alias [-l] aliasname { commands } 84.Fixed dclick bug with text/listbox windows. 85.Fixed bug with menubar definitions in scripts not appearing in menubar if there isn't a Popup for the menubar defined in the Popups dialog. 86.Fixed bug in url/email catcher, url catcher now also ignores addresses that are too short. 87.Added "copy all" button to /uwho dialog. 88.Added $sdir identifier, pops up a directory selection dialog. 89.Can now specify the range of port numbers used by DCC in the DCC Options dialog. 90.Extended "!nick filename" feature so that it supports .mp3 files. (note: mIRC can't play .mp3 files itself). 91.Added $colour(name) identifier, returns colour index N of the specified custom colour. You can use the name of the custom colour eg. $colour(action text). If you don't specify the full name the first partial match is returned eg. $colour(action) 92.Modified line-handling commands/identifiers to treat wrapped lines as a single line. 93.Changed /dns queuing method so that it only attempts to resolve an address once a previous one has finished resolving, and fixed a bug when trying to use /dns from within an on dns event. 94.Added -inx switches to /join, -i joins the last channel to which you were invited. The -n switch minimizes, and -x maximizes, the channel window when you join it. 95.[removed] 96.Fixed popups display bug when using certain combinations of submenu definitions. 97.Extended dclick prefix in script menus so that it can handle multiple lines etc. 98.Added -uN switch to /inc and /dec, this increases/decreases the specified variable by 1 (and only one) every second, for N seconds, and then unsets the variable. 100./write, /writeini, /remini, $read, and $readini now handle long filenames enclosed in quotes. 101.Added binary variable/file commands. /bread <&binvar> /bwrite [numbytes] $bvar(&binvar,N) If N is 0, returns the length of the binary variable, otherwise returns the ascii number of the Nth character. /bset <&binvar> If you try to /bset a variable that doesnt exist, it is created and zero filled up to . If &binvar exists and you specify beyond it's current size, it is extended to bytes. Note: 1.If a bytepos of -1 is used with /bwrite, the info is appended to the end of the file. 2.&binary variables can ONLY be accessed by certain commands (only bread and bwrite for now) so they can't be printed or assigned or edited. 3.&binary variables are temporary - they are destroyed when a script finishes processing. 4.Max numbytes is 4096. 102.Added -eiN switches to /echo command. The e switch encloses the printed text in line separators. The -iN switch indents the wrapped line by N characters. 104.$strip() now also removes leading spaces. 105.Fixed /if bug. 106.Added -m switch to /timer command, uses a millisecond timer. Note: millisecond timers can slow mIRC down significantly because each timer can trigger many times per second and is processed individually, whereas non-millisecond timers are only processed once per second in one batch. 107.Added support for raw socket connections. $sock(name,N).name,.port,.ip,.status,.sent,.rcvd,.sq,.rq,.ls,.lr,.mark .name is the name you give to a connection to identify it. .sent and .rcvd return the number of bytes sent and rcvd over that connection so far. .sq and .rq return the number of bytes queued in the send and receive buffers respectively (see below for more info). .ls and .lr return the number of seconds since the connection last sent and last received info. .mark is a user storage area max. 512 bytes (see /sockmark) Note: you can use a wildcard name to quickly reference only matching entries. The N parameter is optional, if it isn't specified it is assumed to be 1. $sockname $sockname is the name given to a connection to identify it. This identifier can be used in events to know which connection an event is related to. $sockerr $sockerr is set to a value after each socket command/event and *must* be checked after each socket command and before processing an event to see if an error occurred. $sockbr $sockbr is set to the number of bytes read by a /sockread command. It is used to test whether any information was in fact read from the buffer (see below for more info). $portfree(N) returns $true if the specified port number is not in use, otherwise returns $false. /socklisten [port] The /socklisten command listens on the specified port for connections to that port. If a port isn't specified, the port is selected randomly from the range specified in the DCC Options DCC ports section. on 1:socklisten:name:commands The socklisten event is triggered when someone tries to connect to a port that you are listening on. If you want to accept the connection you *must* do it in this event using the /sockaccept command, otherwise the connection is closed. /sockaccept The /sockaccept command accepts the current connection to your listening port and assigns it a name to identify it. /sockrename The /sockrename command assigns a new name to an existing connection. /sockopen
The /sockopen commands initiates a connection to the specified address and port. You can specify either an ip address or a named address (which will be resolved to an ip address). on 1:sockopen:name:commands The sockopen event is triggered when a /sockopen command is successful and a connection has been made. /sockclose The /sockclose command closes the connection with the specified name. If you specify a wildcard name, all connections that match the wildcard are closed. on 1:sockclose:name:commands The sockclose event is triggered when a connection is closed by the remote connection (not you). /sockwrite [-tn] The /sockwrite command queues info to be sent on the specified connection. mIRC will then try to send that info as quickly as it can. Once it has finished sending the info, it triggers the on sockwrite event so you can send more info if you need to. If you specify the -t switch, it forces mIRC to send anything beginning with a & as normal text instead of interpreting it as a binary variable. The -n switch appends a CRLF to the line being sent if it's not a &binvar and if it doesn't already have a CRLF. Note: you can use a wildcard name to send the same information at once to all connections that match the wildcard. on 1:sockwrite:name:commands The sockwrite event is triggered when mIRC has finished sending all of the info which you previously queued for sending. Note: if you try to /sockwrite while there is still info queued in the send buffer, your new info will just be added to the end of the queue. You can find out how much info is currently queued by using $sock().sq (send queue). on 1:sockread:name:commands The sockread event is triggered when there is info waiting to be read on the specified connection. You can read this info using the /sockread command. Note: If this event triggers but no /sockread is performed to attempt to read the buffer, it is assumed that no script exists that is handling this buffer, so it is cleared and the info it contained is lost. /sockread [numbytes] <%var|&binvar> The /sockread command reads bytes from the receive buffer into the specified variable. If you specify a %var variable, a line of text ending with a Carriage Return/LineFeed is read into %var. The CRLF are stripped off (this may result in %var being $null if the line only consisted of CRLF). If you specify a &binvar then [numbytes] of info is read into the binary variable. If no [numbytes] is specified it defaults to 4096 bytes. Note: a single /sockread may not be enough to read the entire buffer. You should keep reading until $sockbr (bytes read) is set to zero. This is far faster than letting mIRC re-trigger the event. If your script doesn't read the whole buffer, the on sockread event is re-triggered if: a) you were reading into a &binvar. b) you were reading into a %var and there is still a CRLF terminated line in the buffer waiting to be read. /sockmark [text] The /sockmark command fills the .mark attribute of a socket with the specified info for later reference via the $sock().mark property. If you do not specify any text, the mark is cleared. Note: you can use a wildcard name to set the same information at once for all connections that match the wildcard. 108.Changed handling of filenames that don't have a fully specified path. If a filename has a directory specified with no drive, it is assumed to be in a subdir of the mIRC directory. If it has no drive or directory, it is assumed to be in the mIRC directory. 109.Fixed /cd into a filename in fileserver. 110.Implemented new indexing method for IAL. 111.Added $ial identifier, returns $true/$false if ial is on/off. 112.Added two new tokens: $deltok(text,N,C) deletes Nth token $puttok(text,token,N,C) overwrites Nth token Extended $find/rem/reptok() so you can specify the Nth matching token. The old formats are still handled. $findtok(text,token,N,C) finds Nth matching token $remtok(text,token,N,C) deletes Nth matching token $reptok(text,token,new,N,C) overwrites Nth matching token 113.Fixed MDI/desktop options bug. 114.The # character is now equivalent to $chan in remote events. 115./ulist now displays results in current window. 116.Specifying zero for the N parameter in $mid(text,S,N) now returns the number of characters from S to the end of the line. 117.Extended the /window command with the following switches: /window [-abcdefhl[N]norsx] [-tN,..,N] [+bfmnstx] etc... -f indicates that [w h] width and height is the required size of the text/graphic display area instead of the window size. -h hides the custom window (only appears in Windows list). -lN specifying a number after the l listbox switch now creates a custom window with a listbox N characters wide on the side (like a channel window). Note: The -l switch can be used in custom window related commands eg. aline, to reference this listbox. You can use $line(@name,N,T) where T is 0 if you are referring to the text display or 1 if you are referring to the listbox. The old format $line(@name,N) is still supported. [-tN,..,N] specify tabstops (in characters) for a listbox window. If you add text which contains tabs to the listbox, the text is aligned according to these tabstops. [+bfnstx] modify the window appearance. b = border f = dialog frame n = minimize box s = sizable t = titlebar x = maximize box 118.Added /resetidle command to reset $idle timer to 0. 119.on INPUT event can now use wildcard text for window name. 120.Added Close Window Alt+Z menu item to Window menu. 121.Added new on OPEN/CLOSE event which triggers when a window is opened or closed. The behavior of this event is slightly different depending on the type of window. on 1:OPEN:?|@|=|!|*:echo opened $target on 1:CLOSE:?|@|=|!|*:echo closed $target Channels: are not handled by these events, they are handled by the on JOIN/PART events. Queries: on OPEN triggers if an incoming message is about to open a new query window. on CLOSE triggers if you close a query window. Chat/Fserve: on OPEN triggers when a connection is made. on CLOSE triggers when a connection is closed. Custom: on OPEN never triggers since you manually open a /window anyway. on CLOSE triggers if you close a custom window. Note: on CHATOPEN/CHATCLOSE/QUERYOPEN/QUERYCLOSE/SERVOPEN/SERVCLOSE events are now obsolete, if you load a script that uses them mIRC will (try to) translate them into the new format. 122.Added -h switch to /echo command which forces text to hard wrap. 123.Specifying line 0 with $read eg. $read -l0, now returns the value of the first line if it is a number. 124.Fixed remote identifiers not evaluating inside custom identifiers. 125.Added faster indexing for menu {} definitions in scripts. 126.The Text editor now warns you if it was unable to display the whole of a file in the editbox. 127.Added -p switch to the /window command, opens a new type of custom window for displaying pictures/graphics/text/etc. See below for the commands/identifiers available for use with this window. /drawdot -ihnr @ [...] Draws a dot in the specified colour and size at the specified x,y co-ordinates (multiple co-ordinates can be provided). The -i switch draws in inverse mode. The -h switch highlights the windows icon if it's minimized. The -n switch prevents the display from being updated immediately. You can specify any of the /draw commands with only a window name to update the display (allows you to make changes in the background and then display the result when you're finished). The -r switch indicates that the colour is in RGB format. You can use $rgb(N,N,N) to create an RGB value. You can clear the whole window with /clear @windowname. /drawline -inr @ [...] This draws a line from the first co-ordinate to the second, if more co-ordinates are specified, the line is continued. /drawrect -ihnrfec @ [...] This draws a rectangle of at the specified co-ordinates of the specified width and height. If more co-ordinates are specified these are also drawn as separate rectangles. The -f switch fills the rectangle with the current colour. The -e switch draws an Ellipse instead of a rectangle. The -c switch draws a focus rectangle. /drawfill -ihnrs @ [filename] [...] This fills an area with the specified colour starting at the specified co-ordinates. If the -s switch is specified, this means that the second colour parameter is the colour that should be filled. If no -s is specified, the second colour is the border colour at which filling should stop. The optional [filename] specifies a bitmap .BMP file that is 8 by 8 pixels in size and is used as a fill pattern. /drawtext -hnrpboc @ [colour] [fontname fontsize] This draws text at the specified co-ordinates. The -p switch processes and interprets colour/bold/etc. codes in the text. The -b switch indicates that you have specified a second colour as the background colour for the text. The -o switch means the specified font should be in bold. The -c switch means that you have specified the [w h] values as the rectangle in which text should be printed. Text will be clipped if it extends beyond this rectangle. /drawscroll -hn @ [ ...] This scrolls the region inside the specified rectangle. The first and parameters represent the distance to scroll and can be positive or negative. /drawcopy -ihnt @ [colour] @ This copies part of a picture to a different position in the same window or to another window. If the second [w h] parameters are specified, the picture is stretched/squeezed to fit. The -t switch indicates that you have specified a [colour] RGB value as a transparent colour in the source bitmap. /drawpic -ihntsc @ [colour] [x y w h] This loads and draws a Bitmap .BMP picture at the specified co-ordinates. If the first [w h] are specified, it is stretched or squeezed to fit. The second [x y w h] rectangle specifies which portion of the loaded bitmap should be displayed ie. a bitmap could contain multiple pictures. The -t switch indicates that you have specified a [colour] RGB value as a transparent colour in the specified bitmap. The -s switch indicates that you have specified the first [w h] parameters (as explained above) to squeeze/stretch the bitmap. The -c switch indicates that the bitmap should be CACHED. This greatly speeds up subsequent references to this bitmap. If you specify -c and the bitmap is already in the cache, it is loaded and used from the cache, otherwise it is reloaded from the file. You can clear the entire cache with /drawpic -c. If you try to load and cache a bitmap and there are already 30 bitmaps in the cache, the bitmap with the lowest reference count is freed and replaced by the new bitmap. If you try to load a bitmap and there isn't enough memory, mIRC repeatedly frees the least referenced bitmap and tries to load again. $pic(filename).size,width,height This returns the size, width, and height of a bitmap file. menu @ { mouse:/echo mouse moved at $mouse.x $mouse.y sclick:/echo single click at $mouse.x $mouse.y dclick:/echo double click at $mouse.x $mouse.y drop:/echo drag and drop at $mouse.x $mouse.y } The mouse event is triggered when you move a mouse inside a picture window. You can use the $mouse identifier (below) for the x and y position of the mouse. The sclick event is triggered when you click inside a picture window. It will trigger even if you double-click. The dclick event is triggered when you double-click inside a picture window. $mouse.x,.y,.key The $mouse identifier can be used in the mouse/click events. For $mouse.key you can use the & bitwise operator to check if the left button, shift key, and/or control key are pressed. eg. if ($mouse.key & 1) echo left button is pressed $click(@,N).x,.y This stores a history of x,y clicks for a window. You can use /clear -c @ to clear the history of clicks for a window. If you use $click() with no properties it returns x y. $inrect(x,y,x,y,w,h) This returns $true if the point x y is in the specified rectangle, and $false if it isn't. $rgb(N,N,N) This returns an RGB value for use in the above commands. If you use only ONE parameter, it assumes it is an actual RGB value and returns N,N,N. $getdot(@,x,y) This returns the RGB value of the pixel at the specified position. 128.Added Control-F Find text search dialog for use in text windows. 129.Fixed /ignore -p ignoring a users actions to a channel instead of only in private messages. 130.Fixed channel listbox selection bug, was leading to items in listbox being selected spuriously in certain situations. 131.Added identifiers $sin(N), $asin(N), $cos(N), $acos(N), $tan(N), $atan(N), where N is in radians, $log(N), $sqrt(N). 132.The channel name is now displayed in a CTCP if you received it via a channel message. 133.Fixed Bold/underline/etc. bug in text display. 134.Keyboard messages are now processed correctly for desktop windows. 135.Fixed bug relating to messages being incorrectly highlighted. 136.Added properties to $window(N/@) identifier, now includes: $window().x,y,w,h,dw,dh,bw,bh,mdi,title,state x,y the left and top corner position w,h the width and height of the window dw,dh the width and height of the text/graphic display area. bw,bh the width and height of the bitmap for a bitmap window this may not be the same size as the display area. mdi $true if window is mdi, otherwise $false title the text in the titlebar state minimized/maximized/normal/hidden If you specify -1 as the window name, w and h will return the width and height of the screen. 137.Fixed floating point number checking routine, was treating a single . as the value zero. 138.Fixed conflicting shortcut keys in several dialogs. 139.Added Minimize to Tray option in Extras dialog. This option is only available under win95 with the 32bit mIRC. If the option is unchecked, you can force mIRC to minimize to the tray by holding down the SHIFT key when you minimize mIRC. If the flash option is triggered, the icon flashes. If you right-click on the icon a popup menu with your current queries/channels appears, those that have a checkmark next to them have had their icons highlighted due to incoming messages. You can click a menu item to open the window. If you hold down the SHIFT key when you quit mIRC, the next time you run it, it will be minimized. 140.Added $portfree(N) identifier, returns $true if the specified port number is not in use, otherwise returns $false. 141./splay and notify can now handle LFN sounds. 142.If you hold down the Control key when clicking on a windows tab in the switchbar, the window is minimized. 143.Extended $maddress() so you can specify the Nth matching address, eg. $maddress(address,N). The old format is still handled. 144.Fixed identd bug which was disabling identd in certain situations. 145.If your directories for DCC Get, Logs or Sounds are the main mIRC directory, mIRC creates a download directory for DCC gets, and asks if you want a Logs/Sounds directory created for you. Existing .log or .wav and .mid files are moved from the main directory into their respective directories. 146.Leading spaces are now stripped from a $read line. 147.Added support for DALnets /nick [password] command. 148.Can now hold down Alt-Key while pressing enter in a multi-line editbox to enter separate lines. 149.If you use /load to load a file that is already loaded, its contents are updated and its position in the processing order is maintained. 150.Added /mkdir and /rmdir commands. 151.Fixed bug in Identd, Finger, and DCC Servers which was causing them to miss incoming connections if many came in quickly at the same time. 152.Lines in the channels list are now stripped of control codes before being scanned for the match text. 153.Fixed file creation routines not setting the correct read/write file attributes in certain cases. 154.If you /server and the group doesn't exist, mIRC assumes it's an address without a domain and tries to connect to it. 155.Fixed out of bounds number processing gpf bug, out of bounds error calculations now return $null. 156.Fixed drag-drop bug. 157.It is no longer possible to alias the /unload command. 158.Can now press Alt+1...9 key combination to switch to the Nth window in the Window list. eg. Alt+1 is the status window. You can also use Alt+0 to switch to the main mIRC window from an mIRC desktop window. 159.Fixed toolbar bug which was preventing keypresses from being processed when the tooltip was displayed. 11/09/1997 - mIRC v5.11 Changes: 1.Fixed problem with mIRC not running under non-English versions of windows (main reason for this bugfix release). 2.Fixed version info in version tab in explorer. 3.Removed support for IRCNets numeric 005 B:lines for this version. 4.Now handles /privmsg with : prefixing the message. 5.Fixed mIRC not evaluating certain identifiers if they were capitalized. 6.Fixed $file/$hfile/etc. not using the specified directory. 7.Fixed DCC server socket not being closed properly on exit. 8.Added $highlight identifier returns text in highlight editbox in options dialog. 9.Fixed -h icon highlight bug for /aline etc. commands. 10.Fixed /cline bug (?) 11.Fixed default listbox text colour not being updated after changing it in colour dialog. 12.When copying a URL to the clipboard from the URL popup menu, the cr/lf characters is not added if you're only copying a single URL. 13.Fixed Alt+F4 appearing in minimized windows instead of Ctrl+F4. 14.Fixed /describe =nick bug. 15.Fixed $round(). 16.Fixed server connection retry when a connection fails. 17.Fixed /remove bug. 18.Fixed small finger server $ bug. 19.Fixed toggling MDI/desktop status of window when it is minimized. 20.Fixed $server in on disconnect event. 21.Fixed Identd UserId being used instead of Email UserId when registering with IRC server. 22.Fixed /unloading alias/script files bug, files are now saved if they have been changed before unloading. 23.Changed server lookup method in local info dialog back to old method, the named address is resolved using /dns to look up the ip address. 24.Fixed font bug in text display routines for windows/listboxes. 25.Fixed bug when switching between multi/single-line editbox. 26.Fixed shift-drag-drop settings not being saved. 27.Fixed offline DCC chat window closing even if "close window on DCC completion" option is not turned on. 28.Fixed text-wrapping when displaying certain numeric events. 28/08/1997 - mIRC v5.1 Changes: 1.Fixed actions display bug. 2.Fixed empty first line in alias halting script. 3.Fixed small bug in !nick file. 4.Fixed on DNS being triggered when events are turned off. 5.Fixed remembering window position/size bug. 6.Can now use {} in single-line definitions in popups, they are ignored by the {} parser. 7.Fixed !nick file not working in DCC chats. 8.Fixed sound requests bug, sound request filenames which contain a drive or directory specifier caused problems. 9.Fixed line-wrap bug in minimized @custom window. 10.The /part command sends a /part to the server as usual but now it also closes the specified channel window immediately. 11.Fixed $inmidi returning true/false instead of $true/$false. 12.Fixed Help menu bug, wasn't acknowledging selection sometimes. 13.Fixed small bug in on NOSOUND event. 14.Fixed /whois on a notify nick with an address specified. 15.Fixed editbox losing focus when drag-dropping a file on a window. 16.Now allows you to clear a users notify sound setting and the DCC get directory application setting by clicking it's button. 17.Now allows you to use /ban with an address, if you specify a wild card address, it is used as is. If you specify a full address, the address mask is applied to it. 18.on SERVCLOSE now also triggers on a fileserver time-out, and both on SERVCLOSE and on CHATCLOSE trigger when you close a window manually. 19.Fileserver allows cd into an LFN directory. 20.Added $getdir(*.ext) returns download directory for filetype. 21.Can now use /titlebar @window to change topic of custom window. 22./run command no longer changes specified line to lower case. 23.You can now specify a window name for the on INPUT event by using the format on 1:input:*/#/?/@:/commands. 24.Added $alias(N/filename) and $script(N/filename) identifiers. 25.On connecting, if mIRC doesn't receive a 375 (RPL_MOTDSTART) before recieving 372's (RPL_MOTD), it shows the 372's. 26.Server IP Address lookup method is now different, it gets the IP address from the actual connection so it doesnt have to look it up, and after connecting it looks up the named address with a /userhost. For new IRCnet servers, mIRC uses the address in the numeric 001 when first connecting instead of /userhost. 27.Fixed notify bug (?) previous method was causing problems, so have reverted to sending all notify lines immediately. 28.Improved tabbed dialogs display, there should no longer be any flickering in the display. 29.Modified some icons, also added an mIRC scripts icon. 30.Fixed !nick filename bug which wouldn't work if a user specified a message after the filename. 31.Added internal version info to exe. 32.Changed display method of icons in switchbar buttons. 33.Fixed com1, com2, etc. device bug (?) 34.Added copy option to urls list popup menu. 35.Send To option in urls list popup menu now doesn't send description of address if it's the same as the address. 36.Added support for /locops. 37.Fixed old parsing bug relating to positioning of : character, affects general server commands such as /wallops, /globops, /away, /stats, /who, /userhost, etc. 38.Can now specify -n with /run to minimize a window. 39.Added "All" button in replace text dialog. 40.Can now specify a @window name in $findfile() as the Nth parameter and it will output list of matching files to @window if it exists. 41.Fixed /fingering an IP address. 42./.dns now hides output of dns results. 43.Fixed bug in switchbar display when showing/minimizing windows. 44.When the switchbar is turned on, minimizing URL and Notify windows is now the same as closing them. 45.URL Catcher now catches email addresses. 46.Improved method for closing down a connection, should prevent the problems with the computer hanging when disconnecting from a server. 47.Added $window().titlebar property identifier. 48.Improved memory usage of /dns, socks host, and finger routines. 49.$address identifier can now be used to refer to the address in the titlebar of a query window. 50.Added -a switch to /write command which appends the text to the specified line. 51.Added /clipboard command, copies text to the clipboard. 52.Major decrease in DCC Send/Get memory usage. Also the /pdcc method has changed, should be faster now. 53.Fixed logging switch in window system menu when changing to/from MDI/desktop window mode. 54.Text @windows no longer wrap text. 55.Can now /loadbuf a window's log file into its window. 56.Added $query(nick).address which refers to the address in the query window titlebar. Note: this address could be incorrect and is not available until after you receive a message from the user. 57.Fixed popup menu bug which was resulting in processing of lines following the end of a definition. 58.If no dclick item is specified in a menu script, mIRC uses the /command definition of a @window for the double-click. 59.Fixed /help passing parameters. 60.Fixed on dns ip address bug. 61.Added $ltimer identifier, returns number of last started timer. 62.Added $email identifier, returns email address in setup dialog. 63.Fixed any ctcpreply beginning with "PING" being interpreted as a ping reply. 64.Added (v1 isletter v2) comparison, where v1 is a letter in the list of letters in v2 (v2 optional). 65.Added $ignore(N/address) identifier, with .type property. 66.Added /sline [-a|r] #channel N/nick command. 67.Changed identifier parsing routine so that it is now independent of the command parsing routine, which allows... 68.Identifiers and variables in Menu definitions, Full Name, and Quit message are now evaluated. 69.Lines in finger server file are now evaluated if they are prefixed with a $ character. 70.Fixed dclick in menu script definition being triggered for a window even if the popup name in /window wasn't specified. 71.Added $ialchan(address,#channel,N). 72.Now handles floating point numbers (precision to 5 digits only). 73.Fixed recursive gpf with multiple script on start/load calls. 74.Fixed toolbar buttons display bug (?) buttons appeared incorrectly under some graphics drivers. 75.Added $round(N,D) rounds to closest integer and $int(N) chops off decimal point. 76.Can now use Shift-F1 in dialogs. 77.Added $calc(N) identifier, allows you to perform mathematical calculations, combining brackets, terms, variables, identifiers, handles operator precedence, etc. eg.: //echo 1 $calc(3.14159 * (2 ^ %x % 3) - ($ticks / (10000 + 1))) 78.Added Address Book which replaces the Uwho dialog. You can use the command /uwho as usual to /whois a user, or you can use the command /abook to display the currently stored info on a user. Can display pictures only in BMP format. You can pop up the Address book with Alt-B. 79.Can now /list <#channel[,#channel,...]> to list just the specified channels. 80.When you manually turn on logging for a window you can now specify a log filename which will be remembered across sessions until you turn logging off. Turning off logging for a window is now also stored across sessions, so once you turn it off it needs to be manually turned on again later (the auto-log option won't override it). 81.Script errors such as invalid if statements, identifiers, non-existent gotos, etc. now report line number/filename. 82.Fixed toolbar tracking mouse when mIRC isn't the active application. 83.Fixed bugs relating to If statements and [ ] brackets. 84.Fixed custom identifiers returning garbage if no /return is used. 85.Added $link(N) identifier for Links window, with properties .addr, .ip, .level, and .info. 86.Added /editbox [-s|-a|[=]window] [text] command which fills the editbox of the specified window with text. If no text is specified, the editbox is cleared. 87.If you press the Up/Down key to view the previous/next line in an editbox, and you are at the bottom of the editbox, the current line is first saved. If you're at the bottom of the buffer and you press down, the editbox is cleared. 88.Can now specify a range of lines with /dline, eg: /dline @name N[-N2] delete lines N to N2 89.Can now customize colurs in Colour dialog by right-clicking on a colour box. Note: only SOLID colours can be used. 90.Added Script ordering dialog for aliases and remote scripts. 91.Tweaked text display routine. 92.Fixed appearance of mode change when using /channel dialog. 93.Added Lock files option to logging dialog. If turned on, log files are opened, written to, and only closed when logging is turned off or window is closed. If turned off, log files are opened, written to, and closed each time a new line is written to the log. 94.Listboxes can now display coloured lines, eg. custom windows, the links list window, etc. 95.Now displays a square around selected colour box in colour dialog. 96.Control codes are now interpreted in channels list, links list, urls list, and custom window listboxes. 97.The channel nicknames list no longer jumps around when nicks are added/removed/modified to/from/in it, and selections and nick colours remain constant across nick/mode changes. 98.Added command /cline [colour] @name N, allows you to set the colour of the specified line. 99.Fixed /squit. 100.Fixed handling PONG server reply that isn't fully specified. This was causing the flood protect mechanism to stall and not send any buffered text. 101.Control codes in /titlebar text are now stripped out. 102.The Check Brackets button in the Editor dialog now turns into a sort variables button when viewing the variables section. 103.Fixed Control-Shift-Tab bug, was stopping at channel windows. 104.Decreased the number of memory allocations in the command parsing routine by over 50%, in some cases it may be close to 100% decrease. There is a slight increase in script processing speed, but this change should mainly affect mIRC running under NT. 105.Fixed $asc() bug. 106.Added -s switch to /play command, allows you to play commands to status window, and can now also /play while not connected to server. 107.Fixed /remove command. 108.[removed] 109.Added [+m|-m] switch to /creq and /sreq to turn minimize on/off. 110.Fixed $replace() gpfing with long lines. 111.Now displays numeric 329 with channel creation time. 112.Added auto-arrange icons and auto-cascade options to Window menu. 113.Line separator is now not printed again if the previous line was a line separator. 114./wallchops command is now translated into the /onotice command. 115.Can now queue multiple /dns requests. If an address is already in the DNS queue, it is not added again. Note: because of the way the DNS lookup works, any DNS related requests currently in progress eg. connecting to a server, must be resolved before subsequent requests. This means that if a prior DNS is having problems resolving, subsequent DNSs have to wait until it times out before they can be resolved. 116.Added auto-overwrite option for DCC Gets. 117.Changed DCC Options dialog into a tabbed dialog for more space. 118.Added events on 1:QUERYOPEN/QUERYCLOSE:/echo $nick $address. Note that $address may not always be available. 119.Now displays messages sent to @#channel properly, and $target is also set correctly with the @ prefix. 120.For DALnet 4.4.11 & Undernet 2.10 or higher /onotice now sends message in the format: /notice|/msg @#Channel. 121.Custom Menubar on|off is no longer an option. If there is popup text in the Menubar section of the Editor, the menubar will be displayed automatically. 122.Fixed rubbish text appearing in Editor dialog when switching from Users/Variables to a script section via the View menu. 123.When selecting File/New in Editor dialog, any changes in the current editbox are now remembered. 124.Can now use /savebuf [-s|-f] etc. to save status/finger buffer, a window name should not be specified. 125.When a channel is first joined, mIRC now saves to the channels logfile: channel topic, topic set by, channel URL, and channel creation time. 126.URL catcher now doesn't chop off addresses with ? and = in them. 127./partall now works offline. 128.Added /dqwindow [on|off|show|hide|min] which allows you to change the dedicated query window setting, and to manipulate the window. 129.When listing info on a specific channel eg. /list #mIRC, your channels.txt file is not over-written. 130.Fixed handling multiple lines pasted into editbox and parsing by on INPUT event. 131.Added /winhelp command for opening help files. 132.Added -h switch to /aline/dline/etc. line commands which highlights the icon of the window in which the change is being made. 133.Added $timezone identifier, for the 32bit version the return value depends on timezone setting in Windows, for the 16bit the return value depends on the TZ environment variable in your autoexec.bat. 134.Fixed /timer -o switch bug. 135.Added mIRC DCC server, listens by default on port 59 for special mIRC DCC connections. To turn the DCC server on/off you can use the command: /dccserver [+|-scf] [on|off] [port] You can send/chat/fserve the DCC server using the DCC Send/Chat dialogs and specifying an IP address instead of a nickname (you can also specify both a nickname and IP address, mIRC will use the ip address to connect). From the command line, you can use /dcc [send|chat|fserve] with an IP Address instead of a nickname to initiate a connection to the DCC server. Note: /dcc fserve only works for IP connections and does not work via IRC. Chat Protocol Client connects to Server and sends: 100 clientnickname When Server receives this, it sends: 101 servernickname Connection is established, users can now chat. Fserve Protocol Client connects to Server and sends: 110 clientnickname When Server receives this, it sends: 111 servernickname Connection is established, user can now access fserve. Send Protocol Client connects to Server and sends: 120 clientnickname filesize filename When Server receives this, it sends: 121 servernickname resumeposition Where resumeposition is between 0 and filesize, and is required. Connection is established, and Server DCC gets the file. Get Protocol Client connects to Server and sends: 130 clientnickname filename When Server receives this, it sends: 131 servernickname filesize When Client receives this, it sends: 132 clientnickname resumeposition Where resumeposition is between 0 and filesize, and is required. Connection is established, and Server DCC sends the file. Notes: a) The Get protocol has been implemented in this way mainly because I'm assuming: 1) The client may not be able to open a socket to listen for and accept a connection (firewall etc.) 2) The DCC server may only be able to listen for connections on port 59 (firewall etc.) 3) Since the client was able to connect to the DCC server the first time, it should have no problem connecting to the same port again. b) Currently the Get Protocol is ONLY used by the fileserver when a user (who has connected to a fileserver via the DCC server) requests a "get filename". All other attempts to Get a file via the DCC server are ignored. If server receives unexpected information, or doesn't recieve info 15 seconds after initial connection, it closes the connection. If service is unavailable, server sends: 150 servernickname If server rejects connection, it sends: 151 servernickname 136.Fixed timer().time bug. 137.Fixed $duration() bug. 138.Can now specify multiple @window names with the "menu" prefix in remote scripts, eg.: menu @info,@test,@blah { squawk:/echo squawk! } 139.Fixed gpf when using /close for certain types of windows in remote events. 140.Fixed /links not displaying info correctly when only retrieving partial info. 141.Fixed text wrap bug when a window is minimized. 142.To force /uwho to lookup a users idletime/awayinfo/etc. you can now use /uwho nick nick (just like /whois). 143.Added $editbox(window) identifier which returns contents of editbox for the specified window. 144./splay can now play LFN filenames. 145.Fixed appending _ to a filename when a dir of the same name exists (excluding .extension) 146.Enhanced /font command, can now change font by specifying parameters, eg. /font 712 ms sans serif /font [-a|-s|window] 147.Added support for IRCnet's 005 numeric. 21/04/1997 - mIRC v5.02 Changes: 1.Fixed Alt-Gr key for non-UK/US keyboards. 2.Fixed joining a channel in channel folder. 3.Perform section now performs after MOTD is completely processed, and the Channels Folder now pops up after the perform section is completed. 4.Now handles numeric 437 Nick/channel is temporarily unavailable. 5.Fixed long server version bug (yeesh). 6.Added .ln property to $sline() to return line number of selected item. 7.Fixed /aline/rline bug when a colour is specified. 8.Can now specify colour number without the "-c" prefix for /aline, /iline, and /rline. 9.Fixed bugs in !nick filename. 10.Fixed $scriptdir in on LOAD/START events. 11.Fixed loadbuf/savebuf gpf with invalid parameters. 12.Now uses a tabbed dialog for aliases/popups/remote so you can switch between them easily. 13.Now adds lines to custom windows using "normal" text colour. 14.Can now use nickname in $query(), returns $null if not in query with nickname. 15.Improved Control-Tab routine for tabbed dialogs. 16.Fixed ! remote halt suffix bug. 17.Improved Find Text routine in APR dialog. 18.Fixed an old bug in the {} bracket counting routine. 19.Added a "{}" button to APR dialog to check if the {} count in the current script is correct. 20.Fixed mIRCLink INI file bug. 21.Changed toolbar appearance, also toolbar button colours now appear correctly under different colour setups. 22.Changed switchbar appearance, also added mini-icons to buttons. 23.Fixed /sline command. 24.Fixed /play not allowing following commands to be processed. 25.Fixed up/down keys in custom window editbox. 26.Improved /loadbuf and /savebuf, can now specify a range of lines. eg. /loadbuf 5-25 @moo moo.txt /savebuf 1-50 @moo moo.txt 27.Fixed Next/Timestamp conflict in system menu. 28.Fixed finger server problem with unix fingers (?) 29.Can now use %variable for menuITEM or menuTITLE, if the variable is not defined, the menu item or entire submenu is not displayed. 30.Changed popup menu routines in various places to accomodate 31. 31.Added "menu" prefix for use in scripts. Allows you to add sub- menus to the standard menus: menu status { } You can also add sub-menus to the channel, query, nicklist, and menubar popups. All loaded scripts are scanned for menus to add. For custom windows you can use: menu @window { [dclick /command] } You can specify @window as the popup filename when creating the window with the /window command. The dclick specifies the command that should be performed when a user double-clicks in a @window. The line-number of the line that was clicked is in $1 for listboxes. 32.Directory displayed to a user in a fileserver now appears as a root directory instead of the full directory path on the HD. 33.Added $version identifier which returns the mIRC version number 34.Added /ctcpreply [message] command. 35.Fixed /unload -rs switch. 36.Added "fixed width buttons" switchbar option. 37.Fixed bug in Installation Program which was resulting in mIRC reporting an install error for some people. 38.Added -s switch to /aline, /iline, and /rline, to select the line that was just added, or if you want currently selected lines to remain selected you can specify the -a switch instead. 39.Fixed memory bug when processing lines in listboxes. 40.Can now also use Alt+APR to switch quickly between tabs in the editor dialog. 41.Added $mircini and $ddename identifiers. 42.Now checks for and prevents double-separators in popup menus. 43.DCC Send/Get switchbar buttons now turn light grey when the transfer has finished. 44.Optimized DCC Send/Get switchbar buttons progress display routine. 45.Fixed /window [x y [w h]] bug. 46.Fixed text bolding in mark/copy. 47.mIRC now converts old remote .ini files when they are loaded, each section is loaded and automatically converted. Removed "convert" menu option. Same for /load command. 48.Added on DISCONNECT event, eg.: on 1:DISCONNECT:/echo *gack!* 49.Tooltips should now display correctly under different setups. 50.Fixed small connect retry bug. 51.Fixed window sizing problems when main mirc window is minimized. 52.If "show queries in active window" is checked, private actions now appear correctly in a channel window. 53.Added .mrc script file extension to the file dialogs extensions list. 54.Added colours toolbar button. 55.Can now get and read long filenames in fileserver. 56.When you press a function key and all windows are minimized, mIRC defaults to using the status window. 57.Fixed gpf bug with on start/load/connect combo and /loading files. The on connect event now triggers *after* normal processing of the End of MOTD raw event. 58.Fixed $readini -n switch. 02/04/1997 - mIRC v5.0 Changes: 1.Fixed /sound command when used with channels which have a . in their name. 2.Title of custom menubar now updates when /loading popup. 3.There's no longer a limit on the number of items in a popup menu (apart from the editbox limitation). 4.Fixed /finger bug. 5.Fixed /ignore bug. 6.Fixed $ial() bug. 7.If "show query in active window" is checked actions should now appear in the active window. 8.Fixed $online identifier. 9.Fixed problem with /sound when the sounds directory contains a space in its name. 10.Fixed notify not being timestamped in certain situations. 11.Added option to strip control codes from log files. 12.Fixed /echo -a gpfing when there's no active window. 13.Added $target identifier. 14.The active item for popups has been removed, only exists for the menu bar popup now. 15.Highlighted nickname in channel nick listbox remains highlighted after a nick change. 16.Fixed insert/delete keys in urls list window. 17.Fixed $lines() and $read line counting. 18.Added ignore button to DCC Chat/Get dialogs which allows you to discard and ignore all incoming Chats/Gets from a user for 30 seconds. 19.Changed IRC Servers interface in setup dialog. 20.Added invisible mode option to setup dialog. 21.Changed dialogs to use standard dialog font. 22.Added Midi directory setting in sounds dialog. 23.Added $group(number/name) identifier. $group(N) group name $group(N).status on/off $group(name) same as .status 24.Added ON UNOTIFY event, works the same as ON NOTIFY except triggers when a user leaves IRC. 25.Can now specify the -n switch with $readini to prevent a line from being evaluated. 26.[removed] 27.Delayed Op and Unban now check to see if 1) you're on the channel, 2) you're an Op, 3) the user exists, before acting. 28.You can now specify different files for each popup menu. 29.Can now save alias/popup/remote files as plain text (non-INI format) by not specifying an .ini file extension. NOTE: You can't save multiple sections to a plain text file! So if you have all remote sections in remote.ini and want to save them as plain text, you'll need to save each section to a separate file. Same goes for aliases/popups. 30.Fixed channel folder join/names bug. 31.Fixed email address stripping of control chars. 32.The delayed unban now prevents duplicate addresses being added to the unban list. 33.Fixed gpf bug when popup item starts with {. 34.[removed] 35.Notify/Unotify now trigger correctly. 36.Query window now displays address of user in titlebar. 37.Added $mididir identifier. 38.Fixed gpf bug when extraneous $+ are used in combination with bracketed identifiers. 39.Added custom window creation/manipulation tools. /window [-abcdelnorsx] @name [x y [w h]] [/command] [popup.txt] [font [size]] Switches: a = activate window b = update horizontal scrollbar width for listbox c = close window d = open as desktop window e = editbox l = listbox n = minimize window o = if opened on desktop, place ontop r = restore window s = use a sorted list x = maximize window @name = window name (must prefix with a @) x,y,w,h = left top width height popup.txt = popup filename, loaded when needed (must be a plain non-ini text file) /command = default command font/size = font name and size (defaults to status window font) You can also use /window to manipulate some of the above settings for an existing custom window. You can use the following commands to manipulate lines: /aline [-cN] @name text add line to list /dline @name N delete Nth line /iline [-cN] @name N text insert line at Nth line /rline [-cN] @name N text replace Nth line /sline @name N selects Nth line Where -cN allows you to specify the line colour. You can use the $window(N/@name) identifier to access the following custom window information: $window(N).x left $window(N).y top $window(N).w width $window(N).h height $window(N).state minimized/maximized/normal To access the lines in a custom window you can use: $line(@name,N) returns Nth line $sline(@name,N) returns Nth selected line (listbox only) 40.Can now /load popups with these switches: -ps status popup -pc channel popup -pq query/chat popup -pn nicklist popup -pm menubar popup 41.Fixed indexing bug with alias/popup/remote processing. 42.[removed] 43.mIRC now stores relative (instead of full) file/directory paths, if a path lies inside the mIRC directory. 44.Made (most) buttons the same size. 45.Parameter identifiers changed to: $n for parameter n $n-n2 for parameters n to n2 $n- for parameters n onwards $parm has also been discontinued, you can use the above to refer to remote parameters from now on. Note: This version of mIRC still supports the old $1 and $parm for now but only the above is documented. 46.Added (v1 isvo v2) comparison to check if user v1 has a voice on channel v2. 47.Fixed $numeric not being set when matching any raw event. 48.Added /loadbuf and /savebuf commands. /loadbuf [lines] /savebuf [lines] Where [lines] indicates the number of lines you want to load/save from the end of the file. 49.Can now prevent message display for /ignore, /auto, and /protect with the . prefix. 50.Alias/popup/remote dialogs can now be resized and will remember their size/position. 51.The alias, popup, and remote dialogs have been redesigned to cope with various improvements (see below). 52.You can now load multiple alias files. 53.To /load, /unload, /save files you can use: /load <-a|-pscqnm|-ruvs> filename /unload <-a|-rs> filename /save <-pscqnm|-ruv> filename 54.The remote dialog and script routines have been improved. The format of definitions has changed to: ctcp 1:PING:/echo etc. on 1:JOIN:#:/echo etc. raw 1:*:/echo etc. This allows all of these to be intermixed in a single script file. The remote dialog has been altered to cater for only 3 types of files: Users, Variables, and Scripts. You can load as many script files as you require. Events will trigger all script files as independent scripts. You can also define aliases in a script by using the "alias" prefix: alias test /echo this is a test alias! You can also enter initialization commands which are run when a script is *first* loaded by using: on 1:LOAD:{ etc. } And initialization commands which are run whenever mIRC is first run (and loads scripts automatically) by using: on 1:START:{ etc. } The START section also runs after the LOAD section when a script is first loaded. If a script is loaded from within the remote dialog, auto- run commands are not executed until the dialog is closed. The above allows a whole script of ctcps, events, and raw and it's related aliases and initializations to be edited and distributed in one file. Note: mIRC automatically splits your current remote.ini into separate files and translates the ctcp, event, and raw entries into the new format. To convert old files into the new format use the Convert option in the Remote dialog and load them in as an INI file because mIRC will need the header info eg. [commands] [events] [raw] to know how to translate them. 55.Added on INPUT event which is triggered when a user enters text into an editbox and presses enter: on 1:INPUT:/echo you entered $1- You can use /halt to prevent mIRC from processing the text. 56.$chan is now $null if an event is not a channel event. 57.Can now add/change/remove aliases from a specific alias file (not script files) with: /alias [filename] [commands] When adding/replacing/removing an alias, all alias files are purged of the specified alias. 58.If a file doesn't exist mIRC doesn't create it if there's no information to save to it. 59.Now allows empty lines in aliases and scripts. 60.#group names in scripts now use "on" and "off" instead of "start" and "disabled" (conversion program will translate these automatically). 61.Added script #group indexing to speed up group processing. 62.Added on USERMODE event. on 1:USERMODE:/echo Set usermode to $1- 63.Can now /echo =nick etc. 64.Added on CONNECT event which triggers when the end of an MOTD is reached after connecting to a server (same as the perform section). on 1:CONNECT:/echo connected! 65.[removed] 66.Fixed "maximum sends" check not working in fileserver. 67.Added $inmidi returns true if midi is playing, false if not. 68.Added on MIDIEND event which triggers when a midi finishes playing (but not if you stop it by playing another midi or using /splay stop). on 1:MIDIEND:/echo finished playing midi file! 69.Fixed /halt not returning $null. 70.Fixed odd popup menus gpf bug. 71.Added Find option to popup menu in urls list window. 72.Fixed processing of incoming server NOTICES which don't have the source and target specified. 73.Can now use & character as a wildcard one word match, eg. & lines would & These lines would match 74.Now displays notices and messages to @#channel correctly (?) 75.Fixed window focus bug bringing main mIRC window to front when selecting a window. 76.Server pong echos should display correctly. 77.Speeded up URL-from-text extracting routine. 78.Can now use a nickname as well a number in $send() $get() $chat() and $fserv() eg. $send(madgoat).file 79.Fixed offline timers bug. 80.If a remote event calls an alias, that remote events script file is searched first for a matching alias and if no match is found, all other alias and script files are searched. 81.on DNS $nick is set to $null if no nick is specified. 82.Fixed midi playing bug where mIRC thought that a midi file was still playing when it had actually finished. 83.Fixed /play stop bug (?) 84.[removed] 85.Removed switches: own messages are higlighted, actions are purple, and windows colours. 86.Added colour configuration dialog. You will notice that colours for certain types of information have changed slightly, mainly because standardization was required in various places. You can't create a custom colour yet, might be added to a future version. 87.Added send/get fail remote events: on 1:SENDFAIL:*.txt:/echo failed to send $filename to $nick on 1:GETFAIL:*.txt:/echo failed to get $filename from $nick 88.Added $script and $scriptdir which return the file and dir name of the currently executing remote script file. 89.Improved $gettok(), can now specify n1-n2 for the number of tokens you want returned, eg: //echo $gettok(a.b.c.d.e,2,46) returns 2nd token //echo $gettok(a.b.c.d.e,2-,46) returns tokens 2 onwards //echo $gettok(a.b.c.d.e,2-4,46) returns tokens 2 to 4 90.Added $comchan(Nick,N) identifier, returns channels which both you and Nick are on. $comchan(Nick,N).op returns $true if you're an Op on that channel. 91.In alias, popup, and remote dialogs can now use Alt+1,2,3,4 etc. to switch to a script. 92.Added support for "!nick filename" wave/midi get requests. If mIRC receives a request as a private message and you don't have a private window open with that person, a new window is not opened, but instead the request is displayed in the status window. Also has an option to send your own "!nick filename" requests as private messages (on by default). This is only done when you are on a channel and you specify a "nick" that is on that channel, and a .wav or .mid filename. 93.Notifies are now queued and only one line of 500 chars is sent at a time. When a reply for that line is received, the next line is sent. Once replies for all queued lines have been received, the notify results are displayed. 94.The parameter positions of the following identifiers have been standardized to fall in line with other identifiers: $left(text,N) $mid(text,S,N) $right(text,N) $str(text,N) $nick(#,N) $nopnick(#,N) $nvnick(#,N) $opnick(#,N) $snick(#,N) $vnick(#,N) The old formats are still handled but only the new formats will be documented. 95.Fixed small /list command bug. 96.mIRC help file now remembers it's last position/size. 97.Can now use the @ must be op prefix with CTCP remote events that occur on channels. 98.Notify list now allows you to use an address as well as a nickname, this will only work on IRC servers that allow this. 99.Removed the /commands command, replaced with /ctcps command. 100.Fixed switchbar DCC Button Progress indicator being updated too often which might have slowed mIRC down with multiple DCCs. 101.Added Wizard which now pops up when a user has problems connecting, eg. unable to get/resolve local host, unable to resolve/connect to irc server, or being disconnected from a server before the MOTD is displayed. 102.Fixed small /play bug, was evaluating identifiers in lines when it shouldn't have been. 103.Fixed /titlebar memory bug. 09/01/1997 - mIRC v4.72 Changes: 1.Fixed Windows Colours option. 2.Fixed gpf on joining channel with control codes in topic (?) 3.Fixed/improved channel mode handling. 4.Can specify a channel key in default channel listbox as first word of a topic for a channel. 5.Fixed $+ at end of a line gpfing. 6.Fixed /run and long filenames with spaces. 7.Highlighting text in editbox and then Control-K now places cursor right after first control character. 8.Fixed gpf in Channel dialog when listing invalid ban info. 9.Fixed display of fonts for certain character sets. 10.URL catcher now doesn't copy any BURC control characters attached to a URL. 11.Fixed checking for recursive custom identifier calls. (lack of check was leading to gpfs) 12.$null is now handled better when used with $+. 13.Install program now warns if you are about to install to a directory path with spaces in its name and recommends installing to a path without spaces. 14.Fixed /server N command. 15.Added $online identifier which returns number of seconds elapsed on your online timer (ie. the one in the timer dialog). 16.Now allows you to call custom identifiers with parameters that have a $null value. 17.Added -k switch to /ignore command, allows you to ignore BURC codes from someone's text. This works for private, notice, kick, part, etc. messages. 18.Fixed marking text that is bold/underlined. 19.Fixed bug with a script not halting properly and continuing to process script following it (?) 20.The command parser wasn't stripping out leading and following spaces for tokens in a command which may have resulted in odd behavior when processing scripts. 21.Control-Shift-Tab for switching between channel windows has been removed since it was conflicting with the normal windows default for tabbing backwards through windows. 22.Fixed /ruser nick! command, was removing all entries that being with "nick" as opposed to "nick!". 23.Added "Edit" button to channels folder dialog. 24.Fixed $maddress being chopped in ON BAN event. 25.Fixed pressing enter in DCC Send dialog to change directories. 26.Fixed finger command (wasn't sending @ prefix when fingering an address without a userid). 27.Added $vnick() identifier to list voiced nicks, and $nvnick() identifier to list non-op/non-voice nicks. 28.Added ON UNBAN, works the same as ON BAN. 29.Added ON VOICE/DEVOICE, and $vnick refers to nickname. 30.Fixed bug in installer. 31.Invites to non-channels are now ignored. 32.Fixed text being indented in User and Variable remote sections. 33.Fileserver now let's you cd into a directory with an extension. 34.Changed $findfile() identifier, now allows you to specify Nth file eg. $findfile(dir,filespec,N). 35.Fixed DCC percent progress wrapping to zero when sending large files (?) 36.If a DCC Get directory doesn't exist, the default get directory is used instead, if that doesn't exist, the mIRC directory is used. 37.Fixed /ignore for actions. 38.A query window no longer opens for a sound request, the sound message is displayed in the status window instead. 39.Added skip MOTD warning. 40.Fixed Menu Bar popup menu not working when all windows are closed. 41.Improved Tabs in tabbed dialogs to look more 95ish. 42.Standardized Alias, Popup, and Remote dialogs. 43.Resources for popup menus are now allocated just before a popup menu is displayed and are freed immediately after it is closed thus conserving resources. 44.Added $dlevel identifier for remote default user level. 45.Added $timer(N) identifier. $timer(N) timer id $timer(N).com command $timer(N).time time $timer(N).reps repetitions $timer(N).delay delay interval $timer(N).type online/offline 46.Added option to show DCCs in Switchbar. 47.Now allows - character in identd userid. 48.Fixed invalid RAW definition format gpfing. 49.Fixed Beeping when right-clicking in a listbox. 50.Windows minimized to the switchbar don't appear as icons first anymore. 51.Wrote my own window list handler, so the Windows list now displays desktop windows as well. Also only the first 50 characters of a windows title are displayed. 52.ON BAN/UNBAN now don't allow wildcard matches of ip/non-ip addresses, as well as addresses ending in @*. 53.Setting focus on windows has been improved. 54.Can now use Control-Space to cycle through channel windows. 55.Fixed $mask() when an address with wildcards is specified. 09/12/1996 - mIRC v4.7 Changes: 1.Fixed time bug (?) 2.ISON now displays a message if user doesn't exist. 3.Fixed small DDE problem. 4.Fixed mIRC defaulting to port 6667 when reconnecting to a server. 5.DCC Send/Get window titlebar now immediately displays 0% at start of transfer, and only displays 100% when transfer is completely finished (was rounding up to 100% before). 6.Fixed small bug in fserve DCC send. 7.Fixed /beep command. 8.Bytes/Size display in alias/popup/remote windows are now updated only a few times a second to decrease flicker. 9.Finished reorganizing identifiers-related code. 10.Fixed $away updating after you disconnect and reconnect. 11.Fixed Text Assist bug (?) 12.Can now do /sound [on|off] to enable/disable sound requests. 13.Added $server(N).property identifier to access servers list. $server(N) address. $server(N).desc description $server(N).port port $server(N).group group 14.Added $ial(mask,N) identifier to acces IAL. $ial(mask,N) full address. $ial(mask,N).nick nickname $ial(mask,N).user user id $ial(mask,N).host host $ial(mask,N).addr user@host This returns the Nth address matching "mask" in the IAL. Specify zero for total number of matching addresses. To scan the whole of the IAL you can use $ial(*,N). If N is zero, the total number of matching entries is returned. 15.[removed] 16.Added /identd [on|off] [userid] command. 17.Fixed bug in /ignore address matching. 18.Can now use [type] parameter with /auto to look up users address (like ignore). 19.Channels, notify, and urls list listboxes now have a horizontal scroll bar added to them. 20.Added $url(N).property identifier to access urls list. $url(N) address $url(N).desc description $url(N).group group 21.When using /sound and /wavplay, the Waves directory and ALL of its subdirectories are searched for the specifed wave filename. This allows users to organize their sounds into subdirectories without having to worry about directory paths. 22.Added 1:ON DNS:/echo $nick $iaddress $naddress $raddress event. If /dns was used then $nick refers to otherwise it refers to your own nickname. $iaddress refers to the ip address, and $naddress refers to the named address. $raddress is the resolved address. If $raddress is $null then that means that the address could not be resolved. 23.Fixed @ (must be channel Op) prefix for remote definitions preventing a definition from being performed if the event is not a channel event. eg. @1:ON TEXT:*:*:/etc. which reacts to private messages as well as channel messages. 24.Added $idle identifier which returns same idle time as that returned by ctcp USERINFO or FINGER. 25.Added $numeric identifier which refers to the number of the raw event that matched a remote definition. 26.[removed] 27.Ctcp ping reply now displays ping time in hr/min/sec format. 28.Fixed memory bug in Tab display routine, also improved display of tabs slightly. 29.Added 1:ON ERROR:*text*:/echo $parms event. 30.Added Extension<->directory association in DCC Options dialog. 31.Fixed empty line in editboxes in options dialog causing following lines to be lost. 32.DCC Get dialog now displays listbox of directories from the extension associations for quick directory selection for miscellaneous file types. 33.Servers.ini file is reloaded each time the Setup window is opened to make sure that any changes made to it externally are available. eg. if someone downloads a servers.ini file. 34.Now allows you to configure a separate Popup menu for use in a channel window. If no channel popup menu is defined it defaults to using the status window popup menu in a channel. 35.When marking text for copying, the marked block is not cleared if new text is printed in the window, instead the scrollbar is updated to indicate there is new text below. If you were at the bottom of the buffer when you started copying, mIRC will automatically scroll down to the bottom of the buffer after you finish copying. 36.I added an /echo -a switch which echos to the active window. If the active window is not a status, channel, or query/chat window, it defaults to the status window. 37.For remote events that have no associated $chan value, $chan refers to a channel that both you and the user that triggered the event are on, on which you are an Op. 38.Fixed small bug with /set. 39.Can now do /log [on|off] [windowname]. 40.If a user hasn't entered a UserID for the Identd server or if their current userid contains invalid characters, mIRC asks them for a new userid. Permitted characters: . (0x2E) 0-9 (0x30-0x39) A-Z (0x41-0x5A) _ (0x5F) a-z (0x61-0x7A) 41.Added $wildsite remote identifier which returns the address of the user who triggered the event in the form *!*@host.domain, added mainly to speed things up since *!* $+ $site is used a lot. 42.Added /perform [on|off] command to turn on/off perform section. 43.Speeded up text display routine slightly. 44.Added $ticks identifier which returns the number of ticks since your O/S was first started. 45.Ignoring CTCPs doesn't ignore actions anymore. 46.Added double-click alias option for Notify window. 47.Now using a new indexing method to speed up alias, popup, and remote script processing. 48.Using an /if as the first command in a $read line now works. 49.In channel windows, Shift-TAB now switches the focus between the editbox and the nicknames listbox. 50.Control-Shift-Tab now cycles through channel windows. 51.Server notices are now displayed in purple. 52.Added "Timestamp" switch to window system menus. 53.mIRC now ignores DCC sends/chats to port 19. 54.Fixed window focus problem when MDI/desktop windows open (?) 55.Can raise a number to the power of another using ^ operator. eg. set %x 2 ^ 8 56."End of /who list" now displays who you were doing a /who on. 57.Now handles DALnets 310 numeric. 58.Added skip MOTD on connect switch. 59.Modified Event Beeps interface a bit. 60.Speeded up variable lookup routine and [] processing. 61.Rewrote text mark/copy routine. 62./timestamp [-a|e|s] [on|off] [window] is now used for turning on/off timestamping in windows. If only on/off is specified with no window, the global timestamp switched is turned on/off. -s = for status window -a = for active window -e = for every window 63.For ctcp commands, $chan is now filled with a channel name if you received the ctcp via a channel. 64./flood now ignores *!*@site. 65.$active identifier now returns window names more intelligently. 66./return can now return both numbers and text. 67.For servers that specify who placed a ban in the ban list, mIRC now displays this info in the /channel dialog ban list. 68.$server now returns $null if you are not currently connected to a server. 69.Added $fserv(N), improved $chat(N), $get(N), $send(N). $chat(N) nickname $chat(N).ip ip address $chat(N).status active, waiting, inactive $fserv(N) nickname $fserv(N).ip ip address $fserv(N).status active, waiting, inactive $fserv(N).cd current directory $get(N) nickname $get(N).ip ip address $get(N).status active, waiting, inactive $get(N).file filename $get(N).size filesize $get(N).rcvd bytes rcvd $get(N).cps chars per second $get(N).pc percent complete $send(N) nickname $send(N).ip ip address $send(N).status active, waiting, inactive $send(N).file filename $send(N).size filesize $send(N).sent bytes sent $send(N).lra last rcvd ack $send(N).cps chars per second $send(N).pc percent complete 70.Can now create your own identifiers, eg. in the aliases section create an alias: add { %x = $1 + $2 | return %x } And then use it in a command //echo Total is: $add(4,21) Can define as many parameters as you want: $add(1,2,...,N). Built-in identifiers of the same name have priority. 71.Added "default port" setting to setup/options dialog. 72.Can now use /timer [-o] etc. to start an offline timer. Offline timers are not stopped if you are disconnected from the server, however all other timers are. If you are not connected to a server and you try to start a timer, it defaults to being an offline timer. 73.Chat and Query MDI switches are now separate. 74.Alias, Popup, and Remote editboxes now remember their cursor line positions and jump to them automatically for each window. 75.Added "Desktop" switch to a window's system menu to toggle MDI/desktop display of the window. 76.Can now specify a window name with /clear [window]. 77.If an address that is in the auto-unban list of the /ban command is unbanned manually, it is removed from the unban list. 78.PONGs from users are now ignored. 79.Using new method to lookup Local Host and IP Address. mIRC now connects directly to server and issues a /userhost nickname to lookup users address and then does a /dns to resolve the IP address. This means that a user isn't prevented from connecting to a server if there are any local host lookup problems and it also means mIRC will be using a named address that has been verified by the IRC server so there should be no problem looking up the IP address. The DCC Send/Chat toolbar buttons are enabled the moment the lookup is completed successfully. 80.Now uses /userhost instead of /whois to look up addresses from the server. 81.The /run command now uses a different method to run files, it allows you to run files based on association as well. eg: /run notepad.exe readme.txt or /run readme.txt It also uses this new method to view .txt files in the help menu as well as in other parts of mIRC. 82.Can now do /who
and only users on the specified channel are displayed. 83.Fixed bug with variable not being evaluated if preceeded by the text "set" in a line. 84.Now also using new faster indexing method for IAL. 85.Fixed empty [ ] brackets gpfing. 86.Servers are no longer stored in memory but are looked up when needed from the servers.ini file. 87.DCC Send/Get completion info printed in status window now also includes time taken and cps. 88.Fixed "error sending data" message at end of DCC send. 89.Variables can handle spaces a bit better now eg. single spaces, preceeding spaces, etc. 90.Fixed "fake" PONG messages being displayed. 91.Added support for bold/underline/reverse characters. Can use Ctrl-B,U,R to insert these characters into an editbox. If you first mark text in the editbox, it will be enclosed in starting and ending control characters, otherwise one code will be inserted. If you hold down the shift-key, two codes are inserted and the cursor positioned between them. You can also use Control-O to insert a reset character which turns off all the above settings. 92.Added support for colour characters, use Control-K to insert a colour control char (0x03) into text in an editbox. eg. if * is the control char then: * Selects Default Text and Background *1 Selects Colour 1 for Text, Default Background *1,5 Selects Colour 1 for Text, Colour 5 for Background Colours currently range from 0 to 15. 93.Added flood protect options tab to options dialog. 94.For an ON QUIT event, a users name is now removed from all channel listboxes *after* this remote event has been processed, not before it. 95.Added $strip(text) identifier which strips out all bold, underline, reverse, and colour control codes from text. 96.File dialog defaults to showing ini, txt, or wav files depending on file being selected. 97.Fixed multiple IRCop-greeting bug thingy. 98.Fixed notify update bug. 99.Fixed ON TEXT $chan being filled with users nickname when trigger is a private message. 100.Added a switchbar to allow easy switching between windows. If you click on a button with the left mouse button and the window is minimized, it is restored, if it is already restored, it is minimized. If you click with the right mouse button, the windows system menu pops up. You can turn the switchbar on/off in Options/Extras dialog. 101./ban won't allow you to initiate a ban if you don't have Ops. 102./amsg and /ame now don't send an individual message for each channel etc. 103.Page up/down now works in channel listbox. 104.Channels dialog, "Limited to" option allows more digits. 105.ctcp ECHO is no longer replied to. 106.ctcp PING no longer replies to non-numeric values and numeric values longer than 25 characters. 107.Added $usermode identifier. 108.Channel topics are now stripped of control characters. 109.ON MODE event has changed format to: 1:ON MODE:#channel:/commands... And it no longer enforces modes. $parms is now filled with the mode change that was made. 110.Under a 256 colour display the orange colour appears light brown instead of orange, all other colours should look exactly the same under different colour displays. 111.Fixed ON BAN double-wildcard-string-matching. Was giving false matches in certain situations eg. * at end of a string. 112.Changed ordering of masks to: Type 0: *!user@host.domain Type 1: *!*user@host.domain Type 2: *!*@host.domain Type 3: *!*user@*.domain Type 4: *!*@*.domain Type 5: Nick!user@host.domain Type 6: Nick!*user@host.domain Type 7: Nick!*@host.domain Type 8: Nick!*user@*.domain Type 9: Nick!*@*.domain The mask types for all routines and identifiers are now identical. /guser /dns etc. commands all default to type 6 which is the same mask as before. 113.When mIRC is in the process of doing a channel listing and it receives a "server load to high" numeric 263, it now resets the channels list button and other related parameters. 114.Ignores DCCs to a channel. 115./userhost with no reply is now displayed. 116.Added "on top" option for switchbar. 117.Added $duration(seconds) identifier. 118.Added $nofile(filename) which removes the filename and only returns any remaining path. 119.Added $findfile(dir,filename) which searches the specified directory and its subdirectories for the specified file and returns the full path and filename if it is found. 120.Added /ial [on|off] command. 121.Added token handling identifiers: $addtok(text,token,C) - adds a token to the end of text but only if it's not already in text. $findtok(text,token,C) - returns Nth position of token in text $gettok(text,N,C) - returns Nth token in text $instok(text,token,N,C) - inserts token into Nth position in text even if it already exists in text. $remtok(text,token,C) - removes 1 matching token from text $reptok(text,token,new,C) - replaces 1 matching token with new token in text $gettok() replaces $token(), however $token() is still supported for this version. 122./ulist now searches the whole of the users level list for a matching level. 123.A user level can now be a word, for example: 2,5,op,9,prot:*!*@host op:ON JOIN:#:/mode $chan +o $nick Named levels are = levels ie. they work exactly the same way that = levels work. 124.Added strip options to options dialog. These strip out control characters from incoming notices and messages. 125.Fixed memory/socket reading bug. 126.Pressing Enter in the parameters dialog without entering any text now returns $null. 127.Kick, Part, Quit messages have Control-O appended to them. 128.Improved channel MODE change handling, mIRC updates the mode settings itself so there's no longer a delay. 129.ON MODE reacts to initial mode lookup when mIRC first joins a channel. 130.Rewrote /auser & /guser routine. Code is cleaner, same speed, works better eg. doesnt allow redundant levels, and fixes bugs in the old routines. 131.Added wildcard halting of timers. eg. /timer?* off 132.Fixed messages to #host.mask. 133.Install program now only creates one backup directory and overwrites any files in it if they already exist. 134.Channels folder now also allows you to enter descriptions for channels. 135.Added $chan(N/#).property identifier: $chan(N/#) channel name $chan(N/#).topic topic $chan(N/#).mode mode $chan(N/#).key +k key $chan(N/#).limit +l limit $mode() and $topic() are no longer supported. However $channel() is still supported for this version. 136.Support for the :> redirection in remote definitions has been removed. 137.Added /strip [+-burc] command. 138./wavplay command has been replaced with /splay command, which can play both .wav and .mid sound files. Can also use "/splay stop" to stop a .mid file playing. /wavplay is still supported for now. 139.The /sound command and related options (ON NOSOUND, etc.) can now work with .mid files as well as .wav files. 140.Improved/simplified code in the install program. 07/09/1996 - mIRC v4.6 Changes: 1.Now handles various combinations of : and { at the beginning of a remote definition. 2.Fixed :> redirection. 3.Fixed separator handling in popup menus. 4.ON SNOTICE can now be prevented from displaying info. 5.Now does NOT evaluate identifiers in a command issued from the command line. If you want to force identifiers to be evaluated, you can prefix the command with two // instead of just one /. 6.Fixed $1 $2 etc. not working with Function keys. 7.Fixed $dir and $hfile identifiers. 8.Fixed ON KICK missing $parms. 9.Fixed variables section not being saved if commands section is empty. 10.Fixed DCC Windows not being minimized properly. 11.Explicit support for the DO ctcp command has been removed. If a user wants to use a DO in their ctcp definitions, they would have to specifically make mIRC perform any parameters that another user sends as commands, eg.: 1:DO:$parm2* 12.Fixed the -s switch in /echo. 13.Fixed $readini with missing parameters gpfing. 14.$read and $readini now return $null if a line isn't found. 15.Extended the functionality of [ ] so that if they enclose only a single parameter they will evaluate it even if it has already been evaluated. eg.: set %x %y set %y Hiya! /echo [ [ %x ] ] 16.DCC Send, Get, Chat, and Fserv now use different Icons. 17.The = switch in remote definitions 1:COMMAND:= wasn't working properly. 18.Fixed =$nick for on serv/chat. 19.Now handles site bans or masks for addresses that only have an x.x format instead of the usual x.x.x format. 20.Fixed Aliases "Save To" only saving to mIRC directory. 21.Fixed $asctime() gpf bug. 22.DDE USERS now prefixes nicknames with @ or + if necessary. 23.Now cannot use /writeini to remove items or sections, must use the /remini command which takes the same parameters. 24.Added $exists(filename) to check if a file exists, returns $true or $false. 25.Added -n switch to $read which prevents the line read in from being evaluated or parsed ie. it's treated as text. 26.Added /wallops command. 27.Now supports DALnet /part #channel [message]. The message is limited to around 60 characters. 28.Fixed extra separator lines being added to certain popup menus occasionally. 29.Now allows you to DCC chat yourself. 30.Now saves URLs to the urls.ini file. 31.Added $maddress which specifies the currently matched user address for an event in the remote: 1:TEST:/echo $fulladdress matched $maddress And added $maddress(address) which returns a matching address from the remote user list: 32.If the filename specified in $read has no path, it defaults to the mirc.exe directory (like all other commands). 33.Can now /load -r and /save -r (raw definitions). 34.Added Load/Save items to URLs pop menu which let you load/save any URL file. 35.Join/part/other text messages are now wrapped. 36.Can now press return in a multi-line editbox in the middle of a line without sending the text. 37.Added "Play wave" option to notify list which lets you choose a wave to play when a specific user joins IRC. 38.Added "show notices in active window" option in IRC switches, and also improved the way notices are displayed. 39.Fixed memory bug in fileserver. 40.Improved memory allocation in copy/paste routine. 41.Displays /whowas reply with @ in address. 42.The aliases for .hlp files added to the Help menu now have the lowest command precedence ie. if an existing alias or command of the same name exists, the .hlp alias is never run. 43.Now also adds .txt files to the dynamic help menu. 44.The IAL is updated a bit more intelligently to allow remote definitions to access nicknames that have just joined/left a channel. 45.Fixed time-out gpf bug which affected Send/Get/FServ. 46.Now triggers ON PART when *you* part a channel. 47.Added $longip(IP address/long IP) which converts a dotted IP Address to a long IP, and vice-versa. 48.Fixed message not being wrapped when a query window first opens. 49.Fixed GPFs occurring when viewing URLs. 50.Fixed "me:" prefix for remote definitions. 51.Now supports a /list result with or without RPL_LISTSTART, to accomodate ircd 2.9.x. 52.Can now specify a filename when saving a window buffer. 53.Added option "Only show notifies in notify window". 54.Fixed "Bad Username" server reply if new user entered an invalid email address (the userid part was being used in the identd server). 55./echo 1 $asc($mid(3,1,hi there)) was returning 0 for a space, now returns 32. 56.Added "fast screen update" option to Extras dialog. This speeds up text printing by updating the screen after each "batch" of text instead of each line. 57.Moved "Ignore" to first position in Control dialog. 58.Added a new flood protection method. Just use /flood [on|off] to turn it on and off. 59.ISON notify lines are broken into less than 500 character lines now. 60.Added option "Show finger requests" to Options dialog in Servers section. 61.Fixed /oper with wrong password GPFing (?) 62.Prefixing a command with . prevents it from displaying its usual message (apart from error messages). 63.Fixed #$$?#="Enter a channel name:" type identifier. 64.Added ON WALLOPS event. 1:ON WALLOPS:*text*:/command... 65.Fixed $true/$false/$null not working in certain comparisons. 66.Fixed info lines sometimes not being displayed in DCC Send/Get windows. 67./halt can now prevent the usual text output of raw numeric events (for most events). 68.Added $bnick identifier which refers to the nickname of the user being banned. This is not always filled since sometimes a nickname isn't specified with a banmask. 69.Now displays all user modes in status window titlebar. 70.Improved display of info for unknown numerics. 71.Fixed status window not closing when it's opened as desktop window and mIRC is exited. 72.Added $ulevel and $clevel which store the remote user and command levels that matched for an event. 73.The channels list is no longer stored internally but completely stored in and accessed from the channels.txt file. 74./remote [on|off] now affects the raw section as well. 75.Can now do /raw [on|off] to turn the raw section on and off. 76.Fixed mode event -l or -k skipping parameters in a mode change. 77.Notify window now displays note next to each nickname. 78.Tweaked INI routines. 79.When an error occurs in a DCC Send/Get/Chat, the DCC window is now closed if "auto-close" is selected in DCC options. 80.Added ON NOSOUND event triggered when someone sends you a SOUND request and the sound doesn't exist. 1:ON NOSOUND:/msg $nick I don't have $filename 81.Changed toolbar buttons appearance. 82.Can now do /partall 83.In ON NICK event when you change your nick, the $me identifier is only updated after remote definitions have been processed. 84.Now handles #,&,+ channels in aliases, popups, remote, dialogs, etc. This might affect a few things since & and + are now special prefix characters. 85.Now saves Servers in servers.ini file. 86.Tweaked DCC Send/Get routines and fixed problem with DCC windows not displaying the correct information in certain situations. 87.Standardized INI prefix to "n" for all saved information. 88.Results from a /who and /whois are now used to update the Internal Address List if the user is on a channel which you are on. eg. /who #channel. 89./speak now supports both Text Assist and Monologue. 90.Now displays #*.server.co.uk type messages properly. 91.Dropped files with spaces in the filename are now enclosed in "" quotes. 92.Fixed $parmN1-N2 bug. 93.Added "Font" item to Tools menu. 94.Clicking on "Unban" to unban addresses while in the Channels dialog now also sets the topic and modes if you've changed them. 95.Fixed bug with command prefix infront of if/else/elseif not working properly after { brackets. 96.Fixed RAW definitions being processed from the bottom of list upwards. 97.Supports /globops command for DALnet. 98.Can now prevent Quit messages from printing in status window with /halt. 99./userhost results now update IAL. 100.Improved /whois lookup code for /guser,/ruser,/finger, /dns, etc. commands that look up a users address. 101.Fixed sending multiple files with /dcc send command. 102.Added identifiers $mode(#) and $topic(#) which return the mode/topic of channels which you're currently on. 103.Added identifier $count(string1,string2) which returns the number of times string2 occurs in string1. 104.Speeded up remote processing a bit. 105.DCC Get problem for netcom users fixed. 106./links now displays links list properly on ircd 2.9.1 which sends the list in reverse order (are we surprised? ;) 107.Notify pause time between checks is now based on the total number of nicks in your notify list. The minimum pause time is 20 seconds, the maximum pause time is 50 seconds. 108.An alias cannot call *itself* anymore (except indirectly by calling another alias which calls it). 109.Improved editbox processing routine slightly: now processes text entered into it even if another window is active or on top of it. 110.Added /close -icfgms [nick1] [nickN] which closes windows of the specified type and nicknames. If no nicknames are given, all windows of the specified type are closed. i = only close inactive windows (doesnt apply to message windows) c = chat f = fserve g = gets m = message windows s = sends 111.Removed /closechats, /closefserves, /closedccs commands. These are replaced by the /close command. 112.Removed /maxdepth command. 113.Added $timestamp identifier returns time in [xx:xx] format. 114.Now allows you to enter multiple Ports (separated by commas) for each server. A random port will be picked at each connect. 115.Fixed DCC get time-out bug. 116.Removed "Show transfer progress as percent" switch, now only displays progress as a percentage. 117.Added "Display fileserver warning" switch to DCC options dialog. 118.Can now hold down the Shift key when tiling to tile vertically. 119.Fixed channel nickname list updating incorrectly with certain combinations of /mode results. 120.Now supports the ircd 2.9.1 ^G in a JOIN. 121.Now triggers the part event if you close a channel window manually by clicking on the close button. 122.The TAB key nickname list now only stores the nicknames of people who sent you normal query/channel messages, not ctcps. 123.Fixed /timer bug. 124./unset can now use wildcards, so /unset %test* will unset all variables beginning with %test. 125./alias now tells you which alias it's adding/removing. 126.Fixed gpf bug when low number values are used with time related commands/identifiers. 127.Calling an alias from another alias only passes the required parameters and not all parameters. 128.Now also handles .chat files which contain tab characters. 129.Negative value variables are now handled properly. 130.Reorganized identifiers-related code a bit (still in progress). 131.Fixed small bug in installation program. 132.Added Event beeps on/off switch in event beeps dialog, also added an /ebeeps [on|off] command. 133.Fixed MDI channel window listbox/scrollbar display bug. 134.Fixed /unset %var1 ... %varN. 135.Can now hold down Shift key when clicking "connect" toolbar button to force mIRC to connect to last server and port again, instead of picking a new server or port. 136.Fixed /return bug. 06/07/1996 - mIRC v4.52 Changes: 1.Fixed UTC permanently. 2.Fixed invalid ctcp replies causing a gpf. 3.Fixed /play bug. 4.Fixed scrollbars not being set properly in some windows when they first open. 5.Changed method of adding Icons to program manager in Installation program. 6.Fixed bug in Installation program when installing into directory names with spaces in them. 7.Fixed the COMMAND DDE topic to work better with certain types of poked commands. 8.Fixed bug with Popup menus when using { } brackets to enclose commands in different level menu items. 9.Fixed channels folder bug not allowing you to join a channel unless it was first added to the list. 10.In COMMANDS, $parm1 now refers to the actual COMMAND. 11.Server notices are now only displayed in status window. 12.Added $address(nickname,type) which scans the internal address list and returns a users address if it's found. 13.Added $logdir, $getdir, $wavedir, $mircdir which return current directory paths for each location. 14.Identifiers in remote/popup commands which call aliases are now evaluated before the alias is called. 15.Fixed ON NOTIFY not being triggered by notify event. 16.mIRC will no longer allow the DO ctcp command to execute at or below the default user level. 17.Now allows /group, /enable, and /disable commands to be used with the RAW section. 18.Changed description of Protect option which said it worked with addresses.. it can only work with nicknames. 19.Added $lf = chr(10) linefeed and $cr = chr(13) return. 20.Added $lof(filename) which returns the size in bytes of the specified file. 21.Added $pos(string,substring) which returns the position of substring in string. 22.Fixed bug in remote when parsing { } brackets, was miscounting and skipping definitions. 23.Made remote routines less strict in the type of format they expect in definitions. eg. the :> redirection. 24.The channels.txt file now does not store channels that were excluded in the "Hide" parameters section. 25.Added $send(N) and $get(N) which return currently open send/get windows. 26.Fixed $chat(N) so it only returns the nickname of the user. 27.Now allows multiple channel names as variables, eg: 1:ON JOIN:%chan1,#mIRC,%chan2:etc... Or you can do: 1:ON JOIN:%channels:etc... Where %channels is a list of channels separated by commas. You can't *combine* these though. 28.Added $mask(address,type) which returns the address with the specified mask. 29.Identifiers are now passed correctly when calling an alias from another alias. 30.Added command line parameter -ppassword for use with the -jchannel parameter. Specifies password to join channel. 31.Now supports the PASSWORD parameter in .chat files for joining a channel with a password. 32.Added ON CHATOPEN, CHATCLOSE, SERVOPEN, SERVCLOSE events. 1:ON CHATOPEN:/commands... 33.Added /flushini which flushes the INI file to disk if it is currently being cached. 34.Added /closedccs, /closechats, and /closefserves, which close all inactive send/get, chat, and fserve windows. 35.Added $nopath(filename) identifier which returns only the filename with no path. 36.Fixed $$ not working when used in $$1 $$2 .. $$N. 37.Added $replace(string,substring,replacement) and $remove(string,substring). 38.Speeded up processing of identifiers and commands. 39.Speeded up display of info in /links window. 40.Fixed NT bug... it didn't like low-level assembly routines. 41.Fixed +v/-v mode display in channel nicknames listbox. 42.The default /list setting for minimum number of people on a channel has changed from zero to four. 43.Using /halt to prevent certain EVENTs from being displayed has been removed. It worked, but the order of display of information became non-intuitive and confusing. Will find a better way to do this for the next version. 44.Added $result identifier which stores the result of a /return . The result can be a number between 0 and 30,000. 30/06/1996 - mIRC v4.5 Changes: 1.Major improvement of code in many places. mIRC now processes many things faster. 2.Fixed possible bug with invalid nicknames being added to nick list on a channel. 3.Fixed a bug in DDE routines which caused a gpf if external applications were too slow at processing DDE messages. 4.Rewrote remote routines, they now look much less like spaghetti and work better. 5.Can now use [ and ] evaluation brackets to control the order of evaluation of identifiers. Identifiers within brackets will be evaluated first, from left to right. You can nest brackets. This allows you to evaluate things any way you like... /notice $nick " $+ [ $read [ -s + [ $parm1 ] ] c:\text\note.txt ] $+ " /say % [ $+ [ $1 ] ] Definitions without evaluation brackets are evaluated the same way as before, though I've also improved the normal evaluation method slightly. 6.Fixed small $read bug. 7.Can now use server addresses in User list in remote. 8.Added MDI options dialog to the Window menu which allows you to specify for each individual window if you want it opened as an MDI or as an independent desktop window. 9.Standardised command error reply to: * /command: 10.Can now use delete key to delete URLs in URL window and Insert key to add a new url. 11.Can now use Control-Tab to step through the different tabs in the setup and options dialogs. 12.Wrote a setup program which allows you to install mIRC in a directory of your choice, creates backups of your current files, validates the zipped files to make sure they're not corrupted, and adds icons to the program manager for you. 13.Improved DCC Send file dialog, can now select more than nine files at a time to DCC send. 14.Fixed scrollbar sometimes not being positioned properly in certain windows. 15.Added /titlebar command which allows you to change the text in the titlebar on the fly. 16.Added protect list to options dialog, now works exactly like auto-op command, can specify channels for each nick. 17.DCC Send/Get/Chat are now fully dynamically allocated structures ie. there is no limit on the number of DCCs. This speeds up DCC send/get processing a lot. This also fixes a few small bugs related to the way the older structures were being used. 18.Improved the DCC Send/Get transfer windows, they now give information such as time taken, estimated time for transfer, characters per second, etc., and a progress bar. 19.Window sizes for Chat/Server/Send/Get windows are now saved seperately for each type of window. 20.Added ON BAN remote event, works like ON OP. 5:ON BAN:#tree:/mode $chan -b $banmask 21.Added option to Links window popup menu which lets you switch between displaying links as plain text or in a listbox. 22.Wildcard routine now allows ? character to match any single character, the * is used as normal to match multiple characters. This affects matching text in ON TEXT, etc. as well as user addresses. Also fixed a small bug that was causing mismatches in certain cases. 23.Now allows multiple channels in a remote event definition: 1:ON OP:#moo,#help,#test:/notice ... 24.Now allows %variables to be used in the text and channel positions of an event definition: 1:ON TEXT:%text:%channel:/notice etc ... You can also use %variables for ctcp command names: 1:%variable:/notice etc... 25.Added a RAW section to the remote which catches NUMERIC events. This has it's own separate editbox because if mIRC had to scan your whole remote events definitions for each numeric event, things would slow down to a crawl. 322:*mirc*:/echo 2 $parms This would print all lines which have the word "mirc" in them when you do a channels /list (this is a pretty intensive test). 26.Fixed bug with notify list not being updated correctly when a user changed nicknames. 27.For remote events and ctcp commands you can now prevent the normal text associated with that command from being displayed by using the /halt command. 1:ON JOIN:#mIRC:/echo 3 #mirc [Joins $nick] | /halt So from now on when anyone joins channel #mIRC, only that text is displayed in the channel. Be warned: you can use this to prevent query windows from opening, plus other things which mIRC usually does for an event (though nothing critical). 28.Window structures are now fully dynamically allocated so there is no limit on the number of windows which can be opened. This also speeds up processing quite a bit. 29.Now allows alias, popup, and remote definitions like: { /command1 ... /command2 ... /command3 ... } One line definitions are handled the same as before. The characters { } now have special meaning so you can't use them as normal text anymore. 30.Major improvement of memory usage in command parser. 31.Added "View" URL option in channels list popup menu which extracts and views a URL immediately. 32.Added a /goto command which can be used in { } definitions. /greet { /set %x 0 :retry /inc %x /goto %x :2 /echo bye! /halt :1 /echo hi! /goto retry } You can also use a variable as a goto name, eg. :%jumppoint if you "/set %jumpoint 5" then you can do "/goto 5" and mIRC will evaluate %jumpoint to 5 and jump to it. 33.You can now use the /return command to finish processing an alias command and to allow any default processing to continue. eg. 1:ON JOIN:#mIRC { /echo 3 #mirc [Joins $nick] /return /echo 3 #mirc I'm not printed! } 34.Added "Always On Top" setting to system menu of windows when they are opened as desktop windows. 35.Text in status, queries, and channels windows is now rewrapped to fit the window whenever a window is resized or a font is changed. 36.Added two new events: 1:ON FILESENT:*.txt,*.ini:/echo Sent $filename to $nick ( $+ $address $+ ) 1:ON FILERCVD:*.txt,*.ini:/echo Received $filename from $nick | /run notepad.exe $filename These only react to successful DCC transers. 37.Added /writeini command and $readini identifier which use the built-in INI routines to write/read standard INI files. /writeini
$readini
These will allow better control of storage of different types of information into different sections in a file. 38.Now allows aliases to call other aliases, or even to call themselves recursively. As a safeguard against infinite loops, the default maximum recurse depth is set at 10. This can be changed with the /maxdepth command. The minimum depth allowed is 1 (aliases can't call other aliases) and the maximum is 100. Calling aliases from within aliases uses quite a bit of memory, so this might cause problems in certain situations where memory is low etc. 39.The /links window now has the save buffer option in the system menu. 40.Now supports Drag-and-drop files onto channel, channel nick listbox, query/chat, and notify windows. Can define aliases for each type of dropped file, as well as different aliases if the Shift key is pressed when the file is dropped. See Drag-drop tab in options dialog. 41.The /set /unset /inc /dec commands now default to not displaying information unless called directly from the command line. To force them to display info, you can use the [-s] switch eg. /set -s %x 1 42.Improved the copy routine slightly... if lines being copied originally belonged to the same line, then they are combined instead of separated. If you want to force mIRC to copy text exactly as it appears in the window then hold down the SHIFT key when you do the mark/copy. 43.In remote, instead of using the * prefix for commands to be performed only when you're an Op, you can now use the @ sign. Both are handled, but I will only specify the @ in the documentation since it makes more sense. 44.Increased maximum items for popup menus from 300 to 600. 45.Now ignores any mirc.ini in the windows directory and uses the mirc.ini in the current mirc.exe path. 46.Invalid CTCP messages are not replied to anymore. 47.Fixed a small time-out bug related to DCC send/get/chat. 48.New Identifiers: $abs(N) returns the absolute value of number N. $chr(N) returns the character with ascii number N. $asc(C) returns the ascii number of the character C. $len(text) returns the length of "text". $upper(text) returns "text" in uppercase. $lower(text) returns "text" in lowercase. $left(N,text) returns N left characters. $right(N,text) returns N right characters. $mid(S,N,text) returns N characters starting at S. $str(N,text) returns "text" repeated N times. $token(N,C,text) return Nth token separated by character C (C is the ascii number of a character) $lines(file) return number of lines in specified file. $nick(N,#) returns Nth nickname on channel #. $snick(N,#) returns Nth selected nickname on channel #. $opnick(N,#) returns Nth Op nickname on channel #. $nopnick(N,#) returns Nth non-Op nickname on channel #. $channel(N) returns the Nth channel that you are on. $query(N) returns the Nth query window you have open. $chat(N) returns the Nth DCC chat window you have open. $notify(N) returns the Nth notify nick currently on IRC. For the above identifiers you can specify N as 0 (zero) to get the total number of nicks/channels/etc. for that identifier. $snotify returns notify nick currently selected in notify list box. $level(address) finds a matching address in the remote users list and returns its levels. $away returns the value $true or $false. Identifiers/variables can be placed inside the brackets. Example: /echo $right(3,$left($len(goats),ToMooOrNotToMoo)) 49.Added a simple /if statement... /if v1 operator v2 { ... } /elseif v1 operator v2 { ... } /else { ... } Example: if (((%x == 2) || (%y >= 3)) && ($1 == $parm1)) { echo match1! } else if ($len(%input) == 5) { echo match2! } else echo no match! If/elseif/else can all be nested inside each other. You should use () and {} brackets to make sure that you're terms are evaluated correctly though you don't *have* to use them. Using brackets also speeds up processing quite a bit since mIRC then knows exactly what it has to evaluate. Available comparisons: == equal to != not equal to < less than > larger than >= larger than or equal to <= smaller than or equal to // is a multiple of \\ is not a multiple of isin string v1 is in string v2 iswm wildcard string v1 matches string v2 ison nickname v1 is on channel v2 isop nickname v1 is an op on channel v2 isnum number v1 is a number in the range v2 which is in the form n1-n2 (v2 optional) ischan if v1 is a channel which you are on. isauto if v1 is a user in your auto-op list for channel v2 (v2 optional) isignore if v1 is a user in your ignore list with the ignore switch v2 (v2 optional) isprotect if v1 is a user in your protect list for channel v2 (v2 optional) isnotify if v1 is a user in your notify list. To negate the above you can prefix them with an ! exclamation mark. 50.In all definitions, you do not need to specify the / command character any more for commands since it is really only needed when typing commands into the editbox. This also means you don't need to specify the / when defining aliases, etc. See 51. 51.Variables or identifiers that don't evaluate to a value now return the value $null so they can be used in the if statement for checking etc. eg. listops { echo 4 * Listing Ops on # set %i 1 :next set %nick $nick(%i,#) if %nick == $null goto done if %nick isop # echo 3 %nick is an Op! inc %i goto next :done echo 4 * End of Ops list } 52.When entering text in an editbox you can now hold down the CONTROL key when pressing Enter and the text will be sent as plain text even if it begins with a command character. This will also work when you paste text into the editbox. 53.Text in Alias, Popup, and Remote ediboxes is now auto- indented when { } brackets are encountered. 54.Enlarged DCC Chat dialog to make it easier to use. 55.You can now use an = (equal sign) to assign values to variables. %x = 5 + 1 %x = 5 - %y %x = %x * 2 %x = %z / $2 %x = %x % 3 Can only perform a single operation in an assignment at this time. You can also still do /set %x 5 + 1. 56.Added $ctime identifier which returns total number of seconds elapsed since 00:00:00 GMT, January 1, 1970. This can be used with PING to find out how many seconds it took. 57.Added ON CTCPREPLY to listen for replies to ctcps. eg.: 1:ON CTCPREPLY:PING* { if ($parm2 == $null) echo [ $+ $nick PING reply] else { %pt = $ctime - $parm2 if (%pt < 0) set %pt 0 echo [ $+ $nick PING reply] %pt seconds } halt } 58.Identifier $active returns the full name of the currently active window. 59.Added Font button to alias, popup, and remote dialogs 60.mIRC now automatically gets your web browsers path and name from the registry if it's there. 61.Channels list is now saved to a file "channels.txt" and the channels list dialog now has "Apply" and "Get List" buttons. If "Get List" is pressed then a list is read from the server, if "Apply" is pressed then the latest list is used whether in the channels listbox or in the "channels.txt" file. The date time and server name are also stored in this file. 62.Added "Save to file" item in channels list popup menu which allows you to save the currently displayed list to a file. 63.Added "PORT" item to DDE which returns the current irc server port you are using. 64.If userid in identd server is empty then mIRC assumes you're a new user and automatically fills in the userid from the email address you entered and turns on the identd server. 65.Can now use the /quote command to do the same thing as /raw. 66.Now supports server-side filtering on UNDERNET channels for the minimum and maximum number of users on a channel. This means that you will only receive a list of channels which match your choices for these two criteria. 67.Can now use Alt-J to pop up the channels folder dialog. 68.Speeded up display of Channel nicknames listbox. This actually affects quite a few other things in mIRC since the channels listbox was being used to store the nicknames for each channel. Now the nicknames are stored internally. Any command or identifier that involves checking/using nicknames is now far faster than before. 69.Now sounds an event beep when a chat that you initiated makes a connection. 70.Can now set a string variable to an empty string with "". eg. set %name "" or %s = "" 71.Text in the alias/popup/remote dialogs is now displayed quickly. 72.The Wait cursor is now used in more places to give a better indication of when mIRC is busy doing something. 73.Can now select multiple files in the Log File listbox to make deleting files easier. 74.For $read and /play you no longer need to specify the number of lines in a file on the first line of the file. If you do, mIRC will use the number and will work faster, if you don't mIRC will count the lines itself. 75.Can now use Control-Break to break out of a currently executing alias in case it's in an infinite loop, etc. 76.mIRC now defaults to using aliases.ini, popups.ini, and remote.ini files if these files aren't specified in mirc.ini, and if these sections aren't found in mirc.ini. If these files don't exist, mIRC will create them. 77.Added /alias command which allows you to add and remove aliases from the aliases list. Only works for *single line* aliases. 78.Colour now works in DCC Chats. 79.Speeded up Tab display in setup and options dialogs. 80.Fixed Editbox bug when pressing enter and text isn't sent. 81.DDE Server now defaults to ON with service name MIRC. 82.Added "CONNECT" DDE topic, which connects you to a server and joins a channel. The data format is: irc.funet.fi,6667,#mIRC,1 where the last digit is a 1 or 0 indicating whether you want mIRC to be activated or not. This is an XTYP_POKE. 83.Converted some routines to assembly to increase speed. 84.Added $asctime() which converts the value returned by $ctime or a PING into a full date in text format. 85.Added support for ctcp UTC. 86.Now ignores DCC-related ctcps sent to a channel. 87.Shift-F1 now pops up the keyword search dialog for the help file. 27/04/1996 - mIRC v4.1 (final bugfix release) Changes: 1.Fixed /sound being limited to eight character channel/nick names. 2.Fixed mirc.ini file being corrupted in certain situation. 3.Fixed servers sorting bug in setup dialog. 4.Added /links window which displays a list of all servers in the network and allows easy connecting, etc. 5.Fixed character | bug in nicknames/userids. 6.Fixed small ON CHAT bug. 7.Fixed DCC Get minimize button not remembering setting. 8.Fixed $ bug. 9.Fixed icon highlighting bug. 10.Fixed bug that was intermittently affecting various commands. 11.Fixed /ctcp with "dcc" in nickname bug. 12.reFixed Beep. 13.Fixed not replying to server PING bug. 14.Fixed /unset command not working in an alias. 15.Now saves window buffer to ".log" instead of a ".txt" file. 16.Added Log file listbox and View/Delete log to Logging options dialog. 17.Now displays in the status bar the *actual* address of the server you connect to. 18.Improved context sensitive F1 help key to work with more dialogs. 19.Fixed small identd and finger bug. 20.Added fileserver warning dialog to warn new users. 21.Added $hfile identifier which is like the $file dialog except it lists files horizontally. 22.Fixed fileserver "read" command bug. 23.Added option to display identd requests. 24.Improved mark/copy text routine a bit. 25.Remodelled about dialog. 26.Fixed socks firewall access. 27.Added $++ identifier which works the same as the $+ identifier but does the concatenation after the previous item has been evaluated, so something like this works now: /say " $+ $read c:\test.txt $++ " 28.Auto-join on invite now ignores invites to channel 0. (/join 0 makes you part all channels, seems to be an irc server feature). 29.Finger window is restored if it is minimized when you try to do a finger. 30.Changed /list command so you don't have to prefix the wildcard text with a #. eg. /list help and /list *help* is turned into /list help 31.Now displays /whois Idle time in hours/minutes/ seconds format instead of just seconds. 32.Clicking on "Arrange Icons" now places icons behind open windows when arranging them. 33.Now shows both server name and Port number when connecting. 34.Status window default height is now larger. 35.Now handles "erroneous nickname" better. 36.If no directory is specified in the wave filename for the /wavplay command, it now defaults to the wave directory specified in the Sound Requests options dialog. 37.Other things. 20/03/1996 - mIRC v4.0 (final version) Changes: 1.Fixed standard editbox popup menu under 95 not being displayed on a right mouse-click. 2.Fixed problem with /ctcp to a user with "dcc" in nickname. 3./query command pops an existing window to the front if it's hidden. 4.Fixed "parameter dialog" popping up bug. 5.Fixed Channel Dialog gpf bug if kicked while dialog still open. 6.Dynamic help menu now displays a list of .hlp files in mIRC's directory, as well as the readme.txt, versions.txt, and update.txt files, for quick access. Also adds internal aliases that match these filenames, so if you have "winsock.hlp" in the help menu you can type /winsock . The menu is always updated before it is displayed. 7.[removed] 8.Added "play wave" options to event beeps section. 9.Now remembers DDE settings across sessions, added to "Servers" section in options dialog. 10.Added "Popup notify window on connect" option. 11.Added new configurable menu which allows you to add a menu to the main menu bar. This menu has the functionality of both the main, query, and nickname popup menus, and allows you to define commands that work in different types of windows. 12.Can now test for and prevent SOUND ctcp's in the remote. 13.Fixed channel list "Hide" parameters being erased in certain situations. 14.Modularized Tab dialog routines so now they're "completely" independent of the rest of the code. 15.Improved setup dialog/server selection: a) Added "group" definition to servers. When sorting the servers list this groups servers with the same group name together. b) Added "connection retry" options. One second delay inbetween connect retries. c) Can select multiple servers to connect to. d) Can do "/server groupname" which will cycle through all servers of group "groupname" when trying to connect. NOTE: When using the 16bit mIRC, winsock will "freeze" sometimes when cancelling a connection. This is because winsock has to timeout... as far as I know, mIRC can do nothing about this since it is built-in to winsock, so even if mIRC cancels a connection, winsock still waits for 10 seconds *anyway* before completing the cancellation. This might result in other problems. 16.Added "Popup channel folder on connect" option. 17.Now capitalizes the first word in a ctcp message. 18.Notify: a) Now has it's own window in options dialog. b) Number of nicks is unlimited. c) Allows little notes for each nickname. 19.Added /commands [on|off], turns remote commands on/off. /events [on|off] turns only events on/off, and /remote [on|off] now turns both commands and events on/off. 20.Added other beep/close options to DCC options dialog. 21.Fixed $parms bug, was only storing first 256 chars. 22.Added "Place ? marked urls at top of list" option in url options. 23.Can now do "/ignore -auN", which unignores the specified address after N seconds. Can now also do, /ignore -apcnti, where p=private,c=channel,n=notice, t=ctcp,i=invite. 24.Can now enter auto-op addresses with channels, eg. nick!user@address,#mirc,#mircplus 25.All /dde commands are now buffered and sent at intervals specified by the DDE delay option. 26.Added /clearall command which clears buffers of all status, channel, and private windows. 27.Now warns you if you try to quit mIRC when there are DCC Transfers in progress. 28.[removed] 29./links command results are now displayed in a coloured tree fashion to make it more readable (?) 30.Added "pop up setup dialog on startup" option. 31.Improved speed of text display slightly. 32.Fixed /rlevel not removing levels in certain situations. 33.Added -s option to /write command, scans file for a line beginning with and writes to it. 34.[removed] 35.Added /groups [-e|d] command which lists all, enabled, and disabled groups in remote definitions. 36.Can now use #$?#="etc." which will ask for a channel name if you try to use the command in a non-channel window, otherwise it uses the channel name of the currently active channel window. 37.Command parsing routine completely rewritten, much more robust and evaluates identifiers etc. more intelligently now. However, because of increased processing/checking etc. this routine is now slower than the older routine. 38.Moved identd server options to setup dialog. 39./speak command requests are now also placed in delayed DDE queue. 40.Added variable support: /set [-q] <%var) [value] /unset [-q] <%var> [%var2] ... [%varN] /unsetall /inc [-q] <%var> [value] /dec [-q] <%var> [value] Can be edited in Variables section in remote dialog. 41.Iconized Notify and Url windows are now highlighted whenever their contents change. 42.Notify and URL toolbar buttons are now also highlighted if either the window isn't open or isn't active. 43.Fixed /ctcp nick VER bug. 44.Fixed beeping bug where mIRC wasn't beeping properly for some users. 45./sound now doesn't require you to specify a message. 46.Added $level which represents users level in remote. 47.Added /remove which deletes the specified file. 48.Added $cd which represents users current directory in a fileserver session (Used in ON SERV event). 49.Specifying a nickname in the finger dialog now works the same way as /finger . 50.Can now use /nick while not connected to server: /nick [alternate] 51.Fixed bug in resolving dns addresses. 52.Fixed /finger not resolving for some users. 53./auto and /ignore now *add* an address by default, to remove an address you can use the -r switch. ie. they do not toggle anymore. 54.Added Firewall option, doesn't allow DCC's through a firewall yet though. 55.Added "IP method" option for users with different winsock setups. 56.Fixed DCC Sending a file with the same name as users nickname (would result in an error message). 57.Fixed URL sorting in url window. 58.Now tests to see if DCC send filename is a system device, if so DCC send is ignored. 59.Fixed & characters in editboxes in options dialog being messed up. 60.Fixed disappearing INI and temp files not being removed (?) 61.Fixed "read" in fileserver allowing read access to files outside home directory. 62.Fixed occasional "notice" gpf. 63.Fixed ctcp TIME missing trailing ^A. 64.Fixed Status window saving/reset not working. 65 Can now specify -sgroupname on the command line. 66.Other bits and pieces. 06/01/1996 - mIRC v3.92 Changes: 1.Fixed /sound gpf bug. 2.Fixed security bug in remote. 3.Fixed gpf bug on windows opening due to old window pos/size format in mirc.ini. 4.Changed fingers storage method in mirc.ini. 5.Improved Channels List dialog. 6.Popups are now fully allocated dynamically. 7.Changed $file identifier to display only files, can now use $dir to display both directories and files. 8.Added /font command which pops up the font dialog. 9.Added "Extract URL" menu item to channels list popup menu, which extracts a URL from a channels topic and puts it in the urls list. 10.DCC Send "percent" info is now updated when an Ack is received, not when a packet is sent. 11.Fixed $parms not working with $read. 12.Speeded up tabs display in options dialog slightly. 13.Small improvements in DDE response speed. 14.Function key aliases can now execute several commands by using the | command seperator. 15.Fixed DCC gpf problem (?) 16.Fixed $read not closing files in certain situations. 17.When entering text in an editbox mIRC now beeps when you are within 30 characters of the maximum allowed line length. 18.mIRC now works with the three major WWW Browsers. 19.Fixed '=' prefix processing bug in remote. 28/12/1995 - mIRC v3.9 Changes: 1.Fixed the /join KEY bug. 2.Add -q switch to /raw which makes the /raw command work "quietly", not printing out what it's sending. 3.Fixed channel folder dialog not remembering added/deleted channels when pressing OK. 4.Now /ignores invites as well. 5.Fixed the remote DO command. 6.Can now handle &channels, fully supported in aliases, popups, and remote definitions. 7.Redecorated. Tending towards simple and uncluttered menus and interface. 8.Removed font dialog, can now change a font only from a windows system menu. 9.Can now do /me or /action in DCC chat windows. 10.The 32bit under 95 now saves logs and buffers using the full length filename. 11.ON TEXT etc. now allow wild card matches using multiple * in the match text. NOTE: the text matching routine in ON TEXT etc. doesn't use the = sign anymore, as it's now redundant. 12.Found bugs in the wildcard matching routine while making ON TEXT work with it. Fixed. 13.Made Tabs in options dialog more 95-ish. The bold font is still there though, sorry, I like it! 14.mIRC now does NOT reply to unknown ctcp messages, it just prints them in your window as usual and then ignores them (as per the RFC). 15.Aliases now work better when called from remote definitions. 16.Fixed -l# switch in play command. 17.Improved positioning of various dialogs. 18.DALnet URL catching on joining a channel now works. 19.Nicks in notify list are no longer forced to lowercase. 20./save can now be used in an alias with | separators. 21.Added -stext option to $read, which scans the specified file for a line beginning with the specified text. 22./pop delay is now randomly *close* to the number you specify as a delay. 23.Fixed /server N (specifying server number). 24.Fixed window bug possibly related to DCC gpfs. 25.Added -u# switch to /ban command which specifies delay time before unbanning the specified ban. Minimum delay time is 10 seconds. If no number is specified, it defaults to 30 seconds. eg. /ban -u15 nick 26./fingering a nick now only adds the nick's address to the fingered addresses list, not the users whole irc address. 27.Now allows an unlimited number of /timers. 28.Fixed INI specification on command line. 29.Improved dynamic memory allocation in various places. 30.Added notify list window. Can use the toolbar notify button or /notify [-sh] to show/hide the window. Please note that there is a minimum window width under 95 that I haven't been able to override. 31.Address returned by IAL was sometimes invalid. Fixed. 32.Added [-ar] switches to /notify, /protect, /ignore, which forces the command to -add or -remove a nick instead of toggling it. 33.Added $site identifier for remote addresses. eg. for user@host $site = host 34.Now allows /sound in DCC chats. 35.Added minimal DDE support, as well /dde command and a $dde identifier, to be expanded. See DDE section in help file for description 36.Added "Edit" button for editing finger file in options dialog. 37.Can now access popup menus in the notify, URL, and channels list window through the keyboard. Pressing RETURN performs a "double-click", pressing SPACE pops up the popup menu. 38.Added Alt-N for notify and Alt-U for URL windows. 39./msg command now by default doesn't switch to the window you're sending a message to unless you specify the [-s] switch. eg. /msg -s hiya! 40.Added /timestamp [on|off] command. 41.Added /partall command which parts all the channels you're currently on. 42.Added "Minimize DCC get window" option. 43.Added $adate (for US style month/day/year), and $fulldate which spells it all out. 44.Added a "time to activate" option to the /timer command, eg. /timer1 11:30 1 1 /say It's now 11:30am 45.Fixed "filename" in quotes with no spaces bug. 46.Fixed using $?="text" identifier. 47.Added $file identifier, eg. in a popup menu item: Play Wave:/wavplay $file="Select a Wave!" c:\waves\*.wav 48.Fixed disappearing aliases/popups/remote bug, where filenames for each of these were being reset to the mirc.ini file. 49.Added a "/timers off" switch which allows you to turn off all active timers. 50.Alt-L now pops up the Channels List dialog. 51.Added /disconnect command, hard disconnect from server without a /quit. 52.Fixed ON SNOTICE reacting twice to server notices. 53.Fixed/Improved other bits and pieces. 25/11/1995 - mIRC v3.8 Changes: 1.Added option to show invites in active window. 2.Fixed $! bug. 3.Added option to auto-resume existing files. 4.Fixed /echo with invalid parameters gpfing. 5.Option dialog now remembers it's "view" across sessions. 6.Paused op wasn't clearing a nick from it's list immediately if a nick parted or quit, but had to timeout first. 7.Added /speak command which uses monolog to speak the specified text. 8.Added /dns which resolves addresses. If mIRC sees a "." in the name you specify it assumes it's an address and tries to resolve it. Otherwise it assumes it's a nickname and does a /whois to find the users address and then looks it up. If you give it an IP address, it looks up the host name. 9.Removed small users window in remote dialog, now using one big window for users, commands, and events. 10.The Add Dialog has been discontinued. Check out the alias, popup, and remote dialogs for the improvement. IT IS *HIGHLY* RECOMMENDED THAT THE ALIAS, POPUP, AND REMOTE SECTIONS BE SAVED SEPERATE FROM THE MAIN MIRC.INI FILE FROM NOW ON. THE MIRC.INI CAN'T HANDLE THE STORAGE OF LARGE AMOUNTS OF INFORMATION AS REQUIRED BY THE ALIAS, POPUP, AND REMOTE SECTIONS. 11.Finally fixed DCC Send/Get windows sometimes not auto-closing at end of transfer (?) 12.Right-clicking in a non-active window will now bring it to the top and make it active. 13.Fixed socket error message when running second copy of mIRC (didn't actually affect anything). 14.For new users, mIRC no longer copies the mirc.ini to the windows directory but leaves it and uses it in the same directory as the EXE. However, if it finds an mirc.ini in the windows directory it will use it (to remain compatible with older users). 15.Small fixes relating to Function keys. 16.Can now use /load -apuce or /save -apuce to load and save aliases, popups, and remote sections from the command line. NOTE: You can only refer to one section at a time, so you can't do /load -ap some.ini. 17.All memory in the parsing and remote routines is now allocated dynamically. 18.Added ignore options to DCC send/chat in the DCC options dialog. Can also use /sreq and /creq (send request and chat request) with the parameters [ ask | auto | ignore] from the command line. 19.Added "ON CHAT:text:/msg ..." and ON SERV events to scan text in DCC chat windows and fileserver windows. 20.Added command line option to connect to a server and join channels which is more of a standard WWW link definition: //server:port/#channel,#channel 21.Fixed gpf problem for some users when quitting mIRC (?) 22.Added /flush [levels] command. This clears the remote user list of nicknames that are no longer valid. For each nick in the user list that matches the specified levels mIRC checks to see if that nick is on any of the channels that you are currently on. If not, the nick definition is removed from the user list. If you do not specify [levels] then mIRC clears all nicks from the user list that don't exist on channels you are on. 23.Added "me" prefix to remote definitions, eg.: me:1:ON JOIN:/msg etc... This limits a command definition to reacting only to events caused by your client. This is useful in case you use Bots which have the same address as you. 24.The address in the Finger dialog now defaults to the last address which was fingered. 25.The /play command has been improved in a major way, it can now queue requests (see the help file!) 26.Fixed bug with highlighting in query windows. 27.Added Finger server (must be set up in a certain way, see the help file on how to do this). 28.Added ON SNOTICE event, which listens for server notices and can filter them ie. prevent them from being displayed. 29.Remodelled the setup dialog. Can now also store an unlimited number of servers. 30.If /finger sees a "." in the parameter you give it, it will assume it's an address and will finger it, otherwise it will assume it's a nickname and will do a /whois on the nick to find their address and use that for the finger. 31.Added option to change tooltip delay. 32.Split the "Beep on window message" option into two... "Beep on channel message" and "Beep on query message". 33.Fixed the notify bug which would result in mIRC telling you all the people on your notify list are on... then off... then on... then off... 34.Simplified /timer code and fixed a small bug in it. 35.Command line window buffer has increased to 30 lines. 36.Now catches server numeric 328 for URL description when joining a channel on DALnet (they might not have implemented this yet). 37.Fixed toolbar buttons colours when the default system colours are changed. 38.The 32bit mIRC can now DCC send/get LFN's with spaces in them. Unfortunately, other clients won't be able to receive these properly! See the "DCC Send" section in the help file which explains the problem. You can also do: /dcc send nickname "this is a.text file" 39.Added -nnick1,nick2 command line option which sets your nicks to these values. 40.Overhaul of irc and parsing routines, simplified and speeded up. 41.Added [on | off | close] to /url command to turn on/off catching urls and to close the URL window. 42.Added option "Show modes in channel". 43.Now gives the reason why you can't join a channel. 44.If you have "rejoin channel when kicked" turned on and you are kicked, mIRC will keep the channel window open while it tries to rejoin and will only close it if it can't. 45.If a /play filename doesn't have a directory spec. it defaults to the mirc.exe directory. 46.Added a flexibile /write command which writes lines to a file. 47.Added "Show queries in active channel window" which shows private messages from other users in a channel window without opening a query window. 48.Added "TAB" key putting "/msg nickname" into the editbox where "nickname" is the nick of the last person who messaged you. If you press TAB repeatedly it cycles through the nicks of the last five people who messaged you. 49.Now shows who set the topic and at what time when you join a channel on Undernet and DALnet. 50.Fixed small bug with the /sound command not checking properly if a sound file exists. 51.The Options dialog now uses Tabs. I had trouble using existing TabDialog DLL's, so I coded my own Tab display routines. 52.Fixed /channel dialog bug which would occur if you typed /channel repeatedly while it was in the middle of retrieving the channel info. 53.Fixed a problem with /whois replies, the format of the reply has changed and is hopefully clearer now. 54.Can now also define Shift and Control Function key definitions. 24/10/1995 - mIRC v3.72 Changes: 1.Fixed $parms not being passed in a redirection. 2.Can now /play to any channel/nick without needing to have that window already open. 3.Added -ttopic option to /play which looks for the specified [topic] in a text file and plays it to the specified nick/channel. 4.Added $pnick identifier which refers to the nick/channel which is currently being played to, so you can use it in /played commands. 5.Allows #$parmN to force a parameter to be a channel. 6.Fixed DCC Resume filesize bug. 7.Added option to show notifies in active window. 8.Completely reorganized the Options dialog as it was too crowded and it was getting harder to add new options. Now divided into sections, and also incorporates the options in the extras, url, sounds, and identd dialogs. The menus and toolbar buttons have been re-organized accordingly. 9.Fixed QUIT bug when exiting mIRC while still connected. It was sending a part instead of a quit to the server. 10.Fixed /timer not releasing it's memory in certain situations. 11.Fixed positioning of : in some raw commands. 12.Fixed setting of focus to windows. 13.Added option to dump joins/parts to status window. 14.Now shows DCC transfers percentage/size at head of window title for win95 users. 15.Messages from irc ops of the form $address or #address are now displayed in the server window in pretty purple as opposed to opening up a query window. 16.Added "clear list" button to DCC chat dialog (the DCC Send dialog uses the same list). 17.The /pop delay value can be up to 15 seconds now. 18.The weird DCC Send dialog bug was fixed (?) 19.Improved copy/paste routine memory allocation. 20.Fixed /sound with invalid parameters gpfing. 21.Fixed some toolbar colours not being displayed correctly for some buttons. 22.Number of channels in channel list window is now shown at beginning of title. 23.Text printed with the /echo command is now wrapped. 24.Added $r(v1,v2) identifier, returns random number or letter between v1 and v2. 25.Fixed identd server time-out bug. 12/10/1995 - mIRC v3.7 Changes: 1.An *iconified* channel list window is not restored if a /list is done, instead it's icon is placed above current windows (without focus) for easy access. 2.The Join Channel dialog can now handle multiple selections. 3.The /timer can now work with aliases again. 4.Can now prevent an identifier from being evaluated the first time through the alias routine by prefixing it with a ! for example: $!read, $!url, $!me, etc. This allows you to use it in a /timer command if you want the identifier to be re-evaluated every time. 5.Fixed /channel dialog bug and improved memory allocation for the ban list. 6.Fixed bug in status window sizing. 7.Fixed Timer dialog bug, when selecting cancel timer wasn't being reset correctly. 8.Improved grouping of switches in options dialog. 9.Fixed "disconnected" bug while trying to connect to another server if already connected to one. 10.Cleaned up popup menu routines. 11.Major improvement in robustness of input, general irc, and remote routines. BACKUP YOUR MIRC.INI FILE(S) 12.Wrote my own read and write INI routines for parts of the mirc.ini file since the standard INI routines were too slow. Loading and saving is almost instant now. 13.Fixed windows not being saved/closed properly on exit. 14./play now works when used in remote commands. 15.Added /echo command which prints text in the specified window (for debugging purposes). 16.Now using 0x04L in dialog definitions so that 3D dialogs under win95 are automatic. 17.Can now do "/server N" where N is the Nth server in the server list. 18.Fixed font selections not being saved correctly. 19.Added URL catcher window which automatically catches URLs from text in channels etc. and stores them in a listbox. You can then send a URL to your WWW browser directly through mIRC. Type /url [-d] to open the window. Use -d to clear all ? marked items before showing the list. 20.If a nick in the notify list is prefixed with a + sign a /whois is done on it on a notify. 21.Added sounds dialog and a new /sound command which allows multiple users on a channel to hear sounds at the same time (assuming they have the same wave files). format: /sound [nick/channel] 22.Fixed problem with % in channel names (and other things). 23.Fixed channel dialog "Key already set" bug. 24.Added $url identifier which references the currently active URL in your WWW browser. 25.Added option in extras dialog to redefine command char. 26.Now automatically sets cursor to last edited window in remote and popup dialogs. *** NOTE NOTE NOTE IMPORTANT CHANGE *** 27.Now uses a different format for commands/events: Old format: 1:PING:/notice *1:$nick hi there New format: 1:PING:/notice $nick hi there This greatly simplifies processing, the routines are now probably more than twice as fast as before. mIRC will automatically detect and convert old format definitions on startup (and when /add is used). 28.mIRC now maintains an internal list of nick!user@address for all users that are on the same *channels* as you. Whenever a /guser, /ruser, or /ban is issued, the internal list is searched first to find the nick's address. If no match is found, the normal /whois stuff is done. 29.Now opens log files in shared mode. 30.The nickname in the DCC Send dialog now defaults to the last nick to which a file was sent. 31.Added $snicks which returns a list of the selected nicks in the current channel listbox. The list is in the form: nick1,...,nickN, so you can only use it in commands which take multiple nicks. 32.Greatly improved/simplified address matching routine. 33.Can now do /ignore [type] which looks up the specified nick's address by doing a /whois, same as the /auser, /ban, etc. commands. 34.DCC Get dialog now allows you to specify a different directory for the incoming file. 35.In the setup dialog, a server is highlighted after it is added to the server list. 36.The nickname in the DCC Chat dialog now defaults to the last nick that was chatted to. 37.Aliases can now be called from popup, remote, timer, play, and any other definitions. You can now also call several aliases on one line seperated by a | like normal commands. eg. 1:HELP:/help1 $nick | /help2 $nick (Aliases still can't call other aliases). 38.Can now have up to 30 timers, also improved memory allocation for timers. 39.Fixed bugs with the /add command. 40.Fixed Clipboard missing last character bug (?) 41.Default directories for the file/dir dialogs weren't being set correctly. 42.The /notify command was checking twice instead of only once for nicks. 43.The /timer command now also remembers the parameter line that was around when the /timer was issued. 44.The 32bit mIRC should now handle LFNs okay. 45.Can now do level comparison for ON KICK, ON OP, and ON DEOP, prefix a line with <,>,<=,>=,<>,= compares levels of eg. kicker and kicked and only executes definition if true. 46.Attempted improvement and cleaning up of server oriented commands and their replies. 47."signon time" in a /whois on the undernet and dalnet is now shown correctly. 48.Can now specify a server on the command line eg. -sirc.server.addr:6667 and mirc will connect to that server on startup. (You can combine this with the -j parameter to force it to join specific channels too). 13/09/1995 - released mIRC v3.64 patch 1.Fixes the *1-3 type bug. 11/09/1995 - mIRC v3.64 Changes: 1.Fixed Local Host and IP address bug, added options in the setup dialog. Now works for any combination of requirements for people with different types of internet connections (see Setup in mirc.hlp!) 2.$read command improved so you can specify a line number with [-l#]. For example: /silly /say $read -l5 silly.txt This will read line 5 of silly.txt. 3.Now using "Common Dialogs" for file/directory selection, as well as for the DCC Send dialog (Long filenames are NOT yet supported). 4.Optimized Remote routines - should be faster now. 5.Can now use $read in remote definitions. For example: 1:TEST:/notice *1:$nick I said " $+ $read c:\langs\mirc\test.txt $+ " 6.Can now store up to 50 IRC server addresses in Setup dialog. Storage format in mirc.ini has changed, but will still read the old format. 7.Finger button now pops up a red flag while finger is busy. The flag disappears when finger has been completed. 8.Bug with Maximized mIRC window fixed. 9.Finger and Timer dialogs now popup under their respective buttons. 10.Added "Channels Folder" button which allows you to join a channel as well as maintain a list of your favourite channels. 11.Added "List Channels" button which pops up the List parameters dialog, allowing you to quickly list channels. 12.Fixed NT gpf bug when using toolbar. 13.Added -j<#channel> command line option. For example: mirc.exe -j#mirc,#friendly,#etc The specified channels will be joined on connect. You MUST have an mirc.ini with the "Connect on startup" option selected. 14.Fixed another bug with using * to begin a non-parameter identifier. eg. *host* in aliases/etc. 15.The /auser /guser and /ruser commands can now handle multiple levels. They have only been extended, so they are still compatible with your previous formats. /auser [-a] /guser [-a] [type] /ruser [level(s)] [type] For /auser /guser, the default is to replace any existing user with the specified levels (as usual). The [-a] option means add the specified level(s) to an existing users levels. The /ruser command removes the specified levels from an existing user. If all levels are removed for a user, the user is removed. See the Remote section in the Help file! 16.Can now do /mode # +oooo nick1 nick2 nick3 nick4 17./play can now be used in a remote/event definition. 18.Extended the /rlevel command to also work with multiple levels. /rlevel [-r] If the [-r] is NOT specified, it works as usual. If the [-r] IS specified, the specified level(s) are removed from users that have them. If a user's levels are ALL removed, the user is removed. 19.Fixed bug with Green box being drawn around iconized window in response to wrong messages. 20.Fixed several bugs in /play with using -r and -l. The format has changed slightly to: /play [-crl#] [delay] This now allows you to specify a delay for -r and -l, You must now specify the line number like this: /play -l24 file.txt 1000 21.Text colours are now ok when using > 256 colour setup. 31/08/1995 - mIRC v3.6 Changes: 1.Highlight Box around an Icon now turns green if a highlighted word is spoken in a window. 2.Fixed Ping Pong bug which was preventing lines from being sent properly to the server. 3.Fixed Editbox/Colours bug in Extras dialog. 4.Inserting blank lines in Remote/events/aliases between commands would lead to loss of following definitions. 5.Channel list window would clear if you disconnected and then connected again. 6.Aliases, Remote Users, Commands, and Events definitions are now unlimited. ie. you can have as many as you want, however the limitation is the size of the editbox (around 30k?). 7.Fixed font dialog bug when tabbing with cursor keys. 8.Popups are still limited to 300 menu items for each popup menu. 9.Max. length of a line in aliases, remote, and popups is approx. 600 chars. Same applies to lines in the Options dialog. 10.Now allows a non-op to change topic in channel dialog. 11.Fixed :) bug. 12.Fixed /auser /guser bug. 13.Fixed /channel dialog title bug. 14.Added a simple NON-configurable toolbar with tooltips. A Configurable toolbar would take a lot of work, so I probably won't get around to adding it (so don't ask! :) 15.Fixed ctcp PING reply missing a Ctrl-A at the end (?) 16.Specifying a /who *146.219* numerical address would mess up because the *1 is a parameter specifier. mIRC now checks to see if there is a . in the number, and if so it doesnt try to expand it. 17./play command can now play single lines randomly picked from a file (a specific line can also be specified). The format is: /play [-crl] [channel/nick] [delay/linenumber] Using -r means pick a line randomly, using -l means pick a specific line specified by linenumber. The first line in the file MUST specify the number of lines in the file. Any *1 $1 etc. identifiers CANNOT be used in the played line. 18.Added $read identifier which picks a line randomly from a file. eg. /say $read c:\funny.txt /kick # $1 $read c:\kicks.txt The first line in the file MUST specify the number of lines in the file. $read will insert ANY text, even commands with identifiers, and these will work like normal commands. 19.Added Fast Send checkbox to DCC Send dialog. 20.Fixed scrolling keys in Channel list and finger windows. 21.Made Font list longer in font dialog. 22.Added "auto-join on invite" option to options dialog. An auto-joined channel is initially minimized (this might not always work for various reasons...) 23.Added Function key support F1 to F12. Define in the alias window like a normal alias for example: /F1 /say Hello! /F5 /query $1 (for use on nick listbox in channel window) 24.Font width measurement for copy/paste wasn't correct for certain types of fonts. 25.Fixed problem with minimized windows being sized wrongly. 26.Fixed /channel bug. Now times out after 30 seconds, at which point another /channel can be issued. BUT if the old /channel command is replied to, your status window will fill up with ban list information for that channel. No way around this I'm afraid! 13/08/1995 - mIRC v3.51 (minor update) Changes: 1.Fixed garbage character output bug. 2.mIRC16 wasn't recognizing version reply from Win95. 3.Making mIRC active with a click wasn't setting the focus to the active window correctly. 4.Fixed security bug in the fileserver. 7.Fixed $day bug. 8.Removes unused bold/italic/etc. characters from lines. 9.Fixed ON MODE bug with +/-k. 10.Fixed gpf bug in on mode/servermode. 11.Fixed Reset bug, wasn't resizing small windows properly. 12.mIRC wasn't outputting to the status window if it was starting out maximized. 13.The /auser, /guser, /ruser, /enable, and /disable commands now do NOT save changes immediately to the INI file when they are used. Remote information is now saved either on exiting mIRC, or if the remote dialog is opened/closed. 14.Now uses the ctl3d dialogs as default. The -d is ignored, but you can now use -n to disable the 3d dialogs. 15.Complete dialog interface improvements (for mook ;) 16.Commands using $* were not processing commands following them. 17.Fixed socket() initialization bug in various routines. 18.Improved how mIRC uses/gets your local hostname and ip address. 19.Fixed fileserver dirinfo.srv bug. 07/08/1995 - mIRC v3.5 Changes: 1.Using IP address of a server now works...! 2.A ctcp ACCEPT/RESUME now doesn't look at the filename to make a match but only at the port number. 3.Fixed perform option being executed after every MOTD. 4.Notify on initial connect is now done just before Perform option. 5.Fixed bug in displaying wrong Server Name in titlebar after changing server name in setup. 6.Scrollback buffer wasn't freeing lines properly. 7.Added $time, $day, and $date as parameter types. 8.Prefixing a remote event with '*' means it should only be performed if you have Ops on the event channel. 9.Optimized Text Copy routine - now faster/smoother. 10.Fixed divide by zero gpf in /pop routine. 11.Modified Op status checking routine. 12.Added a font dialog. 13.Width of user listbox in channel is now measured properly to take account of fixed/variable width fonts. 14.Improved mode-change handling routine. 15.ON ACTION now works for actions (same structure as ON TEXT). 16.Using $* improperly would result in a gpf. 17.The "Always get IP address on connect" wasn't working. 18.A /me now cannot be sent without a message. 19.Cleaned up several routines, removed potential GPFs & other problems. (most of which were detected while compiling the 32-bit version) 20.Double-clicking on a servername in Setup dialog is same as selecting Connect. 21.Now available in a 32-bit version (with optional air-conditioning). 22.Added /wavplay command. 23.Two bugs in Getting IP address routines were fixed. 24.Fixed unknown mode oo bug. 25.The ON OP/SERVEROP/DEOP were noticing only the first opped nick. 26.Address as returned by a /whois now has an @ sign. 27.Added $cb parameter, which refers to the first 256 characters of current clipboard contents. 28.The /flood command now inhibits only specific types of replies to the server eg. replies to Remote/events/ctcp (basically, replies triggered by other users). 29.Made random delay auto-op an option in the options dialog. 30.A user in the remote user list can now have multiple access levels: 5,=10,=15,=17:*!*@host 1) The first level in the list is treated normally and can be anything. 2) The remaining levels are treated as = levels (even if you dont put the = infront of them). 31.Finger window popup menu now shows the last 5 fingered addresses for quick selection. 32.Now prevents Channel list window being closed while a listing is being made. 33.The mode change checking routines have been improved. 34.Cleaned up/Improved popup menu positioning routine. 35.Added /rlevel command which removes all users with the specified access level from the remote user list. 36.Fixed problem with extra spaces being appended to sent lines. 37./omsg and /onotice can now take an optional channel argument. eg. /omsg [#channel] 38.Windows opening in mIRC are now not given focus if mIRC is not the active application. 39.Text in remote dialog is displayed more quickly now. 40./ignore now also ignores all notices. This means you can't do ctcp on any person you ignore since a reply to a ctcp is a notice. 41.Added $server, $ip, and $host as identifiers. 42.Can now define groups of commands/events in the remote: #2 start 1:ON JOIN:... 1:ON TEXT:... #2 end You can use /enable #2 or /disable #2 to enable/disable group #2. A disabled group is ignored by the remote. You cannot have groups within groups. 43.Now shows User mode in status window title. 44.The READ command in the fileserver now does paging (default of 20 lines) and prompts user whether to continue listing or to stop. User can specify optional paging size with: read [-numberoflines] 45.The READ fileserver command now also allows reading of any file. 46.Control-Home/End now moves to top/bottom of window text buffer. Control-Page Up/Down moves up/down line-by-line. 47.Can now do /help for most commands mirc knows. 48.Each window now has a 20 line command history buffer, use Cursor Up/Down in single-line editbox, or Control-Up/Down in multi-line editbox. 49.Protect-list bug fixed. 50./ruser nick! now removes any address beginning with nick! in the user list. 51.Can now handle multiple /ban and /guser commands one after the other. 52.Can now also specify *N1-N2 or $parmN1-N2. For a horrible example, see: 1:TEST:/notice $1 *1 *2-6 *9:$nick $parms $parm1 $parm1* $parm3-5 $parm4-9 53:Optimized text display routines. 54.Fixed the undernet /uwho X gpf. 55.Fixed % problem with actions. 56.Improved output of /finger
routine, now expands tabs and inserts empty lines in the correct places. 57.Fixed gpf bug in handling of KILLs. 58.Added a crude ON MODE/SERVERMODE to react to a *channel* mode change. 1!:ON MODE:#mirc:-spmi+lktn 20 mykey:/notice *1:$nick Illegal mode change! When someone changes the channel mode, mIRC enforces the above channel mode instead, and sends the user a notice. 59.Now removes redundant spaces from lines in the Options dialog. 60.Fixed disappearing popups/commands/events problem. 61.Improved /ruser command so that it can work like /ban and /guser. /ruser [type] if you do NOT specify a type, then it works as usual and removes the specified nick from the user list. If you DO specify a type, it looks up the users address and removes that address from the user list. 62.Now correctly initiates a DCC CHAT using 'chat' as opposed to the originators name. 63.Improved Channel List Window Popup menu. Added a dialog which allows you to respecify the list parameters to relist the window without having to do a relist from the server. 64.Fixed "Error sending data" at end of transfer with fast send turned on. 29/06/1995 - mIRC v3.42 (minor update) Changes: 1.Fixed Beeping saving/loading beep settings using only nickname and not the whole line in 'DCC Chat with krejt'. 2.The Local Host name can now be changed while online. 3.The /ban command did not allow processing of following commands. 4.Fixed 'Enter' bug in single-line editbox (?). 5.If "Show quits in channel" wasn't checked, user would not be removed from channel namelist when user quits. 6.Unbanning in the /channel dialog now unbans 3 users at a time in one mode command instead of one user at a time. 7.Added Options->Auto-Op random pausing (up to 7 seconds). 8.Minimized get icon now shows nickname. 9.Fixed server ports being reset to 6667. 10.Fixed the /msg =nickname gpf bug. 11.Added * to beginning of username in /ban addresses. 12.Changed /finger method slightly. 13.Added /pop [#channel] command which performs a paused op on the specified user within a random number of seconds. 14.A DCC Chat window is only given focus on connection if it is the active window, otherwise it just beeps once. 15.Can now do /help . 16.Fileserver was ignoring parameter and limited users to get only one file at a time. 17.Optimized routine for handling mode changes. 18.Fixed ON NOTICE bug. 19.Fixed /uwho (is operator) bug and /uwho ctcp bug. 20.Fileserver: if file has no extension then '.' is automatically added to user get request filename. 21.Improved voiced/opped display of nicks but still when a user is deopped and has a voice, things mess up. 22.Now automatically shortens your nicknames to the maximum length allowed by the server you connect to. 23.Fixed bug with /ban after using the /auser command. 24.Rewrite of INI reading routines in the hope of fixing gpf's and other weird problems that are being caused by this. 25.Changed timing of Misc->Options->perform commands, now sends commands right after end of MOTD. 21/06/1995 - mIRC v3.3, v3.4 Changes: 1.Fixed line splitting in single line editbox. 2./describe now displays as a normal action if you are on the channel that you are sending to. 3.Can now do 1!:ON TEXT:etc... which means this command should not react to any events caused by me. 4.Added alternative join/part/quit format option. 5.Fixed :! gpf. 6.Fixed $opnick problem. 7.Directories are now sorted in DCC Send dialog. 8.Can now specify directory for mirc.ini file on command line. 9.Notify routine now checks for a blank line! 10.Server name is now shown in status window title bar. 11.Fixed $parms not being passed on with a :> directive. 12.Added /add [-apuce] filename.ini and /save filename.ini which load in alias, popups, and remote user, command, and event sections from the specified INI file. The /save saves all of these five sections to the specified INI file. 13.Added $me as an alias parameter which refers to your nickname. 14.Added option to append text to application title bar. 15.Can use ; or REM to comment out lines in the remote/event sections. 16.Now connects even if unable to get your local host name but was still able to get your ip address (should have done this a long time ago!). 17.Added a /raw command which sends any parameters you supply directly to the server. You MUST know the correct RAW format to use this command. 18.Added /omsg and /onotice commands which send a message to all channel operators on the current channel. eg. /omsg Hello there! These are limited to users with Op status. 19.Can now specify max. number of lines in scrollback buffer. 20.Fixed bug in the /auto, /notify, /ignore, and /protect storage routines. 21.Can now minimize a window quickly by pressing the Escape key (option). 22.Added /timer1 to /timer9 commands in the format: /timerN eg. /timer1 30 /ame is AWAY! 23.Status window can now remember minimized/maximized position. 24.DCC Chat window is now not minimized if it is initiated by you. 25.Added crude /flood control, format: /flood . Prevents mIRC from sending any lines to the server if it has sent too many lines in a specified number of seconds. These lines are NOT stored, they are lost. 26.Fixed problem with $ followed by letters not being displayed. eg. $SHELL ($ followed by a number is always assumed to be a parameter). 27.Added: +2:ON JOIN:etc... the + limits this command to only level 2 users. 28.Added Select File/Directory dialog to Add, Extras, and DCC Options dialogs. 29.Fixed weird DCC-related bug in input routine...? 30.Added ON SERVEROP event eg. 1:ON SERVEROP:#:/msg *1:$me $opnick was opped by $nick where $nick refers to the server that did the opping. 31.Added /closemsg command to close message windows with a certain nickname. 32.Fixed USER not enough parameters problems. 33.Each window now stores it's own previous line (using /). Using / brings back last line typed in current window. and /! brings back last line typed in any window. 34.Finger server now uses different method to do a finger which might solve problems some people were having. 35.Can now use either the IP address or the Hostname of an IRC server. 36.DCC Send icon now shows nickname. 37.Added option "Reconnect on disconnection". 38./help now brings up mirc.hlp file irc commands section. 39.Now removes strange characters from users name when logging. 40.Can now use $parm1* just like the $1* parameter. 41.Fixed /uwho "is operator" bug. 42.Windows can be resized to a smaller size. 43.Fixed DO problem. 44.Quit in a channel now just shows nickname and quit message. 45./join #this_is_a_test_of_brigs_bug has been fixed. But there's still a limit of how long a channel name can be! 46.Fixed buildup of %'s when recalling previous line. 47.Added -c switch to /play command to allow playing of commands. 48.If resizing window and you're at the bottom of the buffer it stays at the bottom after the resizing. 49.Fixed problem with silent disconnections (i think). 50.Quit now uses a default message of (Leaving). 51.Fixed occasional window text not being updated? 52.Added Beeping option to Chat/Channel/Query window system menus which overrides Options "Beep on Message" setting. Each window remembers it's beeping setting. 53.Added ON NOTIFY event. eg. 1:ON NOTIFY:/msg *1:$me $nick is on IRC! 54.Added /log on/off command for logging windows to file. 55.Added $+ parameter which means append the next parameter without inserting a space before it. 57.Fixed /stats problem. 58.Fixed 1:*:! problem. 59.Added /fserve for fileserver. 60.Fileserver improvements: 1) now sends 30 second timeout warning to idle user. 2) Directories are now listed horizontally in wide listing. 3) If user does ls -4 and then does ls the -4 is remembered. 4) Can do ls -[k|b] for listing in K's or bytes. 5) Greatly improved fserve routines. 6) Prevents a user having more than one fileserver session open. 7) Directories/files are now sorted. 61.Greatly improved dynamic memory allocation. 62.Made change to the ON TEXT event. The search text should now be specified in the following manner: eg. 1:ON TEXT:text:#mirc:/msg *1:etc... where text is: =text - if user said only this word text* - if user started line with this word *text - if user ended line with this word *text* or text - if user said this word anywhere 63.Added 5:ON OP:= which means that any level 5 or higher users will not get a reaction from a lower level ON OP when they are opped. Works with other events and remote definitions as well. 64.Cleaned up/optimized/rewrote many many routines. 65.Fixed gpf when window is closed while popupmenu is up. 66.Fixed "Unable to send query to server" problem(?) 67.Fixed /auser /ruser being lost if Cancel pressed in remote dialog. 68.Can now select a maximum of 9 files to send in DCC send dialog. Also added a minimize option to minimize all DCC send windows. 69.Fixed bugs in INI reading routines. 70.Added /guser [type] command which does the same thing as /auser but does a /whois on the specified nickname first and then adds their address to the remote user list. 71.Remote DCC Send window closes if other user closes connection. 72.If a DCC Get window is waiting for a resume acknowledgement and times out then the window is closed. 73.Speeded up text update in windows significantly. 74.Added /exit command which forces mIRC to closedown. 75.Now removes directory prefix from a DCC Get file. 76.Major DCC Send improvements. 77.Added /fsend [on|off] an experimental fast DCC send option. 78.Added /ulist which lists users in the remote list with specific access levels. 79.Fixed /oper command. 80.Changed /ban types (1 to 4). Also /ban with no type bans the whole address with no wildcards. Banning an IP address now adds a wildcard to the last ip number. 81.Added/Fixed other things I forgot to write down... 02/05/1995 - mIRC v3.2 Changes: 1.gpf on join to undernet fixed. 2.gpf on joining channel with too long a topic fixed. 3.Added title specification to parameter box, eg.: /j /join $?="Enter channel name:" 4.Can now use Page Up/Down keys to scroll through buffer. 5.Fixed spaced out /who result. 6.Now cannot prevent the standard ctcp version reply being given. 7.Can now build as many levels of popup menus as required. 8.Added Query/Chat popup menu. 9.Added extra double-click options. 10.Added auto-close send window option. 11.A remote send window now closes if other party cancels get. 12.Idle time wasnt working in single-line edit box. 13.Sockets weren't being closed properly. 14.Fixed problem with directory and slash. 15.added /channel command for channel central (only works in a channel). 16.Added ability to view/change topic in Channel Central. 17.Editboxes thinned down for Win95. 18.Changed dialog borders to reflect standard practise. 19.Added ... to menu items to reflect standard practise. 20.gpf on nick collision fixed?? 21.Timer now updates in the timer window when online. 22.Can now do both /ban nickname or /ban #channel nickname 23.Complete rewrite of editbox routine. Can now paste properly. 24.Added "You are Op/Not Op" to channel central window. 25.Fixed problem in win95 with title disappearing when window is minimized. 26.Fixed remote :*: responding to an action command. (oops :) 27./server with no parameters connects to the last specified server. 28.Fixed problem with | alias seperator placed after a *1 *2 etc. 29.Fixed problem with DO remote command. 30.Remote can now handle commas etc. stuck to identifiers eg. 1:WHOAMI:/notice *1:$nick You are $nick, your address is $address. 31.Added #$ parameter type. Prefixes the parameter with a #. cannot be used in a multi-command. eg #$* but can do #?1="Say what?" 32.Added $! parameter type. Refers to the last line you entered in the entry parameter window. 33.Added /amsg and /ame which do an All channel message and All channel action. 34.Last used server in the Setup window is moved to top of list. 35.If mirc.ini is not found in windows dir but found in current dir then it is automatically copied to windows dir without asking user. 36.Added "Fast Ack" in DCC Opts window for non-compliant winsocks. 37.Dialogs are now positioned a little higher in Win95 above menu bar at bottom of screen. 38.Now allows leading spaces in text to channel/query/chat windows. 39.Fixed problem with cursor not showing in editbox?? 40.Iconized Win95 windows do not flash anymore but are drawn highlighted with a red rectangle. 41.Addresses must now be standard form eg. *!*user@host 42.Can now do /dcc send ... 43.Added /beep command. 44.Fixed gpf bug with malformed DCC Send requests. 45.Added simple Event handler to remote section. 46.Other bits I can't remember... 23/04/1995 - mIRC v3.1 Changes: 1.Added /ctcp $* performs command on all parameters. 2.Remembers if main window was iconized. 3.Added "finger" popup for finger window. 4.Fixed mistake in graphics routine. Update is now faster. 5.Windows open up in a more "windows" like fashion now. 6.User listbox now lists all people on large channels. 7.Using main menus under certain setups wasn't working properly. 8.Cancel away on keypress now ONLY cancels if you say something in a channel or a query. 9.Fixed finger client so can finger VMS hosts etc. 10.Added new user warning about mirc.ini file. 11.Can now do aliases such as: /laugh /me laughs at $1's joke 12.Added timeout to chat/get confirm dialog. 13.DCC sessions now show only a nickname. 14.USER login to IRC was working but not correct. 16.Improved Editbox: Can now enter multiple lines with a paste and they will be sent correctly. 17.Fixed Auto-Op wild-card routine. 18.Fixed beeping when windows are maximized & windows don't scroll. 19.Fixed small bug in /join command, now allows key. 20.Notify now tells you if no one in your list is on IRC. 21.Added User info window as the command /uwho . 22.Internal reorganization and cleaning up. 23.PASS password to server was incorrect. 24.Added /msg =nickname for DCC chat. 25.Added /play command. 26.Added /describe command. 27.Major improvement of screen update, speed has more than doubled. 28.Added option to use windows colours. 29.DCC Send by remote is automatically minimized. 30.Now tries three different ways to get local host and ip address. 31.Red rectangle is drawn around icons of windows with pending messages. For Windows 95 the iconized window flashes instead. 32.Now changed so that can have only ONE chat session with the same user. 33.If user replies to a /dcc chat request by initiating another DCC chat then mIRC treats this as an acceptance of it's own request. 34.You can now ignore addresses as well as nicks. 35.Remote DCC's close windows automatically on finish. 36.Added DCC timeout options. 37.Added #string parameter to /list command. 38.Fixed problem with moderated channels and +nicknames. 26/03/1995 - mIRC v2.8c etc... Changes: 1.Added wild cards for auto-op. 2.If a user changes nicks while in a query to you and they are on the same channel as you, mIRC uses the nickname change notification to update the query window name so you can keep talking to the person. 3.When a query is received and it is iconized, the icon is placed above all other windows so you can see it. 4.Scroll bars have been made a standard size and moved a little bit to make them look neater. 5.ban command now has 4 levels of ban. eg. /ban where is a value 0 to 3. 6.The /server command can now take Port and Password parameters. for example, /server irc.server.co.uk 6667 password 7.Added "Use Dedicated Message Window" option. private messages go only to this window. 8."Notices" work more intelligently now and will appear in a channel window if sent by someone on that channel. Otherwise they are sent to the status window as usual. 9.mIRC now listens for identd requests and replies using the userid part of your email address as a UNIX system. 10.Font and Window position can now be saved for the Message Window and logging/saving to proper filename now. 11.Was GPFing on a nick collision. Oops :) 12.Added channel modes to ban list routine. Much more useful now! 13.Added context-sensitive F1 help key. 14.Added new alias parameter type. $$ = parameter MUST be filled. If it is not filled, command is not executed. Before, /whois $1 was executed even if no parameter was given. Now, /whois $$1 will only be executed if you supply a parameter. 15.Can now also do $$?1 or $?1 which means, try to fill this value with parameter one if it exists. If parameter one doesnt exist, ask for it. 16.Fixed problem with copy/paste routine. MUCH faster now. 17.Fixed font problem with text not showing in Editbox when in windows screen with large font setting. 18.Added DCC Resume capability. non-standard. 19.Allows multiple select in ban list. 20.Fixed dialog positioning when in different screen modes. 21.Added option to prefix own messages with own nick. 22.Would gpf if popup menu definition was incomplete. fixed. 23.Double-click in a query window does a /whois. 24.Added small popup menu to channel list window. 21/03/1995 - mIRC v2.8b (not released) Changes: 1.the % character can now be used. 2.help file had a few mistakes in it. 3.a /msg results in outgoing message being shown in the correct window. 4.added option "Beep on message while in buffer". 5./hug /me *hugs* $1 now works. 6.allow /query etc commands in DCC chat window. 7.problems handling /msg and other commands. 8.dissallow changing nickname and alternate in setup when online. 9.log files werent being closed properly. 11.enlarged Popup menus window. 12.refined appearance of /msg /notice/ etc. commands. 13.aliases had a bug or three. 14.added [x] minimize to auto-accept chat request. 15.ctcp ping seconds working properly now. 16.query window sometimes opened up VERY small due to saving window size while it was iconized. 17.Changed query/chat windows so that only one default font is saved. 18.Changed "beeping" method to minimize number of beeps. 19.File logging was messed up. 20.Speeded up display of popupmenu definitions in popup dialog. 21.text wrapping wasn't taking notice of mid variable. 22.changed minimum window size depending on whether it is a channel or not. 23.now remembers default size for channel windows. 24.fixed problem with previous-line routine. 25.added /dcc packetsize command. All memory for DCC Send/Get sessions now allocated dynamically. 26.when a window is maximized, widths weren't set properly for any other windows beneath it. 18/03/1995 - mIRC v2.7a Changes: 1.Changed dblclk ban list routine again. 2.Variable assignment was wrong in open window routine. Caused windows to behave strangely and gpf. 3.Changed query & msg commands. /msg does not open a window, /query does. 4.Added beeping on query & notice options. 5.The INI filename specified on the command line was not working for some mIRC features. 6.DCC sessions were not being closed properly, ie. files in some cases would be left open. 7.Cosmetic changes - moved some options to extras dialog and other stuff. 8.Invite command wasn't working properly. 9.Corrected mistakes in the mirc.ini file. 10.Query window size wasn't being saved. 11.mIRC wasn't closing all DCC connections on quit. 12.Now prevents duplicate server entries in setup dialog. 13.Some windows are now more intuitively centered on opening. 14.Now shows number of channels as they are being listed. 15.Some windows were opening only in the top left corner. Window positioning is hopefully better now. 16.QUIT and AWAY commands weren't setting message properly. 17.Added /LEAVE (like /PART. command for compatibility. 18.Again changed optimization switches in compiler. Previous settings caused more problems than I thought... 19.Can now open mutiple DCC Chat sessions with the same person. 20.Option to show Quits in channel window. 21.now shows /msgs that you send. 22.when doing a "reset position" window is placed neatly inside main window even if saved position was outside it. 23.Changed /protect etc. to work using on and off. 34.Added option to highlight own messages. 25.Aliases with a * in them weren't working properly. 26.About dialog now disappears on keypress. 27.Can now continue DCC chats if disconnected from IRC. 28.After disconnection, on reconnect to IRC, only channel windows are closed. All other windows remain open. 29./SERVER command now works. (can use in popup menus!) 30.Bugs in file handling routines. 31.Bug in Channels list routine. 32.Iconify query window option. 33.beeps if message in channel and you are not at bottom of buffer. 34.Added whois option on a query. 35.If talking in query window and person logs off IRC, informs you nick is invalid *in* query window. 36.when not at bottom of buffer and a channel message is printed, highlighting for copy/paste now stays on. 37.Enlarged alias window. 38.Alias window now shows number of aliases entered. Possible Bugs/Annoyances: 1.Text in window sometimes goes blank or isn't updated properly. 2.Text sometimes prints over the scrollbar slightly. 3.Multiple DCC sends/gets might not work properly. 13/03/1995 - mIRC v2.6b (a dud version - was unstable) Changes: 1.Finger routine wasn't being cancelled properly. 2.Now allows user to enter their own IP address. 3.Certain windows would beep on closing (definitely fixed now!) 4.Routine for printing text in window majorly optimized and cleaned up. 5.Listbox popup menu would popup even if a user wasn't selected. 6.Cleaned up the retrieve ban list routine. 7.Winsock startup routine wasn't being initialized properly. 8.Copy/Paste routine has changed. No longer need to press the shift key. 9.QUIT wasn't appending quit message. 10.Child windows were being positioned outside main window. 11.Spotted and fixed oh so sneaky bug in word wrap routine. 12.DCC Send/Get Directories default to same directory as mirc.exe. 13.Can now specify directory for logs and buffer saves. 14.Mode change with multiple settings wasn't working. 15.Can now specify on the command line the name of the INI file to use. Default name is "mirc.ini". This means you can have different INI files for different nets. 16.Added /! command, recalls previous command. 17.Cleaned up the help file, made IRC commands section readable. 18.Now compiling with different optimization switches. This automatically fixed around 5 "bugs" !!! 08/03/1995 - mIRC v2.5a Changes: 1.added "always retrieve local host" option for people who have dynamic IP addresses! 2.channel mode in title is permanently on. not an option anymore. 3.Added ctcp USERINFO command for compatibility. However, it returns the same information as a ctcp finger command. 4.moved some options to different windows were they made more sense. 5.added /finger and /auto commands. 6.fixed problem with releasing memory... popup menus weren't being freed properly so mIRC would lose as much memory as the size of the popup menus defined by the user. With the mirc.ini that comes with the program, this turned out to be 3k+ of system resources everytime the program is run. 7.the MODE for channel mode changes gets messy when lots of mode changes occur. cleaned it up. 8.Window names in Window menu would not switch to the correct window when selected. 9.Text buffers for windows were not being freed properly. 10.Can now set the default font for the status/finger/list windows from their system menu. Only the DCC Send/Get windows have to be set from the font dialog window. 11.added auto-log option for channels and query/DCC chat. 12.Commands such as /finger and /run can now be used off-line. 13.Corrected some mistakes in the mirc.ini file. 05/03/1995 - mIRC v2.4a Changes: 1.major update of window handling - made more robust. 2.notify would keep notifying even if it was still waiting for previous notify to be returned by server. 3.popup menu positioning was incorrect in some situations. 02/03/1995 - mIRC v2.3a Changes: 1.DCC get received file okay but closed connection too early. 2.DCC send/get/chat were re-initiating arrays too early, didn't cause problems but made the program beep everytime you closed a window because the array was empty. 3.some debug information was being printed! Arrrrgh! forgot to turn off the debug switch in the first release. 4.updated help file with description of previously coded but forgotten items. 5.In DCC get, if sender client did not specify size of file (which it should!. then mIRC said the size was zero bytes. Now it just says [unknown]. 6.highlighting now works properly. 7.".." previous directory wasnt showing up in DCC send dialog. 8.the channel listbox wasnt adding/removing nicks properly. 9.double-click for ban list. clicking twice only in the SAME place now brings ban list up. 10.added option to display file size instead of percent complete in DCC send/get transfers. 11.fixed timer display: wasnt displaying timer after nick change. 12.adds "/nick " to editbox if both nicks collide on login. 13.DCC send/get had problems with packet size. fixed. 14.other cosmetic changes. 28/02/1995 - mIRC v2.1a First public release.